很多时候需要用到vim,特别是查日志,学习一些常用的vim技巧还是很有必要的
命令模式
- h/j/k/l:分别表示向左/向下/向上/向右移动光标
- shift+g:到最后
- ctrl+f:向前一页
- ctrl+b:向后一页
- ctrl+d:向前半页
- ctrl+u:向后半页
- ctrl+e:向上滚动
- ctrl+y:向下滚动
- x:删除当前光标所在的字符
- dd:删除一行
- J:删除当前行的换行符,两行合并一行
- u:撤销上一次操作
- ctrl+r:重做
- a:追加输入
- o:在当前行后另起一行输入
- ZZ:保存并退出
- q!:放弃编辑并退出
- G:跳转到最后一行
- gg:跳转到第一行
- e!:放弃所有修改重新编辑
- help {subject}:帮助文档
- w:向后移动一个单词
- 3w:向后移动三个单词
- b:向前移动一个单词
- 3b:向前移动三个单词
- e:光标移动到下一个单词的最后一个字符
- 3e:光标移动到后三个单词的最后一个字符
- ge:光标移动到上一个单词的最后一个字符
- 3ge:光标移动到前三个单词的最后一个字
- $:移动到行尾
- 0/^:移动到行首
- [n]fh:移动到h的单词上
- [n]Fh:反向搜索
- %:匹配括号
- [n]G:定位到到n行
- [n]%:定位到百分之n行
- H,M,L:分别跳转到当前屏幕的第一行,中间行,最后一行
- ctrl+g:显示当前光标所在位置
- set number:显示行号
- set nonumber:不显示行号
- set ruler:一直显示光标位置
- zz:把当前行放到屏幕正中央
- zt:把当前行放到屏幕顶端
- zb:把当前行放到屏幕底端
- /string:查找;按n可以往下查找,N反向查找,和?string效果相同,支持正则表达式
- set ignorecase/noignorecase:设置是否忽略大小写
- :或/加上下箭头,可以翻看历史查询
- /word>:查找单词word,不会查到类似words的词,但会匹配aword这类词
- /\
:只匹配word单词 - set hlsearch:搜索高亮处理
- hlsearch:暂时关闭高亮,下次搜索还会按照原来设置的
- set nowrapscan/wrapscan:设置搜索到头时要不要重新搜索
- [n]G/gg:跳转到n行