在Vim中,如果我有代码如(在Ruby中):
anArray << [anElement]
Run Code Online (Sandbox Code Playgroud)
我的光标在第一[,我可以跳到]与%钥匙,我可以删除之间的所有内容[]对用d%什么,但如果我只是想删除[,并]留下两个之间的所有剩余内容.换句话说,最快捷的方式是什么:
anArray << anElement
Run Code Online (Sandbox Code Playgroud)
arc*_*age 56
使用Surround.vimVim插件:
http://www.vim.org/scripts/script.php?script_id=1697
...你可以消除周围的分隔符ds<delimeter>.
通过Vundler插件安装:
加:
Plugin 'tpope/vim-surround'
Run Code Online (Sandbox Code Playgroud)
到你的.vimrc文件并运行:PluginInstall
Jus*_*ith 53
ma%x`ax(在寄存器中标记位置a,转到匹配的paren,删除char,转到标记a,删除char).
编辑:
%x``x 做同样的事情(感谢alok的提示)
ib.*_*ib. 45
可以利用内置到Vim中的文本对象(请参阅参考资料:help
text-objects).所需的编辑可以表示为以下三个动作的序列.
剪切方括号内的文字.
di[
Run Code Online (Sandbox Code Playgroud)选择(空)方括号.
va[
Run Code Online (Sandbox Code Playgroud)将剪切文本粘贴在它们上面.
p
Run Code Online (Sandbox Code Playgroud)它总共给出了
di[va[p
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您想一次删除一行分隔符,其他答案可以很好地工作。
另一方面,如果您想从整个文件中删除函数及其分隔符,请使用:
:%s/function(\(.*\))/\1/g
Run Code Online (Sandbox Code Playgroud)
它将替换文件中的所有位置function(arguments)。arguments
如果您指向该行的第一个字符或使用%的标记有问题...
di[vhp
Run Code Online (Sandbox Code Playgroud)
同样有效...当光标位于任何位置时,它会删除匹配的[]括号.'''可以替换为'{'或'('.