我知道這是一個vim-golfing,但我對其他意見/想法感興趣。有時我必須編輯一個文件並刪除當前行以外的所有行。我去解決方案涉及ex模式:t0|2,$d
Vim:刪除當前行中的所有行
這些多達8個按鍵! (我知道這個命令可以很容易地映射到鍵盤上的一些方便的組合。)其他建議,想法?
我知道這是一個vim-golfing,但我對其他意見/想法感興趣。有時我必須編輯一個文件並刪除當前行以外的所有行。我去解決方案涉及ex模式:t0|2,$d
Vim:刪除當前行中的所有行
這些多達8個按鍵! (我知道這個命令可以很容易地映射到鍵盤上的一些方便的組合。)其他建議,想法?
首先你的方法不是8個按鍵,如果我們不計算保存(ZZ
),他們是9個按鍵。因爲你必須按Enter
。
有一個辦法,用6個按鍵:
YggVGp
除了打高爾夫球,我覺得我的方法比你的更簡單。也許是因爲我喜歡vim中的普通模式。 :-)
實踐中,如果您需要多次執行操作,您可能需要進行映射。
另一種解決方案:
:.w!|e<CR>
重要的是該文件被有效地改變,而OP的原始解決方案只是改變了緩衝區。這取決於用例,但需要注意。 –
你的解決方案讓我微笑:)正如一個旁註:雖然有兩個假設。它假定(1)文件名和(2)保存的緩衝區 - (1)並非總是如此(至少在我的用例中,例如輸出shell命令),(2)未保存的緩衝區可能需要一個':。 W | E!!
是的,我的答案中有很多假設。 – romainl
甲33.33%的改善和正常模式。謝謝:) – user1924627