Vim常用指令
光标移动(了解)
行间移动
:移动光标到第一行(命令模式下)键
:移动光标到最后一行(命令模式下)键
:移动到第n行,写法举例:
:移动到第6行(末行模式下)
列间移动
$键
:移动光标到当前行的行尾(最后一列),有些电脑需要使用
(命令模式)$
:移动光标到当前行的行首(第一列)(命令模式下)键
方向键:上下实现行间移动,左右实现列间移动)
删除(重点)
列删除:
:删除当前光标所在处一个字符(命令模式下)键
:删除当前光标所在处以及后面共n个字符,如:键
:删除当前光标处共6个字符(命令模式)
:删除当前光标左边一个字符(命令模式下)键
:删除当前光标处左边共n个字符,如键
:删除当前光标处左边共6个字符(命令模式下)
:删除当前光标至行尾(最后一列)(命令模式下)键
行删除:
:删除当前光标所在行。(命令模式下)键
:删除当前光标所在处至后面共n行,如:键
:从光标处开始连续删除6行(命令模式下)
:删除当前光标所在处至文件末尾(命令模式下)键
:删除n1~n2行,如
:表示删除1~12行
(末行模式下)
拷贝(重点,类似于Windows的Ctrl+c)
复制列(字符)
多按几次
,然后按
,进入可视方式,移动键
方向键
选中文本,然后按
,就完成了拷贝。需要结合键
进行粘贴。(命令模式下)键
复制行
:复制当前行(单行复制)(命令模式下),需要结合键
进行粘贴键
:复制当前行至后续连续n行(多行复制),如:键
,从当前行开始连续复制5行,需要结合p键
进行粘贴(命令模式下)
:复制n1~n2
行数据后粘贴到
行,如:
,从第三行开始拷贝至第14行,粘贴到第2行的下一行。(末行模式下)
粘贴(重点,类似于Windows的Ctrl+V)
:如果拷贝是整行,粘贴在当前行下。如果拷贝是字符粘贴光标之后(配套键
,
,复制列
)(命令模式下)
:如果拷贝是整行,粘贴在当前行下。如果拷贝是字符粘贴光标之前(配套键
,
,复制列
)(命令模式下)
撤销(重点,类似于Windows的Ctrl+Z)
:撤销上一步操作,相当于键
。(命令模式下)
:撤销当前行中的所有操作。(命令模式下)键
:重做撤销的操作,可以理解为对撤销进行还原。类似与Windows中的
(命令模式下)
字符查找(重点,类似于Windows上的Ctrl+F)
:从光标所在处向后查找“string”字符串,输入完毕,需要按下回车键
;按n
可往下继续查找,按N
可往上查找,举例
:要查询的字符串是int。(末行模式+命令模式)
?string
:从光标所在处向后查找“string”字符串,输入完毕,需要按下回车键
;按n
可往上继续查找,按N
可往下查找,举例
:要查询的字符串是int。(末行模式+命令模式)
:set ic
:查找时忽略大小写,查询之前设置,(默认忽略大小写),举例:
,匹配到
(末行模式)
:set noic
:查找时区分大小写,查询之前设置,(默认忽略大小写),举例:
,匹配到
(末行模式)
字符的替换(重点,类似于Windows上的Ctrl+F)
:%s /old_string/new_string
:将全文每一行第一个匹配项old_string替换成new_string(末行模式)
测试数据:
第一行:int main(intargs)
第二行:int func(int params)
需求:将int替换成void
指令::%s int void
回车
替换结果
第一行:int main(intargs)
第二行:int func(int params)
:%s /old_string/new_string/g
:将全文所有匹配项old_string替换成new_string(末行模式)
测试数据:
第一行:int main(intargs)
第二行:int func(int params)
指令::%s int void/g
回车
替换结果
第一行:int main(intargs)
第二行:int func(int params)
Vim其他指令
:set nu
:设置行号(末行模式下)
:set nonu
:取消设置行号(末行模式下)
:显示文件名,当前的行号,文件的总行数和文件位置的百分比(末行模式下)