vim中选择匹配文本删除技巧

您所在的位置:网站首页 vim删除第几行到第几行的快捷键 vim中选择匹配文本删除技巧

vim中选择匹配文本删除技巧

2024-07-10 16:36| 来源: 网络整理| 查看: 265

1,简单替换表达式

去掉所有的行尾空格:   %s/\s\+$//

去掉所有的空白行:       %s/ \s∗\n \+/\r/

去掉所有的"//"注释:     %s!\s*//.*!!

去掉所有的"/*...*/"注释:     %s!\s*/ \*\_.\{-}\*/\s*! !g

删除DOS方式的回车^M :%s/r//g  :%s= *$== 删除行尾空白: :%s/^(.*)n1/1$/ 删除重复行: :%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf: :%s/// 又是删除多行注释(咦?为什么要说「又 」呢?) :g/s* ^ $/d 删除所有空行 :这个好用有没有人用过还有其他的方法吗? :g!/^dd/d 删除不含字符串'dd'的行  :v/^dd/d 同上 (译释:v == g!,就是不匹配!)  :g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行 :v/./.,/./-1join 压缩空行  :g/^$/,/./-j 压缩空行

 

2,简单删除命令  ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。  d0 删至行首。  d$ 删至行尾。  ndd 删除当前行及其后 n-1 行。  x 或 X 删除一个字符。  Ctrl+u 删除输入方式下所输入的文本。  ^R 恢复u的操作  J 把下一行合并到当前行尾  V 选择一行  ^V 按下^V后即可进行矩形的选择了  aw 选择单词  iw 内部单词(无空格)  as 选择句子  is 选择句子(无空格)  ap 选择段落  ip 选择段落(无空格)  D 删除到行尾  x,y 删除与复制包含高亮区  dl 删除当前字符(与x命令功能相同)  d0 删除到某一行的开始位置  d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)  dw 删除到某个单词的结尾位置  d3w 删除到第三个单词的结尾位置  db 删除到某个单词的开始位置  dW 删除到某个以空格作为分隔符的单词的结尾位置  dB 删除到某个以空格作为分隔符的单词的开始位置  d7B 删除到前面7个以空格作为分隔符的单词的开始位置  d) 删除到某个语句的结尾位置  d4) 删除到第四个语句的结尾位置  d( 删除到某个语句的开始位置  d) 删除到某个段落的结尾位置  d{ 删除到某个段落的开始位置  d7{ 删除到当前段落起始位置之前的第7个段落位置  dd 删除当前行  d/text 删除从文本中出现“text”中所指定字样的位置,  一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容  dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容  dtc 删除当前行直到下一个字符“c”所出现位置之间的内容  D 删除到某一行的结尾  d$ 删除到某一行的结尾  5dd 删除从当前行所开始的5行内容  dL 删除直到屏幕上最后一行的内容  dH 删除直到屏幕上第一行的内容  dG 删除直到工作缓存区结尾的内容  d1G 删除直到工作缓存区开始的内容

:s/str1/str2/       用字符串 str2 替换行中首次出现的字符串 str1

:s/str1/str2/g      用字符串 str2 替换行中所有出现的字符串 str1

:.,$ s/str1/str2/g  用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1

:1,$ s/str1/str2/g  用字符串 str2 替换正文中所有出现的字符串 str1

:g/str1/s//str2/g   功能同上

从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g ,表示只对搜索

字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。

给出一个字符串,可以通过搜索该字符串到达指定行。如果希望进行正向搜索,将待搜索的字符串置于两个“

/” 之间;如果希望反向搜索,则将字符串放在两个“?” 之间。例如:

:/str/                      正向搜索,将光标移到下一个包含字符串 str 的行

:?str?                      反向搜索,将光标移到上一个包含字符串 str 的行

:/str/w file                正向搜索,并将第一个包含字符串 str 的行写入 file 文件

:/str1/,/str2/w file        正向搜索,并将包含字符串 str1 的行至包含字符串 str2 的行写入 file 文件

 

 

 

 

1,简单替换表达式

替换命令可以在全文中用一个单词替换另一个单词:

:%s/four/4/g

“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可

   如果你有一个象 “thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\ newfile;

· 使用命令:sed -e “s/^V^M//” filename > outputfilename。需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。

· 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//。

· :%s/^M$//g

如果上述方法无用,则正确的解决办法是:

· tr -d "\r" < src >dest

· tr -d "\015" dest

· strings A>B

 

6. 其它

利用 :s 命令可以实现字符串的替换。具体的用法包括:

:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1

:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1

:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1

:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1

:g/str1/s//str2/g 功能同上

从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索

字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3