回答
你需要考慮你的插件的時間。在Vim啓動過程中,當你的插件腳本來源,沒有緩衝區尚未加載,所以&filetype
是空的。因此,像這樣
let s:formatprgvarname = "g:formatprg_".&filetype
不不工作! (對於文件類型插件(在~/.vim/ftplugin/
),這是不同的;那些只在已檢測文件類型,來源,但據我瞭解,你想要一個通用的插件,認爲目前的文件類型。)
相反,請刪除腳本本地變量s:formatprgvarname
並解決&filetype
在動作點;即當您的自動格式功能被觸發時(通過映射或自定義命令)。如果你沒有這樣的觸發器,你可以勾選FileType
事件並設置一個(最好是緩衝區本地)變量,然後:
autocmd FileType * let b:formatprgvarname = "g:formatprg_".&filetype
當切換到具有不同文件類型的緩衝區時,是否也觸發了FileType事件? – 2013-03-01 12:32:58
不,只有在最初檢測到它時。 – 2013-03-01 12:45:43
在功能:
let current_filetype = &filetype
在命令行:
:echo &filetype
&filetype
是空的時,有沒有文件類型(明顯)。如果你在沒有緩衝區的情況下嘗試使用它,你什麼也得不到。
編輯
&filetype
當你需要知道,當你正在編輯一個緩衝區在運行時執行的功能,當前文件類型是唯一有用的。
&filetype
當緩衝器已被確定爲某些文件類型的時,才設置。當它被執行時,一個腳本(vimrc,ftplugin,不管)將不會經過它編輯時的行爲:沒有文件類型檢查,沒有&filetype
。
一個例子是一個函數,它根據文件類型在不同的外部應用程序中顯示當前文件。在任何其他環境中使用&filetype
都沒有意義,因爲它將爲空。
- 1. 在vim插件腳本中,如何獲取文件的路徑?
- 2. vim:插件的文件類型
- 3. 只爲C++頭文件設置vim文件類型腳本
- 4. 如何從插件中獲取vim插件的目錄?
- 5. 如何製作一個vim文件類型插件
- 6. 如何在插件動作類中獲取當前文件名
- 7. 獲取VIM Tagbar在打開某些文件類型
- 8. 從VIM插件中檢測文件類型?
- 9. 如何獲取文件類型名稱?
- 10. vim - 如何獲取摺疊文件
- 11. 在Mac OS中獲取文件類型
- 12. 在.NET中獲取文件類型
- 13. 如何在.js文件中指定腳本類型?
- 14. 從任何類型的文件中獲取文本
- 15. 如何從java腳本中的phonegap插件獲取值?
- 16. Bash腳本在給定文件夾中查找文件類型
- 17. 用於居中文本的Vim插件
- 18. 如何在Google應用程序腳本中獲取文件ID
- 19. 如何在shell腳本中獲取文件的擴展名
- 20. 如何獲取在zsh中執行腳本的父文件夾?
- 21. 如何在單獨的腳本文件中獲取@ Url.Action url?
- 22. 如何在bash腳本中獲取文件的第一行?
- 23. 如何在shell腳本中獲取文件大小?
- 24. 如何在V8中獲取腳本的原始文件名
- 25. sbt插件如何獲取插件中文件的路徑?
- 26. 如何在Vim中爲某些文件類型啓用換行?
- 27. vim中相同文件類型中的不同文本寬度
- 28. 禁用某些文件類型的Vim插件
- 29. 在Google Apps腳本中獲取腳本的文件夾ID
- 30. 如何使用vim腳本將文本附加到文件?
向我們展示你在哪裏使用它。在'.vimrc'中,沒有緩衝區被加載,所以它是空的。 – 2013-03-01 10:54:18
我需要'.vim/bundles/vim-autoformat/plugin/autoformat.vim'。 – 2013-03-01 11:37:50
當採購(與'.vimrc'相同,它爲時過早),或者在一個函數/映射/命令?! – 2013-03-01 11:57:28