Vim基础学习

7/6/2022 Vim

# 命令行模式

# 1.创建文件

  • :edit(:e):创建新文件
:edit {relative-path-to-file}
# .e.g
:e helloworld.js
1
2
3

# 2.保存文件

  • :write(:w):保存文件
  • :write!(:w!):保存文件及时已经保存或者是只读模式
  • :wall(:wa):保存所有文件
  • :wq:保存并且关闭文件
  • :wqall(:wqa):保存并且关闭所有文件

# 3.关闭文件

  • :quit(:q):关闭文件
  • :quit(:q!):关闭文件并且不保存
  • :qall(:wqa):关闭所有文件
  • :qall!(:wqa!):关闭所有文件并且不保存

# 4.删除文本

文本执行命令遵循一下格式:

:[range]command[options]
1
  • 删除m-n行
:[range]d [register]
# .e.g
# 删除10-12行,放在寄存器a
:10,12d a
1
2
3
4
  • 从m行删除n行::10,+2d
  • 删除整个文件::%d
  • 从当前行删除到结尾::.,$d

# 5.替换文本

格式:

:[range]s/{pattern}/{substitute}/{flags}
1
  • 当前行全局替换::s/led/gold/g
  • 整个文件全局替换::%s/led/gold/g
  • /c;每次替换都需要确认

# surrounding

语法:

ds{count}{motion}
cs{count}{motion}
ys{count}{motion}
1
2
3

.e.g:

  • ds':删除被'包围的文本(ds{char})
  • cs'":把文本周围的'改为"

# 技巧

# 技巧4-执行、重复、回退

# 可重复的操作及如何回退

目的 操作 重复 回退
做出一个修改 {edit} . u
在行内查找下一指定字符 f{char}/t{char} ; ,
在行内查找上一指定字符 F{char}/T{char} ; ,
在文档中查找下一处匹配项 /pattern<CR> n N
在文档中查找上一处匹配项 ?pattern<CR> n N
执行替换 😒/target/replacement &/. u
全局执行替换 😒/target/replacement/g - u
执行一系列修改 qx{changes}q @x u

# 技巧54-设置位置标记,以便快速跳回

m{a-zA-Z}:命令会用选定的字母标记当前光标所在位置。
`{mark}:命令跳到位置标记所在行
``:当前文件中上次跳转动作之前的位置

`.:上次修改的地方

gi:跳转到上次编辑的地方,并且进入编辑状态
%:跳转到匹配的括号
gf:跳转到光标下的文件名

# 技巧60-深入理解Vim寄存器

# 引用一个寄存器

我们可以通过给命令加"{register}前缀的方式指定要用的寄存器。

.e.g
"ayiw:复制当前单词并且放入寄存器a
"ap:粘贴来自寄存器a的单词

# 复制专用寄存器

当我们使用y{motion}命令时,要复制的文本不仅会被拷贝到无名寄存器中,而且也被拷贝到了复制专用寄存器中,后者可用数字0加以引用。

"0P:粘贴上次复制的内容