vim命令之光标移动

时间:2021-02-06 16:54:39

vim有好几种模式,这样带来的好处就是能够使用很简捷的按键完成复杂的功能。vim模式有下面几种:

1.普通模式,这是刚打开vim后进入的模式,大部分光标移动,删除,复制等等操作都是在这个模式下完成的,这时候的按键基本上都被安排了特定的功能,不会输入到编辑的内容当中,在编辑模式下按ESC可以进入普通模式。

2.编辑模式,这个时候的vim基本就只能充当txt记事本的功能了,除了方向键,一些Ctrl引导的功能键以外,大部分按键的命令功能失效。在普通模式下,按i,a....等等一些插入命令可以进入编辑模式。

3.命令模式,普通模式下按冒号(:)进入Command-Line模式,可以输入各种命令。

没有特别说明的话,都是指在普通模式下。

光标移动

    k

  h    l

    j

vim里面的许多命令都可以和数字结合,表示重复执行该命令。如:8h,表示向上移动8行,3l,表示向右移动一个字符,这个真的可以举一反三。

0表示移动到行首,$表示移动到行尾。

另外一个移动到行首的命令是 ^,不过这个是移动到第一个非空字符,比较有用。

gg 移动到文档的起始,G 移动到文档末尾。

移动到第n行,nG  或者在命令模式下直接输入行号

 + 移动到下一行的第一个字符   - 移动到上一行的第一个字符

e 移动到下一个单词的结尾  w 移动到下一个单词的开始  b  到上一个单词的开始

ctrl-f 向前移动一个屏幕  ctrl-b  向后移动一个屏幕

ctrl-u 向上移动装修屏幕  ctrl-d  向下移动半个屏幕

z enter 将当前行放在屏幕顶端  

z.   将当前行放在屏幕中间

z-     将当前行放在屏幕底端

H     光标移到屏幕顶端
M     光标移动到屏幕中间
L    光标移动到屏幕底端

nH   光标移动到屏幕顶端向下数第n行
nL    光标移动到屏幕底端向上数第n行

(    移动到当前句子的开头
)    移动到下一个句子的开头
{     移动到当前这一段的开头
}     移动到下一段的开头
]]    移动到这一节的开头
[[    移动到下一节的开头

``  可以移动到跳转前的位置。

还有一个非常强大的行内跳转功能:

  f char 表示跳转到本行内光标后的第一个char字符。F表示跳转到本行内光标前的第一个char字符。

  ; 重复上一个搜索命令,方向相同

  , 重复上一个搜索命令,方向相反  

  这个命令也可以加上数字操作,如3fe,表示移动到字符e第3次出现的位置。