普通模式下快速移动及块选择——光标、单词间、行首行尾、行间搜索、页面移动

可能使用vim好几年的开发者,在移动光标的时候,还是使用上下左右键,而不是去使用h/j/k/l。确实,hjkl有点反人类,很难去适应。自己在开始的时候也是完全的不适应。但是如果你熟练掌握形成肌肉记忆之后,将会大大提高的你速度。

光标移动

在普通模式下移动光标请使用hjkl来替代上下左右方向键。这里有个好的方法,去玩游戏,哈哈,我当初就是这么练习的。在线游戏地址如下:

https://vim-adventures.com/

其中第一关就是使用hjkl来完成的。

在单词间移动

因为在单词间移动的效率要比光标移动效率高,所以,在单词间移动是日常中用的比较多的。下面介绍几个在单词间移动的按键及说明:

  • w移动到下一个单词开始处
  • W移动到下一个单词空白符处
  • e移动到单词结尾(注意他和w的区别)
  • b与w相反
  • B与W相反

行间搜索移动

其实,在行内移动最快的办法是搜索一个指定字符,然后快速移动到该字符上面。下面介绍几个相关的按键及说明:

  • f{char} 向后搜索字符char,并将光标移动到该字符上面。
  • F{char} 向前搜索字符char,并将光标移动到该字符上面。
  • t{char} 搜索字符char,并将光标移动到该字符前一个字符上面。
  • ; 下一个字符所在处
  • , 上一个字符所在处

行首行尾移动

上面所说的行间搜索只能搜索光标后面的字符,如果向前搜索则不能完成需求。这个时候需要使用F来向前搜索或结合行首移动,先将光标移动到行首,然后再搜索。

  • 0 数字0将光标移动到行首
  • ^ 将光标移动到行首非空白处
  • $ 将光标移动到行尾

这里教大家一个小技巧,可以使用0+w来移动到行首非空白字符处。

页面移动

  • gg 移动到首行
  • G 移动到尾行
  • nG 移动到指定行
  • H/M/L 视图最上面/中间/下面
  • ctrl+u 上翻页
  • ctrl+f 下翻页
  • zz 使光标居中

块选择

我们知道,使用vim编辑器,鼠标是没有作用的,不能用鼠标来选定一段字符。下面我们来介绍块选择,有了它再结合光标移动,即可完成一段字符的选择。

  • v 选择多个字符
  • V 选择行
  • ctrl+v 块选择
  • y 复制
  • d 删除
  • p 粘贴