基础
j,k,h,l# 下,上,左,右
- Ctrl+F # 下一页
- Ctrl+B # 上一页
- Ctrl+D # 下半页
- Ctrl+U # 上半页
- Ctrl+E # 屏幕下滚一行
- Ctrl+Y # 屏幕上滚一行
w# 到下一个单词(word)的开头W# 到下一个单词(WORD)的开头e# 到当前单词(word)的结尾E# 到当前单词(WORD)的结尾b# 到上一个单词(word)的开头B# 到上一个单词(WORD)的开头
- word 包括字符串、数字、下划线
- WORD 包括非空白的字符,即用空格分开的
- 例:192.168.1.3 包括7个word,1个WORD
0# 到行首$# 到行尾^# 到当前行第一个非空白处g_# 到当前行最后一个非空白处
{# 到当前段(paragraph)开始处}# 到下一段(paragraph)开始处[[# 到当前块(section)开始处]]# 到下一块(section)开始处(# 到当前句(sentence)开始处)# 到下一句(sentence)开始处
高级
H# 光标移到当前页第一行首(home)M# 光标移到当前页中间行首(middle)L# 光标移到当前页最后行首(last)
z<ENTER># 将光标所在行重绘为屏幕第一行z-# 将光标所在行重绘为屏幕最后行z.# 将光标所在行重绘为屏幕中间行
:0# 到文件顶部(第一行)gg# 到文件顶部1G# 到文件顶部:$# 到文件底部(最后)GG# 到文件底部
50%# 到文件50%的位置75%# 到文件75%的位置10l# 从当前位置向后10个字符10<space># 从当前位置向后10个字符:goto 20到文件的第20个字符10|到当前行第20个字符
:set number# 显示行号:set nu# 显示行号:set nonumber# 不显示行号:set nonu# 不显示行号:set numberwidth=5# 设置行号占5个字符宽度,默认为4
:100# 到100行100gg# 到100行100G# 到100行
%# 到匹配的字符,包括 (){}[][(# 到前一个不匹配的 ([)# 到前一个不匹配的 )[{# 到前一个不匹配的 {[}# 到前一个不匹配的 }
SHIFT-<Right Arrow># 插入模式下跳到右面一个单词(word)SHIFT-<Left Arrow># 插入模式下跳到左面一个单词(word)
(TODO:上面这个应该是在插入模式下按Shift+箭头是为选中,gvim 7.3下是这样)
专家
:jumps# 查看跳转历史Ctrl+O# 后退一步Ctrl+I# 前进一步3Ctrl+O# 后退三步3Ctrl+I# 前进三步
gj# 到下一可视行(visual line)(一行文字太多会分为多个可视行)gk# 到上一可视行g^# 到可视行行首g$# 到可视行行尾gM# 到可视行行中
$ vim +100 <filename># 到文件第100行$ vim +/search-term <filename># 到文件顶端第一个匹配的地方$ vim +?search-term <filename># 到文件底端第一个匹配的地方$ vim -t TAG# 到tag
ma# 创建当前位置的书签a`a# (反引号)到书签a的位置'a# (单引号)到书签a的行首mX# 创建当前位置的书签X`X# (反引号)到书签X的位置
- m{mark-name},创建本地书签为m后跟一个小写字母
- m{mark-name},创建全局书签为m后跟一个大写字母(多个文件时使用)
marks# 显示所有书签marks a# 显示书签a的详细信息
`"# 到上次退出前最后编辑的位置,默认书签`[# 到前一次修改或粘贴的第一个字符,默认书签`]# 到前一次修改或粘贴的最后一个字符,默认书签`<# 到前一次选中区的第一行,默认书签`># 到前一次选中区的最后一行,默认书签`.# 到最后一次修改的位置,默认书签'.# 到最后一次修改行行首,默认书签`^# 到最后一次插入模式时光标所在的位置,默认书签