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.其他

-- 括号匹配:将光标移动到括号上,按下%会自动匹配另外半边括号

posted @ 2021-03-24 23:13  海物chinono  阅读(169)  评论(0)    收藏  举报