这是当时初学VIM后作的一个思惟导图,图片稍大,因此从freemind导出了html文本po在下面;图片在最下方,放大可清晰浏览。html
VIMshell
功能:浏览,普通编辑vim
x:删除光标所在字符 (=d+h)spa
X:删除光标前一个字符 (=d+l)命令行
D:删除当前行光标位置到行尾的字符 (=d+$)htm
dd:删除光标所在的行对象
J:删除光标所在行的换行符blog
p:在光标后粘贴图片
P:在光标前粘贴,粘贴行时,p是粘贴在光标的下方,P粘贴在光标上方字符串
xp:交换两个字符的位置
ddp:交换两行的位置
u:撤销前一个操做
Ctrl+r:恢复前一个操做,能够配合数字n进行n次批量操做;如3x,则删除当前光标及其后两个字符。
注1:删除命令执行后,删除的内容保存在缓冲区。
注2:粘贴命令调用缓冲区内最近的内容。
w:下一个单词的词首
W:空白字符分割的下词词首
b:上一个单词的词首
B:空白字符分割的上词词首
e:下一个单词的词末
E:空白字符分割的下词词末
ge:上一个单词的词末
GE:空白字符分割的上词词末
注3:光标在单词内时,b/e命令的结果是移动到本单词的词首/词末
注4:命令前+数字n,执行n次命令
Ctrl+g:显示当前行的位置信息(第几行,相对整个文本行数的百分比)(当次生效)
r:替换当前字符
R:(进入replace模式)持续替换光标所在字符,直到使用ESC退出替换模式。
例:
1:/word1 \\查找单词word1
2:cw word2 \\把word1修改成word2
3:n \\下一个匹配点
4:. \\重复步骤2
“.”命令重复的对象:
普通编辑命令(普通模式下的命令),组合命令(操做符+动做);
不能重复命令行下的命令。
vim file1 file2 file3...:
可在文本间切换编辑。
:n:进入下一文本
:N:进入上一文本
保存、退出
:+w :保存文本,不退出vim
:+wq:保存并退出vim(无论有否修改,文件修改时间都会更新)
:+x:如有修改,则保存并退出vim,若无修改,则直接退出vim
:+q :未对文本进行修改时,可以使用该命令直接退出vim
:+q!:强制退出vim(放弃修改)
:+e!:放弃修改并从新打开该文本
环境设定
:+set nu[mber]:显示行号
:+set nonu[mber]:隐藏行号
:+set ruler:显示光标位置信息
:+set noruler:隐藏光标位置信息
:+set hlsearch:高亮匹配
:+set nohlsearch:取消高亮匹配
:+nohlsearch:临时取消高亮(只取消一次查询的高亮)
:+set ic或ignorecase):忽略大小写
:+set noic(或noignorecase):区分大小写
当前命令忽略大小写:查找命令+\c,如:/test\c,查找test,忽略大小写
:+set incsearch:在输入字符串过程当中显示匹配点
:+set nowrapscan:找到文尾后中止查找
:+set wrapscan:恢复为到文尾后自动从头开始
替换(查找而后替换)
:s/old/new/ :当前行的第一个old替换为new(old和new能够是字符也能够是字符串)
:x,ys/old/new/g:x行到y行的全部old替换为new(注意末尾的参数g,不加参数g则只替换每行的第一个old)
参数“x”替换为“.”,则从当前行开始
参数“y”替换为“$”,则到最后一行为止
:%s/old/new/gc:全局替换,替换文本中全部old为new(注意最后的参数“c”,即为每次替换均须要确认)
:+e filename:vim下打开指定文本
:+!command:vim下执行某shell命令
:marks:查看已有的标记
:delmarks 标记名:删除某标记
/+字符或字符串:在文本内从光标位置向下查找指定字符/字符串
?+字符或字符串:反向查找
查找命令执行后,可以使用:
n:查找下一个
N:查找上一个
(对于?查找,移动方向也相应变化)
n/N命令前也可使用数字n来查第n个
可视模式的功能是选择区域,选择区域后的其余操做参见其余模式!!
v:字符选择,可进行字符的逐个选择;
选中从进入可视模式时的光标位置到当前光标位置的内容,光标控制能够参见普通模式的控制命令以提升效率。
V:按行选择,参照字符选择。
Ctrl+v:列块选择
选择屏幕的一个矩形区域;以进入可视模式时的光标位置为一角,以光标当前位置为对角。光标控制能够参见普通模式的控制命令以提升效率。
o:把光标移动到矩形的对角
O:把光标移动到水平位置的另外一角
i:在光标前插入字符
I:在行首插入字符
a:在光标后插入字符
A:在行尾插入字符
o:在光标下发插入空行
O:在光标上方插入空行
s:删除光标位置字符,并进入insert模式 (=c+l)
S:删除光标所在行,并进入insert模式 (=c+c)
C:删除光标位置到行尾的字符,并进入insert模式 (=c+$)
退回普通模式:ESC
三种操做符
d:delete 把选择的内容存入寄存器。
c:change 把选择的内容存入寄存器,使用新的内容覆盖原内容。
y:copy 把选中的内容拷贝到寄存器中。
yw:拷贝一个单词
ynw:拷贝n个单词
ye: 拷贝一个单词,不包括单词结尾空格。
yne:拷贝n个单词。
yy:拷贝一行
nyy:浮躁从光标所在行起的n行,注意n在最前面。
y$:拷贝从当前位置到行尾
yG:拷贝从当前位置到文尾
三种操做符存入寄存器的内容都适用于p/P粘贴命令。
三种操做符与普通命令组合的思想一致!!!
动做:普通模式下的控制命令;动做前有操做符时,动做的做用是覆盖一段文本;动做所走过的轨迹即操做符将要操做的对象。
如:d+w,结果是删除光标位置(含)到下以单词首(不含)直接的字符。
daw:删除一个单词,包含单词的边界(空格)。
da【:删除[ ]整个块,包含符号自己;
da<;da(;da{;da";da'同理
diw:删除一个单词,不含单词的边界。
di【:删除[ ]内的字符,不含符号自己;
di<;di(;di{;di";di'同理
常见文本对象:
ap 一个段落; aW 一个字符串;as 一个句子; at 一个HTML标签