Vim的浏览
整页翻页 ctrl-f ctrl-b
f就是forword b就是backward
翻半页
ctrl-d ctlr-u
d=down u=up
滚一行
ctrl-e ctrl-y
zz 让光标所在的行居屏幕中央
zt 让光标所在的行居屏幕最上一行 t=top
zb 让光标所在的行居屏幕最下一行 b=bottom
再打开一个文件:e <filename>
文件间的切换:bn(下一个文件),bp(上一个文件)
(多窗口)
光标移动
移动到行首:0
移动到行的第一个非blank字符的首字母:^
移动到行尾:$
w选中单词的首字,e选中单词的尾字;W往回选中单词的首字,ge往回选择单词的尾字
f<char>向后搜索f后跟的字母,;(分号)表示重复向后搜索动作,,(逗号)表示重复向前搜索动作
移动到第一行:gg
移动到最后一行:G
移动到第N行:NG
匹配大中小括号的移动:%
匹配光标所在单词的移动:*(匹配下一个),#(匹配上一个)
插入模式
在光标前插入:i
在光标后插入:a
当前行后插入一行:o
在当前行前插入一行:O
Vim文本操作
重复上一个命令:.(句号,重复N次,则输出N.)
在命令前加上数字,可以重复给定的次数的该命令
从光标处开始拷贝:y
在当前位置之后粘贴:p(之前用大写的P)
区块选择操作
<action>a<object>
和 <action>i<object>
a表示包括object,i表示不包括object
- action可以是任何的命令,如
d
(删除),y
(拷贝),v
(可以视模式选择)。 - object 可能是:
w
一个单词,W
一个以空格为分隔的单词,s
一个句字,p
一个段落。也可以是一个特别的字符:"、
‘、
)、
}、
]。
自动补全:ctrl+p或ctrl+n
块操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]
^
→ 到行头<C-v>
→ 开始块操作<C-d>
→ 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)I-- [ESC]
→ I是插入,插入“--
”,按ESC键来为每一行生效。
在Windows下的vim,你需要使用 <C-q>
而不是 <C-v>
,<C-v>
是拷贝剪贴板。
在所有被选择的行后加上点东西:
<C-v>
- 选中相关的行 (可使用
j
或<C-d>
或是/pattern
或是%
等……) $
到行最后A
, 输入字符串,按ESC。
搜索与替换
http://tanqisen.github.io/blog/2013/01/13/vim-search-replace-regex/
set hlsearch "打开高亮搜索
set nohlsearch "关闭高亮搜索
nohl "只取消掉当前的搜索高亮