实际场景演示vim使用技巧-工具(八)


​ 主要记录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)

startthe end is high
dbthe end is h
xthe end is

“db”命令删除从光标起始位置到单词开头的内容,“x”删除余下字符。
2)

bthe end is high
dwthe end is

“b”命令把光标移动到单词的开头,“dw”命令删除整个单词。

3)直接使用“daw”命令删除光标字符处单词,可以记为“delete a word”。

场景五 用替换模式替换已有文本
startTraining. But no.
f.光标到达第一个句号
R, bTraining, but no.

用“R”命令由普通模式进入替换模式,输入对应字符替换原有字符,完成替换返回普通模式。

场景六 可视模式与普通模式切换 可视模式下操作
v切换面向字符可视模式
V切换面向行
C-v切换面向列块
startDef 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上下左右切换
场景九 删除 复制 粘贴

调换字符

xPractica lvim
ppractical vim

将光标放置在空格处,x把光标下的字符剪切下来,p命令将内容张贴到光标后面。
调换文本行

start2) line two 1) line one 3) line three
dd1) line one 3) line three
p1) line one 2) line two 3) line three

复制当前行在下一行

start1) line one
yyp1) 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 ./`

参考文档

【1】Sed+Grep 快速替换查找字段(批量替换字符串)
【2】Vim实用技巧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paul安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值