vim常用指令整理
Vim 是一款高效的文本编辑器,以其强大的功能、高度的可定制性以及在命令行界面下的使用效率而闻名。它基于早期的 Vi 编辑器,并加入了许多新的特性和改进。Vim 适用于多种操作系统,包括 UNIX、Linux、MacOS 和 Windows。
在平时写代码过程中,难免会遇到使用终端的vi或者vim文本编辑器。特别是对于远程操作服务器等场景。但很多时候都是现用现查,为此在这里整理一份,自己经常会用到的一些指令,便于需要的时候,忘记了快速的去查询使用。
移动光标
尽量不要在插入模式进行光标移动【效率很低】
- k | j | h | l | 键盘的↑↓←→:上 | 下 | 左 | 右
- 20j或20↓: 向下移动 20 行
- 0:到行首
- ^:到行首第一个字符,如果前面有空格的话
- $:到行尾
- gg:快速到文件头
- G:快速到文件尾
- 50G:跳转到第 50 行
- 50↓:向下移动50行
复制
- yy:复制一行
- 8yy:向下复制8行
- yw:复制光标开始的一个单词
- y$:复制光标到行尾
- yfA:复制光标到第一个大写A中间的内容
- y2fA:复制光标到第二个大写A中间的内容
剪切
- x:向后剪切一个一个字符,如果是在行尾,则为向前剪切
- 4x:剪切4个
- xp:非行尾交换两个字符,如从bs变成sb
删除
- dd:删除一行
- 100dd:删除100行
- dw:删除一个单词
- df":删除到出现的第一个双引号
- d^:删除至行首
粘贴
- p:粘贴复制或剪切的内容
- 5p:将复制或剪切的内容粘贴5次
替换和撤销
- r+<待替换字母>:将游标所在字母替换为指定字母
- R:连续替换,直到按下Esc
- cc:替换整行,即删除游标所在行,并进入插入模式
- cw:替换一个单词,即删除一个单词,并进入插入模式
- u{n}:撤销一次或n次操作
- U(大写):撤销当前行的所有修改
- Ctrl+r:redo,即撤销undo的操作
退出编辑器
- wq:保存当前文件并退出
- wqa:保存所有文件并退出
- q!: 不保存,强制退出
- qa!: 有多个文件被打开,同时退出
调整文本
- %s/$/sth/ :在行尾追加sth
- %s/^M//g :替换掉dos换行符,^M使用ctrl+v + Enter即可输入
- :g/^\s$/d* :删除空行以及只有空格的行
- %s/#.*//g :删除#之后的字符
- ce:使本行文本内容居中
- ri:使本行文本内容靠右
- le:使本行文本内容靠左
查找字符串
在普通模式下,按下/直接进入查找,输入相应的字符串按确定即可
- n:查找下一个匹配
- N:查找上一个匹配
- 2n:查找下面第二个匹配
- :set number:显示行号
学习vim
学习 Vim 需要时间和耐心,但是它的高效编辑能力是值得投资的。以下是一些学习 Vim 的资源和建议:
- Vim Tutor:开始学习 Vim 的最好方式之一是使用内置的教程程序。在命令行中输入 vimtutor 命令即可开始一个基本的教程。
- 在线资源和社区:互联网上有大量的 Vim 教程、视频和社区,如 Stack Overflow、Reddit 上的 Vim 社区等。
- 实践:Vim 的学习曲线比较陡峭,但实践是学习 Vim 的最佳方式。尝试将日常的文本编辑任务在 Vim 中完成,逐步熟悉其命令和快捷键。
- 配置 Vim:通过定制 .vimrc 配置文件,逐步构建一个适合自己工作流的 Vim 环境。