我使用了令人敬畏的https://github.com/tpope/vim-surround插件用圓括號括住單詞,例如我經常使用:viws<space><space>
用空格包圍單詞。在vim中刪除周圍的空白
我所缺少的是與此相反的,即刪除單詞周圍的空格。
對我來說,最常見的用途是函數參數,如 foo(bar)vs foo(bar),具體取決於代碼風格。
有沒有人知道一個很好的方法來做到這一點?
我使用了令人敬畏的https://github.com/tpope/vim-surround插件用圓括號括住單詞,例如我經常使用:viws<space><space>
用空格包圍單詞。在vim中刪除周圍的空白
我所缺少的是與此相反的,即刪除單詞周圍的空格。
對我來說,最常見的用途是函數參數,如 foo(bar)vs foo(bar),具體取決於代碼風格。
有沒有人知道一個很好的方法來做到這一點?
注意:此解決方案需要問題中引用的環繞聲插件。
爲了您的具體情況,你可以做到以下幾點:
cs()
這改變foo(bar)
到foo(bar)
,但是,它是不是你的問題的通用解決方案。
種優雅..怪異但優雅:) – 2012-02-28 11:56:04
這是應該做什麼?它對我沒有任何幫助 – puk 2012-02-28 12:14:41
如果您沒有OP中提到的環繞聲插件,那麼它不會做預期的事情。對於環繞聲,'csXY'表示「用周圍字符Y改變周圍字符X」,'('被定義爲「帶有填充空間的周圍圓括號」,而'''被定義爲「沒有填充的圓括號空間」。 – 2012-02-28 12:23:52
我經常高效地拖延搜索vim插件,當我可以爲此定義映射時。
nnoremap <leader>dd F<space>xf<space>x
EDIT更多信息
<leader>
用於用戶定義的映射公共密鑰(,
是一個很好的)
dd
組合使用(任何其他助記符一個就足夠了)
F<space>x
搜索倒着一空,然後將其刪除
f<space>x
正向搜索空間,然後將其刪除
哈哈......是啊...... :) – 2012-02-28 11:57:47
其實,對我來說完美的解決方案是由@puk提供的映射,但使用鑰匙@sarnold在第一個地方(如果它實現了這一點,可以期望從環繞插件期望的)。
這就是:
nnoremap ds<space> F<space>xf<space>x
是否'DS'工作? README提供了'ds''作爲一個機制來刪除一個例子中的分隔符。 –
sarnold
2012-02-28 10:53:01
它不幸。雖然好的觀察。 – 2012-02-28 11:05:11
我發現有趣的是,您發現'viws'命令是比所有替代方案更簡單的解決方案,包括使用箭頭鍵和退格鍵! –
puk
2012-02-28 11:36:51