2017-05-25 194 views
1

我的文字是这样的:如何使用Vim做多行编辑

w ky, 
    wyz, 
    wyy, 
    wj, 
    w w, 

,我想把它改成这样:

"w ky", 
    "wyz", 
    "wyy", 
    "wj", 
    "w w", 

我这样做,但现在使用:

  1. 记录一个宏,在一行中插入双份配额,然后转到下一行qa0wi"$i"j
  2. t母鸡只是类型[email protected]

是的,它的工作原理,但有没有更容易的方法来做到这一点?

+0

第一个结果输入您的问题到谷歌时 https://stackoverflow.com/questions/11784408/vim-multiline-editing-like-in-sublimetext –

+0

@ J.Knight但是当每一道线条都是这个答案只是工作而不是'0w'相同长度 – roger

+0

,你可以使用'^'......不知道你很容易的意思..但是你也可以使用替换...'S/\ s [^,] * /“& “/' – Sundeep

回答

0

一个更简单的方法。您可以使用norm命令。我会推荐这:

  1. 直观地选择所有的行

  2. 类型的

    :norm I"<C-v><esc>$i"<cr> 
    

    当你真正键入此(前按下回车键),应在显示文本您命令行是:

    :'<,'>norm I"^[$i" 
    

规范命令告诉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-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被称为使用最后的搜索。

0

做在前面一个基本的多行编辑,然后做一个串上,",取代。