admin 管理员组

文章数量: 887399

文本编辑器vim



1. 模式切换

一般模式
按【Esc】回到一般模式
插入或取代的编辑模式
i 为从目前光标所在处插入            I 为在目前所在行的第一个非空格符处开始插入。
a 为从目前光标所在的下一个字符处开始插入    A 为从光标所在行的最后一个字符处开始插入。
o 为在目前光标所在的下一行处插入新的一行    O 为在目前光标所在处的上一行插入新的一行!
cc 或 S 删除当前行,并进入插入模式  
c$ 或 C 删除到行尾并进入插入模式
cl 向后删除一个字符,并进入插入模式
r 只会取代光标所在的那一个字符一次        R 会一直取代光标所在的文字直到按下【Esc】为止
指令列命令模式
输入 : / ? 任意一个进入

2. 光标移动

【Ctrl】+f/b/d/u        下一页【PgUp】/上一页【PgDn】/下半页/上半页
h(←) j(↓) k(↑) l(→)    光标左下上右移动,前面加数字n表示移动n个字符
w/e                光标向后移动到它后面的word的第一个首字符/尾字符
b                光标向前移动到它前面的word的第一个首字符
+ -                光标移动到非空格符的下一列 上一列
n【Enter】            光标向下移动n行
n【Space】            光标向右移动n个字符
0或【Home】            此行最前  
$或【End】            此行最后
ˆ                此行的第一个非空白字符
n$                第n行行尾(^和0不能前面加数字)
H M L                当前屏幕的首行/中间行/尾行的第一个字符
gg nG G            当前vim档案的首行/第n行/尾行的第一个字符
f/F字符            光标在当前行向后/向前移动到搜的字符上
%                匹配括号的移动  
数字%                跳到当前文档的百分之数字
zz zt zb            把当前行置为屏幕正中央/顶端/底端

3. 搜索和取代

/string向下搜    ?string向上搜    n继续        N反向继续
/\<word\>                     精确匹配单词搜索
:n1,n2s/string1/string2/g        在n1和n2行之间用字符串string2取代string1
:1,$s/string1/string2/gc        全文取代需要确认(c需要确认)

4. 删除d 和 复制y 和 粘贴p 删除后进入插入模式c

如果你用“c”命令代替“d”这些命令就都变成更改命令. 使用“y”就是yank命令, 如此类推.
x            代表dl,向后删除一个字符【Del】
X            代表dh,向前删除一个字符
nx            连续向后删除n个字符
D            代表d$(删除到行尾的内容)
dw            删除当前光标至下一个word的开头
ndw            删除光标所在向后n个单词
diw            删除当前光标所在的word(不包括空白字符)
daw            删除当前光标所在的word(包括后面空白字符)
db            删除 当前光标至前一个word的开始
dd    yy        删除/复制 光标所在的那一行
ndd    nyy        删除/复制 光标所在的向下n行
d1G    y1G        删除/复制 光标所在到第一行的所有数据,也可以dgg ygg
dG    yG        删除/复制 光标所在到最后一行的所有数据
d0    y0        删除/复制 光标所在处,到该行的最前一个字符
d$    y$        删除/复制 光标所在处,到该行的最后一个字符
p            在光标的下一行粘贴
P            在光标的上一行粘贴
J            将光标所在行与下一行的数据结合成同一行

5. 重复和撤销

u            撤消前一个动作。 (常用)
U            一次撤消对一行的全部操作
【Ctrl】+r        重做上一个动作。 (常用)
.            小数点!意思是重复前一个动作

6. 指令列的储存、离开等指令

:w    写入        :w!    强制写入
:q    离开        :q!    强制离开不储存档案。
:wq    储存后离开    :wq!    则为强制储存后离开
ZZ            若档案没有更动,则不储存离开,若档案已经被更动,则储存后离开!
:w [filename]     将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]    在编辑的数据中,读入另一个档案的数据。
            亦即将filename这个档案内容加到游标所在行后面
:n1,n2 w [filename]    将 n1 到 n2 的内容储存成 filename 这个档案。
:! command        暂时离开 vi 到指令列模式下执行 command 的显示结果!

7. 区块选择

v            字符选择,会将光标经过的地方反白选择
V            行选择,会将光标经过的行反白选择
【Ctrl】+v        区块选择,可以用长方形的方式选择资料
y            将反白的地方复制
d            将反白的地方删除
o            反白的地方基准变换对角到的位置
O            反白的地方基准变换到同一行的另一个角间移动

8. 多档案编辑

:n            编辑下一个档案
:N            编辑上一个档案
:files         列出目前这个 vim 的开启的所有档案

9. 多窗口情况下的按键功能

:sp [filename]    开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新档案,
            否则表示两个窗口为同一个档案内容(同步显示)。
【Ctrl】+w+j/↓    光标可移动到下方的窗口。
【Ctrl】+w+k/↑    光标移动到上面的窗口。
【Ctrl】+w+q        结束下方的窗口
:split        打开一个新窗口,将屏幕分为上下两个窗口并将光标定位在上面的窗口中
:vsplit        垂直分隔,将屏幕分为左右两个窗口
:close         可以关闭当前窗口(可以阻止你关闭最后一个vim)
:only            关闭除当前窗口外的所有其它窗口

10. vim 环境的变更

:f 或【Ctrl】+g    查看当前文件名
:pwd            查看当前文件路径
:scriptnames    修改配置文件“.vimrc”或“vimrc”的文件
:set nu        显示行号    :set nonu        取消行号
:set ignorecase    忽略大小写    :set noignorecase    取消忽略大小写
:set hlsearch     高亮显示搜索    :set nohlsearch    取消高亮显示搜索
:set list        显示特殊字符    :set nolist        取消显示特殊字符

11. TAB和空格转换

TAB替换为空格:
:set ts=4
:set expandtab
:%retab!
空格替换为TAB:
:set ts=4
:set noexpandtab
:%retab!
   加 ! 是用于处理非空白字符之后的TAB,即所有的TAB,若不加 !,则只处理行首的TAB。
TAB字符显示为 >---
set list lcs=tab:>-
或 set listchars=tab:>-

12. vim 环境

~/.viminfo        环境记录
/etc/vim/vimrc    是全局的环境设定配置文件,将改变所有用户的vim配置。
~/.vimrc        是用户自己的环境设定配置文件,只影响该用户自己。



http://www.kancloud/wizardforcel/gdb-tips-100/146767

本文标签: 命令 vim