在Vim中删除一对括号,括号或大括号
在Vim中,如果我有代码(在Ruby中):
anArray << [anElement]
和我的光标是第一个[
,我可以跳到]
%
键,我可以删除[]
与d%
之间的所有内容,但如果我只是想删除[
和]
离开所有剩下的内容在两者之间。 换句话说,最快捷的方法是:
anArray << anElement
使用Vim的Surround.vim
插件:
http://www.vim.org/scripts/script.php?script_id=1697
…你可以用ds<delimeter>
来消除周围的分隔ds<delimeter>
。
通过Vundler插件安装:
加:
Plugin 'tpope/vim-surround'
到您的.vimrc文件并运行:PluginInstall
ma%x`ax
(在寄存器a
标记位置,去匹配paren,删除char,去标记a
,删除char)。
编辑:
%x``x
做同样的事情(感谢小提示)
可以利用Vim内置的文本对象(请参阅:help text-objects
)。 所需的编辑可以被描述为以下三个动作的序列。
-
剪下方括号内的文字。
di[
-
select(空)方括号。
va[
-
将剪切文本粘贴在它们上面。
p
总的来说
di[va[p
如果您对标记指向行的第一个字符或使用%…
di[vhp
也可以工作…当光标在里面的任何地方时,删除匹配的[]括号。 '['可以replace为'{'或'(')。
其他答案工作正常,如果你想一次删除一行分隔符。
另一方面,如果你想删除一个函数,并从整个文件中使用分隔符:
:%s/function(\(.*\))/\1/g
它用function(arguments)
replace文件中的所有arguments
。