在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 )。 所需的编辑可以被描述为以下三个动作的序列。

  1. 剪下方括号内的文字。

     di[ 
  2. select(空)方括号。

     va[ 
  3. 将剪切文本粘贴在它们上面。

     p 

总的来说

 di[va[p 

如果您对标记指向行的第一个字符或使用%…

 di[vhp 

也可以工作…当光标在里面的任何地方时,删除匹配的[]括号。 '['可以replace为'{'或'(')。

其他答案工作正常,如果你想一次删除一行分隔符。

另一方面,如果你想删除一个函数,并从整个文件中使用分隔符:

 :%s/function(\(.*\))/\1/g 

它用function(arguments)replace文件中的所有arguments