在Vim中取出一對括號,括號,或括號,如果我有代碼,例如(在紅寶石):Vim中
anArray << [anElement]
和我的光標位於所述第一[
,我可以跳到]
與%
鍵,我可以刪除[]
對之間有什麼d%
所有內容,但如果我只是想刪除兩者之間的[
和]
離開所有剩餘的內容。換句話說,什麼是最快捷的方式去:
anArray << anElement
在Vim中取出一對括號,括號,或括號,如果我有代碼,例如(在紅寶石):Vim中
anArray << [anElement]
和我的光標位於所述第一[
,我可以跳到]
與%
鍵,我可以刪除[]
對之間有什麼d%
所有內容,但如果我只是想刪除兩者之間的[
和]
離開所有剩餘的內容。換句話說,什麼是最快捷的方式去:
anArray << anElement
使用Surround.vim
插件的Vim:
http://www.vim.org/scripts/script.php?script_id=1697
...你可以消除周圍的分隔符與ds<delimeter>
。
通過安裝插件Vundler:
地址:
Plugin 'tpope/vim-surround'
到你的.vimrc文件並運行:PluginInstall
也許這只是我,但我無法對插件做任何事情。這太複雜和違反直覺。 – I159 2017-07-21 17:44:53
ma%x`ax
(寄存器a
馬克位置,去匹配paren,刪除char,去標記a
,刪除char)。
編輯:
%x``x
做同樣的事情(感謝尖端阿洛克)
正如我在我的主要評論中所說的,你不需要手動標記:你可以通過兩個反引號去到最後一個位置。所以%x''x更快。 – 2010-01-18 06:22:22
這與我一直在做的事情類似,但對於編輯來說,這是一個非常有效的按鍵。 – Josh 2010-01-19 02:36:35
我更喜歡'%% x''x',因爲你可以在任何地方的任何地方。 – 2012-01-17 11:17:02
,如果你想在同一時間刪除分隔符一行其他的答案做工精細。
如果在另一方面,你要刪除的功能,它是從整個文件使用的分隔符:
:%s/function(\(.*\))/\1/g
該文件與arguments
取代function(arguments)
無處不在。
如果你有一個指向該行或使用%的第一個字符標記問題...
di[vhp
作品,以及......它刪除匹配括號[],當光標在任何地方。 '['可以替換爲'{'或'(')
可以利用Vim內置的文本對象(請參閱:help text-objects
)。所需的編輯可以表示爲以下序列 三個動作。
切方括號內的文字。
di[
選擇(空)方括號。
va[
將剪切文本粘貼在它們上面。
p
總之它給
di[va[p
感謝您展示非插件的方式來做到這一點!非常適合我們在嵌入式系統上工作的人。 – ijustlovemath 2017-02-27 20:42:40
我會做'XF]',但它不會做的括號匹配。或者,首先通過'%',然後'x'進行手動paren-matching,接着是兩個反引號,然後是'x'。 – 2010-01-18 06:17:00
優秀的問題。我是一個多產的vim用戶,這種情況不時出現,而且我沒有很好的內置解決方案。 – Peter 2010-01-18 06:17:49
Alok的第二個選項是一種享受。 – user2023370 2016-08-25 10:54:15