用Vim括号括起来

有没有办法将一些文本括在括号(或花括号)在vim?

换句话说,你将如何做到这一点?

初始string:

It is sunny outside. 

最终string:

 It is (sunny) outside. 

在一个有趣的笔记,我只是打:w提交这个问题。

快乐的vim-ing,SOCommunity!

Surround.vim应该做的伎俩。 如果你想用'。'重复这个,请看这里 。

总之,我一直在使用:

 bcw()<Esc>P 

也就是说,转到单词的开头,剪切单词并进入插入模式,input括号,然后退出插入模式并粘贴单词。

请记住,这将覆盖你的registry。

当然,你可以用你需要的任何移动和selecttypes代替bcw

 5cc{<Enter>}<Esc>P 

这里是使用surround.vim的例子。 在vim正常模式下,将光标放在所需的单词上(在这种情况下是晴天),然后键入:

 ysiw 

然后键入)

所以:

初始string:

 It is sunny outside. 

最终string:

 It is (sunny) outside. 

额外的空间:使用开放paren或括号,像ysiw(围绕parens和paren之间的空格,开始+结束的单词)

在可视模式下更容易通过按v进入可视模式。 现在如果你inputS(这个词将会被空格所包围,但是如果你使用了closures的话)而不是S)它将不会被空格所包围。

这适用于所有支架对周围, <> [] {} () ,而不仅仅是()S<的行为是这样的,它期望一个标签shell,所以只有S>能够围绕为<>

更多:

键入ysiw后面跟着做同样的ysiw

不妨在这里添加更多的例子:

  • 键入cs(' to [c] from(to)

  • cs'(从周围环境变成()

  • ds(.完全地)

更:

为什么不引用Tpope页面的其余部分来保存我们点击链接?

//开始引用:

用例子来解释最简单。

cs"'里面

“你好,世界!” 把它改成

'你好,世界!'

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

你好,世界!

要走完整的圈子,按cst"得到

“你好,世界!”

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

你好,世界!

现在光标在“Hello”上,按ysiw] (iw是一个文本对象)。

[你好,世界! 让我们做大括号并添加一些空间(使用}而不是{没有空间]: cs]{

{ 你好,世界!

现在将整行用yssbyss)括在括号中yss)

({ 你好,世界!)

还原为原始文本: ds{ds)

你好,世界!

强调你好: ysiw<em>

你好世界!

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

 <p class="important"> <em>Hello</em> world! </p> 

这个插件是非常强大的HTML和XML编辑,目前似乎填补Vim土地利基。 (与HTML / XML插入相反,许多插件都可用)。 同时添加,更改和删除标签对是一件轻而易举的事情。

. 命令将与dscsyss一起工作,如果您安装repeat.vim 。

你可以为那个sorting定义一个简单的映射。 这应该做到这一点。 在正常模式下inputz括住圆括号。

 :nnoremap <leader>z viw<esc>a)<esc>hbi(<esc>lel 

Surround.vim

为什么不使用:s// ( search和replace )?

例如:

 :s/sunny/\(sunny\)/ 

你可能有其他的想法,但是我不能从你的问题中知道它是什么。

对于这样的事情来说,使用范围和组可能比使用外部插件更好:

 :%s~\v(\w{5}) ~(\1) ~g 

上面search的是5个字母的单词,后跟一个空格,用()对匹配进行分组,并用分组匹配周围的圆括号replace它。

我更喜欢不使用任何插件,并希望将所有内容都限制在我的点文件中,以方便携带。 我能想到的最简单的方法就是简单地logging并重放它。 如果你打算在不同的会话中更频繁地使用它,你也可以把键映射到.vimrc中,但是我不需要(而且我真的很难判断哪个按键映射到哪个按键)。

假设你对vim有一个新手级别的理解,假设我有一个(为简单起见)我想用方括号括起来的行。 例如

hello world

进入正常模式。 q1开始录制。 现在执行以下操作

ESC ^i[ ESC $a] ESC

这将使当前行加上括号。 现在您可以select任何一行,然后按@1重复播放。

例如,如果您希望将当前单词设置为paranthesised,则只需logging并播放以下配方:

ESC bi[ ESC ea] ESC

你可以尝试优化按键,但现在这个为我服务。