用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]{
{ 你好,世界!
–
现在将整行用
yssb
或yss)
括在括号中yss)
。({ 你好,世界!)
–
还原为原始文本:
ds{ds)
你好,世界!
–
强调你好:
ysiw<em>
你好世界!
–
最后,让我们尝试视觉模式。 按下大写字母
V
(对于linewise可视模式),然后按S<p class="important">
。<p class="important"> <em>Hello</em> world! </p>
这个插件是非常强大的HTML和XML编辑,目前似乎填补Vim土地利基。 (与HTML / XML插入相反,许多插件都可用)。 同时添加,更改和删除标签对是一件轻而易举的事情。
的.
命令将与ds
, cs
和yss
一起工作,如果您安装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
你可以尝试优化按键,但现在这个为我服务。