基础


  • 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的详细信息

  • `" # 到上次退出前最后编辑的位置,默认书签
  • `[ # 到前一次修改或粘贴的第一个字符,默认书签
  • `] # 到前一次修改或粘贴的最后一个字符,默认书签
  • `< # 到前一次选中区的第一行,默认书签
  • `> # 到前一次选中区的最后一行,默认书签
  • `. # 到最后一次修改的位置,默认书签
  • '. # 到最后一次修改行行首,默认书签
  • `^ # 到最后一次插入模式时光标所在的位置,默认书签