linux下Vi/Vim编辑器高级操作

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-23 05:32   11   0

1、定位

:set nu #设置行号

:set nonu #取消行号

gg #光标移到第一行

G #光标移到最后一行

nG #光标移到第n行

:n #光标移到第n行

$ #光标移到行尾

0 #移到行首

2、删除

x #删除光标所在处字符

nx #删除光标所在处后n个字符

dd #删除光标所在行

ndd #删除n行(从当前光标所在行向后数n行)

dG #删除光标所在行到文件末尾内容

D #删除光标所在处到行尾内容

:n1,n2d #删除指定范围的行

3、复制和剪切

yy #复制当前行

nyy #复制当前行以后n

dd #剪切当前行

ndd #剪切当前行以下n

p、P #粘贴在当前光标所在行下或行上

4、替换和取消

r #取代光标所在处字符

R #从光标所在处开始

u #取消上一步操作

5、搜素和搜素替换

/string #搜索指定字符串

:set ic #忽略大小写

:setnoic #不忽略大小写

n #搜索指定字符串的下一个出现位置

:%s/old/new/g #全文替换指定字符串

:n1,n2s/old/new/g #在一定范围内替换指定字符串

常见用法:

1. 删除以#号开头的行:

:g/^#/d

:%s/^#.*\n

2. 删除以空格开头的行:

:g/^\s/d “\s代表空格”

:%s/^\s.*\n

3. 删除以空格#开头的注释行:

:g/^\ .*#/d “(.*)代表若干”

:%s/^\s.*#.*\n//g

4. 删除空白行:

:g/^$/d

:g/^\s*$/d “删除由空格组成的行”

:g/^[\s|\t]*$/d “删除由空格或tab键开头到结尾的行”

:g/^[ |\t]*$/d “删除由空格或tab键开头到结尾的行”

5. 删除行首空格:

:%s/^\s\+ “\+代表一个或多个\s”

6. 删除行末空格:

:%s/\s\+$

7. 加#注释所有行:

:%s/^/#/g

8. 查找注释掉的CONFIG:

/^#.*CONFIG.*$

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP