Vim进阶
https://www.bilibili.com/video/BV1NG4y1p74h
查看帮助文档:normal 模式下输入 :help 字符
插入模式下
ctrl + h
删除上一个字符,相当于 backspace
删除键
ctrl + w
如果光标所在位置为空格,则删除本行中当前光标左边最近的一个单词
ctrl + u
删除当前光标到行首的内容;如果光标在行首,则删除当前行与上一行之间的换行符
快速切换到 normal 模式和 insert 模式
insert 切换到 normal 模式
ctrl + [
推荐
ctrl + c
不推荐,可以会切断运行
normal 切换到 insert 模式
gi
快速切换到 insert 模式并将光标移动到最后一次编辑的位置
快速移动光标
向后
w/W
: 移动到下一个word/WORD
开头;e/E
: 移动到下一个word/WORD
开头;
向前
b/B
: 移动到上一个word/WORD
开头;
WORD
表示是以空白符分割的单词;word
表示是以非空白符分割的单词。
行内搜索移动
f + 字符
:在当前行从前往后搜索,跳转到指定的字符上,使用; 或 ,
分别向右或向左移动F + 字符
:在当前行从后往前搜索,跳转到指定的字符上,使用; 或 ,
分别向左或向右移动t + 字符
:在当前行从前往后搜索,跳转到指定字符的前一个字符上,使用; 或 ,
分别向右或向左移动T + 字符
:在当前行从后往前搜索,跳转到指定字符的前一个字符上,使用; 或 ,
分别向左或向右移动
移动到行首或行尾
0
: 移动到行首第一个字符^
: 移动到行首第一个非空白字符,可以使用0w
代替。常用$
: 移动到行尾。常用g_
: 移动到行尾非空白字符
页面移动
gg
移动到文件开头G
移动到文件结尾H/M/L
移动到屏幕的开头、中间和结尾ctrl + u
upword,向上翻半页ctrl + f
forword,向下翻半页zz
将当前光标所在的行放置在屏幕中间
快速操作
删除
在 normal 模式下进行删除
dd
删除光标所在行;数字 + dd
删除光标所在行及之后的数字 - 1
个行
x
删除光标所在字符;数字 + x
删除光标所在字符及之后的数字 - 1
个字符
dw
删除当前单词的一部分:当前光标到单词结尾的部分(左闭右闭),以及单词后的空格
daw
删除光标所在的单词以及后面的空格
diw
删除光标所在的单词,不会删除后面的空格
dt + 字符
删除当前光标到指定字符之间(左闭右开)的内容。dt 为 delte to 的意思
d$
删除当前光标及之后位置上的内容
d0
删除当前光标之前的所有内容
在 visual 模式下进行删除
按 v
进入行内选择,配合 h
或 l
左右选择后使用 d
或 x
删除
按 V
进入多行选择模式,配合 j
或 k
上下选择后使用 d
或 x
删除
修改
replace
r + 字符
快速替换光标所在的字符。数字 + r + 字符
将当前光标位置及后边紧挨着的共数字
个字符替换为指定的字符
R
进入 replace 模式
substitute
s
删除当前字符并进入 insert 模式;数字 + s
表示删除指定个数个字符后进入插入模式
S
删除当前行,进入 insert 模式,光标移动到行首
change
caw
删除光标所在单词及后边的空格,并进入插入模式
C
删除当前行,进入 insert 模式,光标移动到行首。与 S
功能相同
ct + 字符
删除当前字符到指定字符之间的内容(左闭右开),进入 insert 模式
查询
/ + 字符串
向后搜索;? + 字符串
向上搜索
n/N
跳转到下一个或上一个匹配
*
向下搜索当前光标所在单词,并将光标跳转到其上;#
向上搜索当前光标所在单词,并将光标跳转到其上
normal 模式下配置
:set hls
highlight selected:set incsearch
increase search,增量搜索,即动态显示搜索的结果