目录
内容纲领
本文主要面向初次或偶尔使用Vim进行文本编辑的朋友,内容以基础操作指令速查为主,旨在以较小篇幅覆盖尽可能多的基础和常见Vim操作。
查删改增
0. 退出Vim
Vim默认通过查看模式(Normal Mode)打开目标文件
vim <filepath>
在查看模式下,你可以用过键入:进入Vim界面下方的命令面板
:<command>
并通过追加<command>对Vim进行全局操作。
在退出Vim时,你需要根据以下几种不同情形选择适当的命令:
- 仅查看,直接退出:
:q(quit) - 保存修改并退出:
:x(exit)或!wq(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个cd3l:删除当前行及接下来的三行
*组合指令
动词✚修饰符✚对象
动词
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复制选中文本

3481

被折叠的 条评论
为什么被折叠?



