Vim 指定 檔案名稱 使用特定的 Syntax

.bashrc 越寫越多,想要將 alias、function 等等拆開,但是遇到 Vim Syntax Highlight 預設不支援的問題,要怎麼解決呢?

  • 註:於檔案最後面加上 # vim: syntax=sh 沒有效用

Vim 指定 檔案名稱 使用特定的 Syntax

想要指定檔案名稱,給他特定的 filetype 或 syntax,可以在 .vimrc 寫下述:(FILENAME 改成指定的檔案名稱即可)

  • autocmd BufRead,BufNewFile FILENAME set filetype=sh " 只要指定 filetype
  • autocmd BufRead,BufNewFile FILENAME set syntax=sh " 只要指定 syntax
  • autocmd BufRead,BufNewFile FILENAME set filetype=sh syntax=sh " 全部都一起設定上去
  • autocmd BufRead,BufNewFile FILENAME* set filetype=sh syntax=sh " * 可以代表之後全部都支援
    • ex: autocmd BufRead,BufNewFile .bashrc set filetype=sh syntax=sh " 全部都一起設定上去
    • ex: autocmd BufRead,BufNewFile .bash* set filetype=sh syntax=sh " * 可以代表之後全部都支援

對 bashrc 剛開始拆分的想法,分成下述:

  • .bash_aliases # 這個 .bashrc 內建就有寫好下述可以使用
    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
  • .bash_function # 自己寫得 function
  • .bash_company # 某些公司特定需要的 function

依照上述的設定方式:

  1. vim .vimrc
    " .bash_alias, .bash_function, .bash_* 要 syntax highlight autocmd BufRead,BufNewFile .bash_* set filetype=sh syntax=sh
  2. 開啟測試看看即可

不過後來覺得這樣子切太細,function 不好找,而且多機器不方面 copy,最後乾脆 alias、function 等等,全部整合到 .bash_aliases

.bash_aliases 的好處是,只要 copy 到那台機器,.bashrc 預設就會載入進去,就可以通吃囉~

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料