如何在Vim中为.bash_aliases启用语法突出显示?


19

我正在整理我的档案.bashrc。我将别名移到了.bash_aliases(由提供.bashrc,但我无法弄清楚如何对此文件启用语法突出显示。vim似乎无法弄清楚该文件所用的语言。它适用于.bashrc。有什么想法吗?

Answers:


12

转到vim并运行:

:echo $VIMRUNTIME

通常,该值将类似于:
/ 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")


编辑该行,并在其中添加文件名(.bash_aliases)。

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


完善!这解决了我的问题。
马修

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

11

答案是这样的:vimdoc-setf,但是如果您只是想让语法和语法突出显示起作用,您可以这样做:

  :setf bash

当我回答另一个VIM问题时,我刚刚意识到的另一种可能性是,您也可以将此部分添加到.vimrc文件中,并且每次编辑.bash_aliases文件时,它将自动启用语法高亮显示,而无需使用modeline或手动进行每次打开文件时,输入:setf bash

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile .bash_aliases set filetype=bash
  augroup END
endif

第三,正如下面注释中的Mugen Kenichi所指出的,您还可以向.bash_alias文件中添加一个modeline,如下所示

# vim: set filetype=bash: 


@Mugen Kenichi-哦,那里不错!我从不使用modeline,但是我以前在文件中看到过它。
法郎

3
谢谢大家,这确实对我有很大帮助。我要做的一件事是,我必须将文件类型设置为sh而不是bash,但是我可能应该只是找到一个好的bash vim文件,因为那样也可以解决我的问题:p
icco 2010年

我来自cygwin的VIM 7.3也不了解“ filetype = bash”。如果通读filetype.vim,则“ sh”用作所有其他bash模式的文件类型。
Bogdan Calmac

尽管事实上我认为.vimrc编辑更可靠,但VIM模式线太棒了!谢谢。
4wk_

1

将以下行添加到〜/ .vimrc(如果不存在,则创建它)。

au BufNewFile,BufRead .bash_aliases call SetFileTypeSH("bash")

0

跟进@Pharaun对vim 8和多个别名文件的回答。为了使突出显示正确,我必须做两个设置。首先在新的.bash_aliases文件中:

# vim: set filetype=bash

以及我的.vimrc中的检查

if has("autocmd")
  augroup bashalias
    autocmd BufRead,BufNewFile *_aliases set filetype=sh
  augroup END
endif

请注意,文件类型为sh,多个文件名使用*通配符。

不知道为什么需要这两个设置。我尝试仅使用一种设置,但需要两个组合才能使突出显示正确。


我使用的是vim 8,但不需要modeline(#vim ...)。只要在我的vimrc中将文件类型设置为sh就可以了。某种程度上,文件类型不应该bash只是sh
敬敬石
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.