回答
:execute "args ".join(map(getline(1, line('$')), 'fnameescape(v:val)'))<CR>
說明:getline(1, line('$'))
將返回當前緩衝區行的列表(從第一個(1
)到最後(line('$')
)線,map(getline(1, line('$')), 'fnameescape(v:val)')
會逃跑的情況下,所有文件名包含空格或其他特殊字符, join(...)
會,那麼它會傳遞給args
命令通過execute
通過將每兩個列表項之間的空間加入結果列表。
很好的迴應。事實上,我試圖學習一些「vim腳本」,這個答案給了我很多有趣的概念。非常感謝! – kaptux 2010-10-14 21:08:54
總之,你可以使用「getline(1,'$')」而不是「getline(1,line('$'))」(至少在gvim 7.3中) – kaptux 2010-10-14 21:21:43
@kaptux>總之你可以使用「getline 1,'$')「而不是」getline(1,line('$'))「(至少在gvim 7.3中)///我知道這個,但我經常忘記它,因爲接受行號的其他函數不接受行表達式:例如,嘗試任何'syn *'函數。在所有情況下使用'line()'是安全的。 – ZyX 2010-10-14 21:40:34
嘗試這一系列命令:ggVGJ"ayy:args
然後按下Ctrl-R,然後
Explanantion:ggVGJ
將加入所有的行成一條線。 "ayy
會將新的單行插入到註冊表中。 :args (filenames)
將設置參數,Ctrl-r, a
將把寄存器a的內容放入您當前正在輸入的命令中。
如果您不想搞亂當前的緩衝區(您正在編輯的文件),那麼首先將所有行放入空白臨時緩衝區。
很棒的回覆。我不知道Ctrl-r commad將一個寄存器的內容放入命令行,但對於具有空格的路徑,其他響應完美地運行。謝謝。 – kaptux 2010-10-14 21:04:57
- 1. 如何爲當前緩衝區加載文件?
- 2. 如何將vb文本框設置爲「緩衝區」的內容?
- 3. 將隱藏緩衝區設置爲'nobuflisted'
- 4. 如何查看文件緩衝區的當前狀態?
- 5. 設置當前時間的緩衝源
- 6. 如何恢復emacs緩衝區列表中的緩衝區?
- 7. 如何爲特定緩衝區設置緩衝區本地面屬性?
- 8. 如何強制ECB將GUD緩衝區視爲comilation緩衝區?
- 9. 如何將BGRA緩衝區轉換爲RGBA緩衝區格式?
- 10. 如何設置實時WebSocket緩衝區?
- 11. 怎麼知道當前緩衝區已經設置標誌
- 12. 如何刪除當前緩衝區並重新打開當前窗口中的下一個緩衝區?
- 13. EMACS緩衝區等於文件時如何重置緩衝區修改標誌
- 14. 如何將文件轉換爲node.js中的緩衝區?
- 15. 如何「重置」緩衝區?
- 16. 將文件加載/流式傳輸到緩衝區/緩衝區
- 17. 當前緩衝區的顯示號碼
- 18. 作爲字符串(!)將當前緩衝區配置爲外部命令
- 19. 重命名當前緩衝區和Emacs中的相關文件
- 20. Vim中當前緩衝區的文件名/路徑
- 21. 如何在輸出到文件時設置輸出緩衝區寬度/列?
- 22. 將字節[]緩衝區重置爲零?
- 23. 將單個常量緩衝區設置爲多個位置
- 24. 在緩衝區列表視圖中增加「緩衝區」列寬
- 25. VIM:在當前緩衝區中的文件夾打開文件,遠程文件
- 26. 區分當前緩衝區的最佳方式是位置列表還是quickfix列表?
- 27. 我如何轉換的char *緩衝區爲unsigned char緩衝區
- 28. Emacsclient獲取當前緩衝區?
- 29. PHP - 發送當前輸出緩衝區
- 30. 讀取當前幀緩衝區
你需要爲這個腳本,或者是一個映射OK,或者只是一個手動指令? – 2010-10-14 16:11:20
最快的方法是:g/\ v(。*)/ arga \ 1或者somet hing那樣 – kaptux 2010-10-14 16:28:17
我覺得這是你要找的命令'g/^/exe「arga」.getline('。')' – 2010-12-16 00:01:19