Vim 实用操作

个人不喜欢看冗长的文档,但是不学习也无法获得新知,发挥vim强大的功能。 所以个人一般是看别人的概括性文章,再搜索相关不了解的功能。

忘记sudo

如果正在修改一个需要管理员权限的文件,但是又忘记 sudo vim 了,可以使用

:w !sudo tee %

进行补救

组合思想

记住一整个组合键的操作,而不是记住单个操作再组合 例如 xp 交换相邻两个字符

定位命令

最基本的移动,hjkl,配上数字可以实现光标的跳转

定位 按键
绝对首列 0
第一个非空字符 _
光标右边的第一个字符 ;继续找 ,反向找 f
光标左边…,同上 F
光标右边的第一个字符之前 ;/,同上 t
光标左边的第一个字符之前 ;/,同上 T

打开文件

:e

替换内容

r 在normal模式下可以替换单个字符,R则是连续替换,可以用backspace撤回

在visual模式下,r可以将选中的文本都替换成一个字符,这似乎没有什么用,可以用数字,例如 20r 代替

但是这可以用来方便的写markdown的标题,Vyp复制一行内容,再使用Vr=将其替换为连续的下划线

使用 . 和 宏 执行重复操作

. 可以重复上次修改操作

如果需要更复杂的重复功能,需要使用宏

持久化undo记录

关闭文件再打开后,无法撤回历史动作

以下配置实现永久化undo记录

1
2
3
set undofile 
" 配置你的undo保存路径
set undodir=~/.vim/undodir

跳转

查看跳跃列表

  • :jumps

跳转到上一个位置

  • <C-o>

跳转到下一个位置

  • <C-i>

参考资料