VIM操作摘记
deran pan, vim-001
1. VIM的多标签操作:
命令 | 说明 |
---|
:tabnew file | 对新文件建立一个tab |
:tabc | 关闭当前的tab |
:tabo | 关闭其他的所有的tab |
:tabs | 查看所有打开的tab |
:tabp | 前一个 |
:tabn | 后一个 |
:tabfirst | 移动到第一个标签页 |
:tablast | 移动到最后一个标签页 |
标准模式下gt,gT也可以直接在tab之间切换。
:help table 可以看到所有的帮助
2. VIM中vimgrep查找命令
用法:
vimgrep /{partten}/g {file} …
参数 | 说明 |
---|
参数g | 匹配每一行每一个匹配点,否则只匹配第一个匹配点 |
参数j | 查找结果只更新到结果列表(quickfix),否则跳转至第一个匹配点 |
example:
在当前目录下所有文件中查找字符串“main”
:vimgrep /main/ .
在当前目录及其子目录下所有文件中查找字符串“main”
:vimgrep /main/ */.*
附:查找的结果可以用:copen查看
命令 | 说明 |
---|
:copen | 打开quickfix |
:cclose | 关闭quickfix |
:cc | 跳转到当前查找位置 |
:cn | 转到下一个位置 |
:cp | 转到上一个位置 |
3. 代码折叠
设置折叠
:set fdm = <option>
option有以下6种选项
选项 | 说明 |
---|
manual | 手工定义折叠 |
indent | 更多的缩进表示更高级别的折叠 |
expr | 用表达式来定义折叠 |
syntax | 用语言高亮来定义折叠 |
diff | 对没有更改的文本进行折叠 |
marker | 对文中的标志折叠 |
折叠命令:
命令 | 说明 |
---|
zc | 折叠 |
zC | 对所在范围内所有嵌套的折叠点进行折叠 |
zo | 展开折叠 |
zO | 对所在范围内的所有折叠进行展开 |
[z | 到当前打开的折叠的开始处 |
]z | 当当前打开的折叠的结束处 |
zj | 到下一个折叠的开始处 |
zk | 到上一个折叠的开始处 |
使用marker方式折叠的还有以下命令:
命令 | 说明 |
---|
zf | 创建折叠 |
zd | 删除折叠 |
zD | 删除所有嵌套折叠 |
zE | 除去窗口所有折叠 |
4. 光标移动
命令 | 说明 |
---|
h | 左 |
j | 下 |
k | 上 |
l | 右 |
^ | 移动到行首 |
& | 移动到行尾 |
ctrl + b | Page Up |
ctrl + f | Page Down |
G | 移动到末行 |
gg | 移动到首行 |
50G | 移动到50行 |
H | 移动到当前窗口首行 |
M | 移动到当前窗口中间位置 |
L | 移动到当前窗口的最后一行 |
w | 移动到下一个单词首 |
e | 移动到下一个单词尾 |
b | 移动到前一个单词首 |
( | 移动到下一个句子 |
) | 移动到上一个句子 |
{ | 移动到上一个段落 |
} | 移动到下一个段落 |
ctrl + o | 返回上一次光标位置 |
ctrl + i | 返回下一次光标位置 |
ctrl+f | 向前翻一页 |
ctrl+b | 向后翻一页 |
ctrl+u | 向前翻半页 |
ctrl+d | 向后翻半页 |
ctrl+y | 向前一行 |
ctrl+e | 向后一行 |
zt | 将光标定位当屏幕顶部 |
zz | 将光标定位到屏幕中间 |
zb | 将光标定位到屏幕底部 |
5. Mark标记
在某一行上进行标记之后,则可以在任意处跳转至标记处。相关命令如下:
命令 | 说明 |
---|
m+(a~z,A~Z) | 添加标记 |
‘ | 跳转至 |
:marks | 查看所有标记 |
:delmarks | 删除相应标记 |
6. Vim选中
命令 | 说明 |
---|
viw/vaw(a word) | 选中一个单词 |
wip/vap(a paragraph) | 选中一个段落 |
vis | 选中一个句子 |
vib | 选中一个block |
ctrl + v | 区域选中 |
7. VIM删除操作
Vim命令 | 说明 |
---|
dl | 删除当前字符,功能等同于x |
d0 | 删除光标位置至行首 |
d^ | 删除光标位置至行首(不包括空格和TAB) |
dw/d3w | 删除光标位置至光标所在单词的尾部 |
db | 删除光标位置至光标所在单词的开始部分 |
dW | 删除光标位置至光标所在单词的尾部(以空格作为单词分隔) |
dB | 删除光标位置至光标所在单词的开始部分(以空格作为单词分隔) |
d) | 删除光标所在位置至光标所在语句的结束部分 |
d( | 删除光标所在位置至光标所在语句的开始部分 |
dd | 删除当前行 |
d/text | 删除光标所在位置至下一次出现text文本之间的内容 |
dfc | 删除光标所在位置至当前行向后出现字符c之间的内容,包含字符c |
dtc | 删除光标所在位置至当前行向后出现字符c之间的内容,不包含字符c |
D/d$ | 删除光标所在位置至当前行行尾 |
8. VIM多窗口操作
1. 窗口间游走
Vim命令 | 说明 |
---|
ctrl + w + h | 向左移动窗口 |
ctrl + w + j | 向下移动窗口 |
ctrl + w + k | 向上移动窗口 |
ctrl + w + l | 向右移动窗口 |
ctrl + w + w | 在所有窗口中循环移动 |
ctrl + w + t | 移动到最左上角的窗口 |
ctrl + w + b | 移动到最右下角的窗口 |
ctrl + w + p | 移动到前一个访问的窗口 |
2. 移动窗口
Vim命令 | 说明 |
---|
ctrl + w + r | 向右或向下交换窗口(当前窗口不变) |
ctrl + w + x | 向右或向下交换窗口(当前窗口为交换后的窗口) |
ctrl + w + K | 将当前窗口移动到最上方,并占用全部宽度 |
ctrl + w + J | 将当前窗口移动到最下方,并占用全部宽度 |
ctrl + w + H | 将当前窗口移动到最左方,并占用全部高度 |
ctrl + w + L | 将当前窗口移动到最右方,并占用全部高度 |
ctrl + w + T | 以当前窗口新建一个Tab,并占用全部位置 |
3. 调整窗口尺寸
Vim命令 | 说明 |
---|
ctrl + w + = | 让所有窗口调整至相同尺寸 |
ctrl + w + - | 让当前窗口的高度减少一个单位 |
ctrl + w + + | 让当前窗口的高度增加一个单位 |
ctrl + w + < | 让当前窗口的宽度减少一个单位 |
ctrl + w + > | 让当前窗口的宽度增加一个单位 |
ctrl + w + | | 将当前窗口的宽度调整至最大 |
4. 窗口关闭
Vim命令 | 说明 |
---|
ctrl + w + q | 离开当前窗口 |
ctrl + w + c | 关闭当前窗口 |
ctrl + w + o | 关闭当前窗口以外的所有窗口 |
http://www.cnblogs.com/suncoolcat/archive/2013/09/09/3310668.html