2010-11-24 80 views
5

我在VS 2010中使用viemu。是否有可靠的命令來刪除C#源代碼中的整個方法?刪除整個方法的命令?

這件事情我已經嘗試:

  • 的移動指令}]]不夠聰明挑選出一個方法。雖然有時他們確實碰巧抓住了正確數量的文本。

  • 從剛纔的方法我可以做diB這將刪除整個方法的主體。這還不算太壞,但是我仍然要刪除簽名和外括號。

  • 如果我把光標移動到可視性修飾符(即publicprivate等),然後做d*,它會殺死整個方法,如果下一個方法具有相同的知名度。

任何vi/viemu專家都有辦法做到這一點?

+3

單擊方法左側的減號以摺疊方法,突出顯示整個摺疊方法行,然後按Delete鍵。 – 2010-11-24 18:27:48

+0

這並不壞,你應該讓這個答案。你也可以用`CTRL + M,M`摺疊方法,然後從那裏做`dd`。 – 2010-11-24 18:32:33

回答

2

在Vim中,這是我如何做到的。我不確定viemu是否足夠兼容,但是:

  1. 移動到方法聲明(輔助功能修飾符等)的開頭。
  2. 點擊v進入視覺模式。
  3. 將光標定位在啓動方法體的大括號上。
  4. 點擊將光標移動到匹配的大括號。
  5. 點擊d刪除所選內容。

這不是超級騙子自動或任何東西,但它的工作原理,是比較容易做到,一旦肌肉記憶踢。

+0

移動方法的第一行然後`^ vf {%d` – shellholic 2010-11-24 19:13:13

+0

不錯,這是更加緊湊和可重複。人們可以寫一個自定義命令來做到這一點。 – cdhowie 2010-11-24 19:27:32

1

dap(刪除一個段落)會爲不包含空的簡單方法工作線。對於包含空行的方法,您需要使用diBdap(刪除內部塊,然後刪除段落)。爲了更方便使用,您可以在您的rc文件中創建映射。例如::nmap <C-d> diBdap

2

我喜歡用zadd摺疊它並刪除該摺疊(這也將得到該聲明)。

如果您在方法級別/ if語句中想要刪除的另一種方法是da{dd,我發現它比某些其他建議更易於輸入。它說要刪除光標當前所在的{括號對,然後dd刪除剩餘的函數聲明。

如果您嵌套在方法的控制結構中,您可以在它之前放置一個數字以刪除多個級別。