回答
你可以做到這一點與下面的按鍵順序:
gg
qa
j
3dd
q
[email protected]
這是命令的意思是:
gg # jump to the beginning of the file
qa # start recording a macro in register "a"
j # move down 1 line
3dd # delete 3 lines (including the current one)
q # stop recording the macro
[email protected] # replay the macro from register "a"
如果你在你的系統sed
(你是在Linux,Mac OS X,或者在Windows中使用Git Bash),那麼可以使用它來代替:
:%!sed -ne 1~4p
此過濾器整個緩衝區的內容,將其發送到sed
在管,然後將sed
命令打印從管線1
你能解釋爲什麼我不能使用':g/^/+ 4d'嗎? –
不是:s模式'/^/'匹配文件中的每一行,然後我看到發生的是前4行被跳過,然後每一行都被刪除,並且我們得到一個錯誤'E16:Invalid range'。看起來,你放在那裏的任何數字只會跳過那麼多的起始行,然後刪除每一行第二行,我不能告訴你爲什麼... – janos
是的,希望任何人都能給出你和我的一個很好的答案觀察到的。 '前4條線被跳過,然後每2條線被刪除,並且我們得到錯誤E16:無效範圍。看起來你放在那裏的任何數字只會跳過那麼多的起始行,然後刪除每行第二行 –
從answer適應於另一similar question開始輸入的每4個線。
:g/^/+1 d3
(你不需要的空間,我只是說他們爲清楚起見)
/^/
任何行相匹配。:d
可以接受一個數字參數,該參數指定要刪除多少行,包括當前行。
因此,該命令轉換爲:對於在另一行之後的每一行,刪除包括當前行的3行。
另一種解釋是:對於每一行,刪除接下來的3行。
- 1. 「刪除」每一行中的€符號並保留其餘部分
- 2. MVC 4 - 刪除/首頁/從地址欄並保留其他
- 3. 谷歌地圖Javascript V3:刪除路線,但保持其他路線顯示
- 4. 刪除線,其他日期
- 5. 谷歌圖表,均線刪除我的其他線路
- 6. 只保留某一行並刪除C#中的其餘部分
- 7. 刪除其他人後保留圖像?
- 8. 在角4」刪除輔助路線
- 9. 沒有路線匹配[刪除]「/todo_lists.1」
- 10. 角2路線與其他路線
- 11. 如何刪除保留其他唯一行的重複行?
- 12. 刪除線只有一個逗號
- 13. 刪除8炭,保存4,取出4,保存4,代替1,並保持該行的其餘部分
- 14. 刪除另一個頁面的css,並保留其他頁面
- 15. 保留錨定標記並刪除其他超鏈接
- 16. 保留x個文件並刪除所有其他文件 - Powershell
- 17. 紗線「添加webpack」刪除其他包?
- 18. 刪除Mysql表中的重複行並只保留一行
- 19. 刪除和其他路線之間的區別
- 20. 刪除某些重複的行,同時保留其他
- 21. Ember ApplicationRoute與其他路線
- 22. 刪除空間並保留新行?
- 23. 只保留在括號內的特定部分,並刪除所有其他的人
- 24. 刪除重複的行,同時總結一列並保留其他列
- 25. Java線程不殺死其他線程,並不會從矢量項目刪除
- 26. 保留執行流水線
- 27. MySQL保留MAX和MIN行並刪除其餘的
- 28. 線程並行於其他進程java
- 29. 刪除路線不工作
- 30. Rails刪除某些路線
閱讀[這個答案](http://stackoverflow.com/a/1946770/1084945),然後修改你(下,'3dd','q'),然後運行宏。 – simont
這個問題比另一個更復雜。它不應該被標記爲重複。 ':g/^/+ 1d3'與':g/^/+ d'有很大的不同,並沒有很好的解釋。爲了使事情變得更加混亂和誤導,':g/^/+ d'回答錯誤地被標記爲最佳答案。 – janos