我有这样的文字:
w ky,
wyz,
wyy,
wj,
w w,
我希望将其更改为:
"w ky",
"wyz",
"wyy",
"wj",
"w w",
我现在使用:
qa0wi"$i"j
4@a
是的,它有效,但有更简单的方法吗?
答案 0 :(得分:0)
是更简单的方法。您可以使用norm
命令。我会推荐这个:
直观地选择所有行
类型
:norm I"<C-v><esc>$i"<cr>
当您实际键入此内容(在按Enter键之前)时,应在命令行中显示的文本为:
:'<,'>norm I"^[$i"
norm 命令告诉vim在某些行上模拟一组正常模式击键。在这种情况下,命令是:
:'<,'> " On every line in the visual selection:
norm " Do the following as if typed in normal mode:
I"<esc>$i" " Insert an '"', escape, then insert a '"' at the end (before the comma)
您也可以在不使用视觉选择的情况下通过键入<n>:norm ...
来执行此操作,该命令将应用当前的 n 行。 (当前行和下一行n-1行)
答案 1 :(得分:0)
进行“非常神奇的搜索\ v”我们可以搜索...
\v(\w ?\w+),
\v ........... starts very magic search mode
( ........... starts group one
\w ........... any word
? ........... optional space
+ ........... one or more
) ........... ends group one
在测试搜索后,我们可以传递给我们的命令或 通过在搜索模式上放置两个斜杠来使用最后一次搜索
%s/\v(\w ?\w+),/"\1",/g
%s//"\1",/g
第一组匹配的所有内容均可由\1
引用。
答案 2 :(得分:0)
在前面进行基本的多行编辑,然后使用,
对",
进行字符串替换。