Vim基础学习
wudi 7/6/2022 Vim
# 命令行模式
# 1.创建文件
:edit(:e)
:创建新文件
:edit {relative-path-to-file}
# .e.g
:e helloworld.js
1
2
3
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
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
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
:粘贴上次复制的内容