2016-03-08 61 views
3

我知道這是一個vim-golfing,但我對其他意見/想法感興趣。有時我必須編輯一個文件並刪除當前行以外的所有行。我去解決方案涉及ex模式:t0|2,$dVim:刪除當前行中的所有行

這些多達8個按鍵! (我知道這個命令可以很容易地映射到鍵盤上的一些方便的組合。)其他建議,想法?

回答

4

首先你的方法不是8個按鍵,如果我們不計算保存(ZZ),他們是9個按鍵。因爲你必須按Enter

有一個辦法,用6個按鍵:

YggVGp 

除了打高爾夫球,我覺得我的方法比你的更簡單。也許是因爲我喜歡vim中的普通模式。 :-)

實踐中,如果您需要多次執行操作,您可能需要進行映射。

+0

甲33.33%的改善和正常模式。謝謝:) – user1924627

2

另一種解決方案:

:.w!|e<CR> 
+2

重要的是該文件被有效地改變,而OP的原始解決方案只是改變了緩衝區。這取決於用例,但需要注意。 –

+0

你的解決方案讓我微笑:)正如一個旁註:雖然有兩個假設。它假定(1)文件名和(2)保存的緩衝區 - (1)並非總是如此(至少在我的用例中,例如輸出shell命令),(2)未保存的緩衝區可能需要一個':。 W | E!! ' - 8次擊鍵(包括 - 我忘記計數))。對於保存的文件幾乎(+1按鍵)與Kent的正常模式解決方案一樣好。謝謝! – user1924627

+0

是的,我的答案中有很多假設。 – romainl