2012-04-24 66 views

回答

19

使用蒂姆教皇的vim-surround,你可以使用:ysw'附上一个字与“`”,ysw(包围与“(”字。如果你想围绕一个实际的标签的话,如HTML标签<code>。 ,您可以使用yswt,然后在提示中键入您的标签,如果您想要更改现有的环绕声元素,请使用csw,输入您要替换的环绕声元素,然后按<CR> (enter),然后键入新的环绕元素。

请注意,对于上述命令的工作,您必须将光标放在要包围的单词的开头。

从它的官方网页:

cs"'(这是C,S,双引号,单引号)内

将其更改为

“ ”世界,你好!“你好世界!'

现在按cs'<q>将其更改为

Hello world!

为了走了一圈,按cat"得到

“世界,你好!”

要完全删除分隔符,按ds"

Hello world!

现在随着光标移动到“你好”,按ysiw]iw是一个文本对象)。

[你好]世界!

让我们大括号,并添加一些空间(用“}”而不是“{”为无空格):cs]{

{}你好世界!

现在包裹在括号中的整条生产线与yssbyes)

({}你好世界!)

恢复到原来的文字:ds{ds)

世界,你好!

强调你好:ysiw<em>

你好世界!

最后,让我们尝试视觉模式。按下大写字母V(对于linewise可视模式) ,然后按S<p class="important">

你好世界!

有关更详细的使用信息,安装vim-surround,然后用:help surround调用文档。

+0

作为一个侧面说明,非资本V会让你选择任意数量的字符(像1.10的数字有用其中“iw”将选择1或10)。 – htatche 2016-12-14 00:19:30

4

<c-r>是这些非常方便,让你插入一个寄存器,剪贴板,字的内容光标下(<c-r><c-a>),等等。例如:

nmap <space>' ciw'<c-r>"'<esc> 
vmap <space>' c'<c-r>"'<esc> 
nmap <space>(ciw(<c-r>")<esc> 
vmap <space>(c(<c-r>")<esc> 

哪款地图space+'包住当前单词或视觉选择用单引号或space+(将当前单词或视觉选择用双引号括起来。

映射的内容是指“更改内部字|选择文本,插入引号,插入字符,插入引号,退出插入模式”。

2

我用这个片段给宏记录到字母M的第一次: qmcw” <CR>“'<ESC> q 然后用@m

解释重做,在第一个10个打击是必要的:

  • QM开始录制宏在字母m
  • CW变化只有一个词,把你带入插入模式
  • “写的第一次报价
  • <CR>“粘贴,我们在体育场2擦除,同时保持到 插入模式
  • 字”是周围的其他报价
  • <ESC>回到编辑字
  • q结束宏。

与@m回忆起来:现在我们只用了两个好球包围......