使用 vim 也有一段时间了,但是经常会忘记一些不是那么常用,但是很实用的一些功能,在此做个记录,方便后续查阅。
图片来源https://blog.csdn.net/eroswang/article/details/2137766
宏
在 命令模式下,按 q 开始录制,然后在按 a ,将录制的内容存储到 a 键中,然后执行你需要录制的的操作,譬如 dd 删除一行,最后按 q ,表示结束录制。然后运行宏,@a 即可运行录制在 a 键中的宏,如果在前面加上数字,则表示执行多次,譬如 100@a ,表示执行 100 次录制在 a 键中的宏。当然,录制的内容不一定只能存储在 a 键中,也可以放到其他键中,操作与放在 a 键中类似。
光标移动
字符 & 单词移动
【h、j、k、l】控制光标左、下、上、右移一格
【w、e、b】单词此间的跳转
【f + char】跳转到当前行出现 char 的地方,f 表示从当前位置往前查找,F 表示从当前位置往后查找
【*】跳转到后一个与当前光标所在位置的字符串相同的位置
【#】跳转到前一个与当前光标所在位置的字符串相同的位置
【^】跳转到当前行第一次出现非空格的位置
【$】挑战到当前行行尾
【0】跳转到当前行行首
相对屏幕移动
【ctrl+b】屏幕往“后”移动一页
【ctrl+f】屏幕往“前”移动一页
【ctrl+e】屏幕逐行上滚
【ctrl+y】屏幕逐行下滚
【H】光标移动到屏幕的首行
【L】光标移动到屏幕尾行
【M】光标移动到屏幕中间
【zt】将当前行移置顶
【zz】将当前行移到屏幕中部
【zb】将当前行移到移到底部
【G】移动到这个文件的最后一行
【nG】移动到这个文件的第n行(可配合:set nu)
【gg】移动到这个文件的第一行,相当于命令1G
【n<Enter>】光标向下移动n行
选择
【v】进入选择模式
【V】选择当前行,行选中模式
【v + i + "】选择“”中间的部分,不包括 “”
【v + a + "】选在“”中间部分和 “”
这里的 “ 可以换成 {, [ ,( 等等,含义类似。
单词转换
【gu】变小写
【gU】变大写
【~】将光标下的字母改变大小写
【3~】将光标位置开始的3个字母改变其大小写
【g~~】改变当前行字母的大小写
【U】 将可视模式下选择的字母全改写成大写字母
【u】将可视模式下选择的字母全改成小写字母
【gUU】 将当前行的字母改成大写
【guu】将当前行的字母改成小写
【3gUU】 将从光标开始到下面3行字母改成大写
【gUw】将那个光标下的单词改成大写
【guw】将光标下的单词改成小写