VIM常用命令

文章更新

  1. 20160602-初次成文
  2. 20160607-调整了格式,加入一个VIM小游戏
  3. 20160831-格式调整,丰富内容

VIM常用命令

Insert(插入)模式

这个模式就是常用的打字的地方,嗯,就是这样。

进入

  • i -> 在光标前插入
  • I -> 在句首插入
  • a -> 在光标后插入
  • A -> 在句尾插入

离开

  • Esc
  • Ctrl + c
  • Ctrl + [

Normal模式

进入vim时候的默认模式,在这个模式下可以随意使用命令

简单移动

  • h j k l -> 左 下 上 右
  • 0(数字零) -> 移动光标到行头
  • $ -> 移动光标到行尾
  • gg -> 到第一行
  • G -> 到最后一行
  • w -> 到下一个单词的开头。
  • e -> 到下一个单词的结尾。

简单操作

  • dd -> 剪切当前行
  • yy -> 赋值当前行
  • p -> 粘贴
  • u -> 撤销
  • . -> 上次命令的重复

命令的组合

  • daw -> 删除当前单词
  • 2dd -> 删除包含当前行在内的2行
  • 3p -> 粘贴文本3次
  • 100idesu [ESC] → 会写下 “desu” 100次
  • 0y$ -> 从行头拷贝到本行最后一个字符

visual模式

进入

  • v -> 连续选择模式
  • V -> 连续行选择模式

v从当前字符开始选,以后每次选中一行,但第一次选择的是从当前字符开始的行。而V从当前行开始选择,直到光标结束之处。

  • Ctrl + v -> 块选择模式,比如可以在多行之前的某个未知,插入注释

块选择 Ctrl+v 在表格中删除指定列非常有用

离开

  • Esc
  • Ctrl + c
  • Ctrl + [

> 和 <

将选中字符右移或左移 shiftwidth位置

d 与 D 的区别

d只删除选中的字符,而D删除选中字符所在行的所有字符,c和C,y和Y同理

select模式(选择模式)

进入

  • gh
  • gH
  • g(Ctrl + h)

切换

  • Ctrl + o -> 临时切换到可视化模式执行一个命令
  • Ctrl + g -> 切换到可视化模式

光标移动

  • fx -> 移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。
  • tx -> 和上面的命令类似,但是是移动到 x 的左边一个位置。
  • Fx -> 和 fx 类似,不过是往回找。
  • w -> 光标往前移动一个词。
  • b -> 光标往后移动一个词。
  • 0 -> 移动光标到当前行首。
  • ^ -> 移动光标到当前行的第一个字母位置。
  • $ -> 移动光标到行尾。
  • ) -> 移动光标到下一个句子。
  • ( -> 移动光标到上一个句子

替换

  • :s/hello/world 替换当前行中第一个hello为world
  • :%s/hello/world 替换每一行中第一个hello为world
  • :s/hello/world/g 替换当前行中所有的hello为world
  • :%s/hello/world/g 替换每一行中所有的hello为world
  • :%s/hello/world/gc 找到当前文件中所有的hello,并逐一询问用户是否要替换

内容提取

  • :r !date 将当前时间插入到当前文件
  • :r /path/to/src.file 将src.file里的内容输出到当前文件

解决vi/vim中粘贴会在行首多很多缩进和空格的问题

在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而只是纯拷贝粘贴),然后输入i,再进行黏贴,就不会有格式错乱的问题了。

拷贝完成之后,输入:set nopaste (关闭paste)

总结

VIM的命令甚多,组合也很多,记忆是不能长时间记住的。唯一的捷径就是多多使用,用的多了,使用这些命令时就像手拿筷子一样,变成了本能。

参考文件

  1. 移动组周技术分享-代码效率