Vim基础命令指南及速查
作者:互联网
目录
内容纲领
本文主要面向初次或偶尔使用Vim
进行文本编辑的朋友,内容以基础操作指令速查为主,旨在以较小篇幅覆盖尽可能多的基础和常见Vim
操作。
查删改增
0. 退出Vim
Vim
默认通过查看模式(Normal Mode)打开目标文件
vim <filepath>
在查看模式下,你可以用过键入:
进入Vim
界面下方的命令面板
:<command>
并通过追加<command>
对Vim
进行全局操作。
在退出Vim
时,你需要根据以下几种不同情形选择适当的命令:
- 仅查看,直接退出:
:x
(exit) - 保存修改并退出:
!wq
或:x!
(write and quit) - 放弃修改并退出:
:q!
注:
- 与
:x
相比,在没有任何内容修改的情况下使用:wq
会更新目标文件的修改时间
1. 查
在Vim
的查看模式(Normal mode)下,你可以通过不同尺度的光标移动指令快速浏览和查看目标文件内容。
以字符(char)为单位
h, l
:以字符
为单位向左、右
移动光标位置f<char>
:(find)移动光标到下一个<char>
出现的位置
以单词(word)为单位
w, b
:以word
为单位分别向下一个、上一个
连续字符移动,并使得光标指示单词的首个字符位置e
:将光标移动到当前单词的末尾字符位置*, #
:将光标移动下一个、上一个
出现当前单词的位置
以行(line)为单位
j, k
:以行
为单位分别向下、上
移动光标位置0, $
:分别将光标移动到所在行的首个字符
和末尾字符
gg
:直接移动光标到文本首行
G
:直接移动光标到文本尾行
<number>G
:移动光标到文本的第<number>
行
以页(page)为单位
ctrl + U, ctrl + D
:以半页
为单位分别向上、下
移动光标位置shift + H, shift + M, shift + L
:在当前页(屏幕)
内将光标移动到第一行、中间行、最后一行
zz
:以当前光标位置为中间行显示周围页(屏幕)
括号域
%
:移动光标到当前所在括号匹配域
的括号位置
全局查找
:/
:在全局命令面板中进入搜索模式(Search Mode)查找目标字符串,使用n, N
向下一个、上一个
匹配项移动
2. 删
删除字符(char)
x
:删除当前光标位置字符
删除单词(word)
diw
:(delete inside word)删除光标所在单词
删除句子(sentence)
dis
:(delete inside sentence)删除光标所在句子
删除行
dd
:删除光标所在行
高阶匹配域(见章节:*组合指令)
-
df<char> or dt<char>
:到当前行给定字符(包含/不包含
目标字符) -
d<移动指令>
:删除移动路径范围字符 -
di<object>
:删除给定匹配域字符
3. 改
改变字符(char)
s
:(substitute)修改光标位置字符
(进入插入模式)r<target-char>
:(replace)修改光标位置字符
(保持查看模式)
其余操作与删除操作d
一致
- 将
2. 删
章节中的d
替换为c
,也即在删除目标后进行自动切换为插入模式
4. 增
增加文本一般可以分为两种情况:
复制粘贴既有文本
在获得复制得到的文本buffer
后,可通过在查看模式下键入p
,粘贴buffer
到光标位置。对于复制文本的情形,可根据实际情境选择不同方法实现:
查看模式
yy
或Y
复制当前行y<移动指令>
复制光标移动范围文本,如- 配合行移动:
yj
复制当前当前行及下一行 - 配合字符移动:
yl
复制下一个字符 - 配合指定行移动:
ygg
复制第一行到当前行等
- 配合行移动:
可视化模式
- 在查看模式下键入
v
进入可视化模式,通过移动光标选中范围字符 - 键入
y
复制选中文本
键入文本
在查看模式下键入i
(insert,光标位置插入)或a
(append,光标位置后添加)进入插入模式
通用操作
undo和redo
u
: undoctrl + r
: redo
重复执行一次最近一次命令
.
:在当前光标位置重复前一个执行指令
重复执行多次当前指令
<number><command>
:连续<number>
次执行<command>
, 如:3j
:光标向下移动三行
3fc
:光标移动到下文中第3
次出现c
的位置3ic
:在光标位置进入插入模式,并连续插入3
个c
d3l
:删除当前行
及接下来的三行
*组合指令
动词✚修饰符✚对象
动词
c
:(change)改d
:(delete)删
修饰符
i
:(inside)在……内t
:(till)到……(不包括目标字符)f
:(find)到……(包括目标字符)
对象
w
:(word)单词s
:(sentence)句子t
:(tag)标签(
或[
或{
·:对应括号内字符串'
或"
:对应引号内字符串
示例
diw
:删除当前单词dis
:删除当前句子dt<char>
:删除从光标位置开始,到目标<char>
前的所有字符- 将以上指令中的
d
替换为c
,则在删除基础上进入插入模式
*可视化模式(Visual Mode)
在查看模式(Normal Mode)下键入v
进入可视化模式(Visul mode),并使用查看模式下的移动逻辑选取文本范围,选取文本被高亮显示。
在得到选取文本后,你可以在此基础上进行:
- 删:使用
d
删除选中文本 - 改:使用
c
修改选中文本(删除并进入插入模式) - 复制:使用
y
复制选中文本
扩展
- Interactive Vim tutorial
- 8 Vim Tricks That Will Take You From Beginner to Expert | by Tyler Lum | The Startup | Medium
标签:指南,字符,移动,删除,模式,Vim,速查,文本,光标 来源: https://blog.csdn.net/weixin_43958105/article/details/120097912