# Vim

# 基本操作

# 移动、退出、保存

  • h j k l
  • :q :q!
  • :w [name] :wq [name] :wq! [name]

# Vim 模式

# normal 普通模式

移动操作

# Command 命令模式

  • 保存退出
  • 设置行号::set nu(简写);取消行号:set nonu(简写)
  • 分屏::vs(vertical split), :sp(split)
  • 全局替换::% s/java/js/g 全局把 java 替换为 js
  • 搜索:/java

# insert 编辑模式

# visual 可视化模式

选择文本

  • v:选择当前文字或字母
  • V:选择当前行
  • Ctrl + v:进行方块选择,竖向方块

# 增删改查

# 插入命令

  • a:append,当前文字或字母之后;A:append after line,当前行行尾
  • i:insert,当前文字或字母之前;I:insert before line,当前行行首
  • o:open a line below;O:open a line above

# 删除命令

  • x

  • d删除操作,可配合如下命令。

    许多改变文本的命令都由一个操作符和一个动作构成(如下操作时中文则是一个句子)。一个简短的动作列表:

    • w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。

    • e - 从当前光标当前位置直到单词末尾,包括最后一个字符。

    • 0 - 从当前光标当前位置直到当前行首。

    • $ - 从当前光标当前位置直到当前行末。

      上述前两个动作前可以添加数字,代表重复次数

  • dd则删除当前行,可在前添加数字。样会将该行保存到 Vim 的一个寄存器中

# 置入命令

  • p将寄存器中内容置入光标所在后面;若上次删除的是一行,则置入光标的下一行

# 替换命令

  • r替换光标处文字。按r后输入要替换的文字

# 更改命令

  • c 改变文本,先删除,后进入编辑模式。类似于先执行删除操作,后编辑

    • w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。

    • e - 从当前光标当前位置直到单词末尾,包括最后一个字符。

    • 0 - 从当前光标当前位置直到当前行首。

    • $ - 从当前光标当前位置直到当前行末。

      上述前两个动作前可以添加数字,代表重复次数

# 撤销操作

  • u 撤销最后执行的命令,undo
  • Ctrl+R,reundo
  • U 撤消对整行的修改