文章目录
主要记录VIM的一些实用技巧,方便提高工作效率。
技巧一: .命令
.命令可以重复上次的修改
场景一 删除光标删除行
Line one
光标一般情况下,存在于单个字符下方输入x命令会删除光标下的字符。这种情况下使用 . 命令“重复上次修改”时,Vim就会删除光标下的字符,此时可以输入u撤销上述修改。
dd命令也会做删除操作,但他是把整行一起删掉。继续使用 . 命令,重复上次修改VIM会删除当前行。
场景二 光标后添加内容行尾添加内容
a命令在当前光标之后添加内容,A命令在当前行的结尾添加内容,不管光标当前处于什么位置,输入A都会进入插入模式,并把光标移到行尾。💲光标移动到行尾,j光标移动到下一行。通过上面的一系列操作,只需要第一次在首行后添加“;”,后面可通过“j .”重复在下一行结尾添加“;”。
采用“:% s/old/new/g” 可以进行全局替换,但存在将不想替换的同时替换掉情况发生。因此可以手动替换。
场景三 替换字符
光标移动到对应字符上,使用“*”进行查找,按“n”跳到下一个匹配项,按“N”跳到上一个匹配项。cw命令会删除从光标位置到单词结尾处的字符,并进入到插入模式,接下来输入单词“copy”进行替换,VIM会把“cwcopy ESC”当作一次完整的修改,按“n”找到下一个字符,执行“.”命令会删除从光标到当前单词结尾间的字符,并修改为单词“copy”。此种情况下就可以将不符合要求的匹配项去除。
场景四 删除单个字符
假设光标位于字符串行尾
1)
start | the end is high |
---|---|
db | the end is h |
x | the end is |
“db”命令删除从光标起始位置到单词开头的内容,“x”删除余下字符。
2)
b | the end is high |
---|---|
dw | the end is |
“b”命令把光标移动到单词的开头,“dw”命令删除整个单词。
3)直接使用“daw”命令删除光标字符处单词,可以记为“delete a word”。
场景五 用替换模式替换已有文本
start | Training. But no. |
---|---|
f. | 光标到达第一个句号 |
R, b | Training, but no. |
用“R”命令由普通模式进入替换模式,输入对应字符替换原有字符,完成替换返回普通模式。
场景六 可视模式与普通模式切换 可视模式下操作
v | 切换面向字符可视模式 |
---|---|
V | 切换面向行 |
C-v | 切换面向列块 |
start | Def A=c C=d c=d d=e |
V j | 之前光标在c=d此行,操作之后后两行被选中 |
> . | 后两行不断向右缩进,一次一个空格,重复操作,也可以采用“2>”。 |
Vim语法有一条额外规则,当一个操作符命令被连续调用两次时,它会作用于当前行。
场景七 插入模式下删除
C-h | 删除前一个字符 |
---|---|
C-w | 删除前一个单词 |
C-u | 删至行首 |
删除前一个字符同退格键,前两个命令意义不大,但删至行首,一般操作是<退至普通模式,按dd,再进入插入模式>,因此直接在插入模式下操作更便捷。
技巧二 文件
包括编辑多窗口文件,显示,以及一些常见问题。
场景八 管理多个文件
C-w>s | 水平切分VIM窗口 |
---|---|
C-w>v | 垂直切分VIM窗口 |
C-w>w | 窗口间循环切换 |
C-w>h j k l | 上下左右切换 |
场景九 删除 复制 粘贴
调换字符
x | Practica lvim |
---|---|
p | practical vim |
将光标放置在空格处,x把光标下的字符剪切下来,p命令将内容张贴到光标后面。
调换文本行
start | 2) line two 1) line one 3) line three |
---|---|
dd | 1) line one 3) line three |
p | 1) line one 2) line two 3) line three |
复制当前行在下一行
start | 1) line one |
---|---|
yyp | 1) line one 1) line one |
场景十 global 删除保留操作
: g/re/d | 删除所有匹配‘re’的匹配行 |
---|---|
: v/re/d | 只保留匹配‘re’的匹配行 |
场景十一 自动补全
C-n> | 使用来自补全列表的下一个匹配项 |
---|---|
C-p> | 使用来自补全列表的上一个匹配项 |
C-y> | 确认使用当前选中的匹配项 |
shell目录下查找内容字段并批量替换
格式:
** sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl路径`
命令分解:
grep 查找字段 -rl路径 列出”路径”中” 查找字段” 的所有文件
sed –I “s/查找字段/替换字段/g” 在上面”查找列出的文件”(grep命令)中,执行"s/查找字段/替换字段/g" 操作,并将操作的结果作用在“查找列出的文件”源文件上.
注意:红色字符为键盘 TAB 键上的按键
例:替换当前目录下所有文件中的syslog为xlog
sed -i "s/xlog/syslog/g" `grep -rl xlog ./`