Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vi/vim中搜索字符串并添加行_Vim_Vi - Fatal编程技术网

在vi/vim中搜索字符串并添加行

在vi/vim中搜索字符串并添加行,vim,vi,Vim,Vi,我试图编辑一个配置文件,并希望在匹配特定字符串时添加一行特定的代码(在换行符上)…我搜索的所有内容都是搜索和替换,我正在搜索和附加…在vim\r中是新行。所以你可以这样做 %s/search string/&\rnew code/ 这就是我要做的: :g/specific string/s/.*/&specific line of code g命令获取包含特定字符串的所有行,然后将s替换命令应用于这些行。s命令将整行替换为其内容加上特定代码行 HTH我个人认为,对于这个问题,

我试图编辑一个配置文件,并希望在匹配特定字符串时添加一行特定的代码(在换行符上)…我搜索的所有内容都是搜索和替换,我正在搜索和附加…

vim
\r
中是新行。所以你可以这样做

%s/search string/&\rnew code/

这就是我要做的:

:g/specific string/s/.*/&specific line of code
g
命令获取包含
特定字符串的所有行
,然后将
s
替换命令应用于这些行。
s
命令将整行替换为其内容加上
特定代码行

HTH

我个人认为,对于这个问题,使用“:g”命令可能比使用“:s”命令要好

:g/key/norm owhat ever you want
将生成文本:

foo
bar
key
foo2
bar2
key2
blah
致:


如果要在包含图案的行上方添加新行,只需将小的“o”更改为“o”。

进行说明。使用替换符号时,是否将其附加?或者它是否包含您要替换的行,以便可以用“%s/search string/\rnewcode&/”作为前缀?@Jaypal
%s/^.*search string.*$/&\rnew code/
可能更好?你的可能会打破原来的界线。例如,如果行是“search string=xyz”或“foosearch string=barsearch string”
\r
则是替换字符串中的新行。在搜索模式中,
\n
是新行。@如果设置了
自动缩进
选项,则volatirestorm
&
符号插入的搜索命中率优于
norm o
放置你想要的任何东西
norm o
norm o
可能的优点是,它们将使用与您搜索的行相同的缩进。
foo
bar
key
what ever you want
foo2
bar2
key2
what ever you want
blah