vim的基本使用
在vim中存在两种状态,分别是命令状态和文本状态。在命令状态下,输入解释为命令且不回显。
- 命令状态→文本状态: i \ a ,其中i(insert)为插入模式,在当前光标前插入字符;a(append)为追加模式,在当前光标后插入字符
- 文本状态→命令状态: ESC
1.重复或取消操作
- 取消上一次操作:u (undo)
- 重复上一次操作:.
- 重复执行操作: 数字+具体操作 例如3.就是重复上一次操作3次,4j就是向上移动4行
2.光标移动
- 基本移动
- 向上移动:↑ \ j
- 向下移动:↓ \ k
- 向左移动:← \ h
- 向右移动:→ \ l
- 重复执行命令:在命令前加数字,例如5j表示向上移动5行,6h表示向左移动6个字符
- 光标快速移动
- 将光标移动到行首:^
- 将光标移动到行尾: $
- 向左移动一个单词:b
- 向右移动一个单词:w
- 光标移动到指定行: 使用:后跟具体行号,例如:23代表移动到23行 :1代表移动到第1行 :^代表移动到第1行 :$代表移动到最后一行
3.编辑
- 删除字符:x 删除当前字符 5x 删除当前光标开始5个字符
- 删除行:dd 删除当前行 3dd 删除从当前行开始的3行
- (使用圆点.代表当前行)
- 字符替换:r+替换的新字符,例如ra会将光标处字符替换成a
如果要将光标处字符abc替换成ddd,则可输入3rd
4.复制、粘贴、移动、合并
- 删除a到b行并拷贝到剪切板: :a,bd (delete), 同理使用 :.,.+3d代表删除当前行开始的3行并拷贝到剪切板
- 拷贝a到b行到剪切板,不删除::a,by (yank)
- 粘贴剪切板信息:p (paste)
- 复制a到b行到c行下::a,bcoc (copy) ,例如 :5,10co56代表拷贝5到10行的数据到56行下
- 移动a到b行到c行下::a,bmc (move)
- 合并两行(当前行与下一行) : J (join ,注意是大写,小写是上移一行)
5.文件操作
- 存盘退出:ZZ / :wq
- 存盘不退出::w
- 不存盘退出: :q!
- 读取文件a.txt插入到当前行下::r a.txt
- 将第a到b行的数据写到文件c.txt中::a,bw a.txt , 如果想强制覆盖则使用 :a,bw! a.txt , 同理使用 :1,$w a.txt可以将当前文件全部写到a.txt中
6.模式查找、替换
-
查找命令: /pattern 例如/[0-9][0-9]*
-
查找下一个: n
-
查找上一个: N (大写)
-
替换:
:l1,l2s/pattern/string/g
将l1行到l2行满足pattern的字符串替换成string,可以在模式中添加\(和\)来进行提取, 比如-将04-27-1997替换成1997.04.27可使用指令
:1,$s/\([0-9]{2}\)-\([0-9]{2}\)-\([0-9]{4}\)/\3.\1.\2/g
7.其他
-- 括号匹配:将光标移动到括号上,按下%会自动匹配另外半边括号

浙公网安备 33010602011771号