如何在 vim 中为 .bash_aliases 启用语法高亮?

Mat*_*hew 19 linux bash vim syntax-highlighting

我正在努力重组我的.bashrc. 我将我的别名移动到.bash_aliases(来自.bashrc,但我无法弄清楚如何为此文件启用语法突出显示。vim似乎无法确定文件使用的语言。它适用于.bashrc。有什么想法吗?

小智 13

转到 vim 并运行:

:echo $VIMRUNTIME
Run Code Online (Sandbox Code Playgroud)

通常该值类似于:
/usr/share/vim/vim72
然后编辑(使用 root)文件/usr/share/vim/vim72/filetype.vim
搜索 bashrc。
你会发现一行看起来像这样:

au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash")
Run Code Online (Sandbox Code Playgroud)


编辑该行并将您的文件名 (.bash_aliases) 添加到其中。

就是这样,现在它应该可以工作了。

  • 您不应该编辑 vim 发行版(/usr/share/vim 中的文件)。当您更新 vim 时,您的更改可能会被覆盖。相反,您应该创建自己的脚本来执行相同的操作(或者将该行添加到您的 vimrc 中即可)。 (5认同)

Pha*_*aun 11

答案是这样的:vimdoc - setf但要扔给你一块骨头,如果你只是想让语法和语法突出显示工作,你可以这样做:

  :setf bash
Run Code Online (Sandbox Code Playgroud)

我刚刚在回答另一个 VIM 问题时意识到的另一个可能性是,您还可以将此部分添加到.vimrc文件中,它会在每次编辑时自动启用.bash_aliases文件的语法突出显示,而无需模式行或手动每次打开文件时都输入:setf bash

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile .bash_aliases set filetype=bash
  augroup END
endif
Run Code Online (Sandbox Code Playgroud)

第三,正如下面评论中的 Mugen Kenichi 指出的那样,您还可以将模式行添加到.bash_alias文件中:

# vim: set filetype=bash: 
Run Code Online (Sandbox Code Playgroud)

  • 这真的帮了我很多,谢谢大家。我必须做的一件事是,我必须将文件类型设置为 sh 而不是 bash,但我可能应该找到一个好的 bash vim 文件,因为这也可以解决我的问题:p (3认同)