VIM 无法检测 .ssh/config 的语法

VIM 无法检测 .ssh/config 的语法
vi ~/.ssh/config
  :set syn?
  >syntax=conf

当我做:

set syn=sshconfig

然后语法高亮就如它应该的那样了。

为何无法自动识别文件类型?如何设置自动识别?

答案1

假设您所做的是在系统上其他位置创建一个符号链接“~/.ssh”到名为“ssh”的文件夹,例如~/git/ssh,您有 2 个选择:

解决方案 A

在 '~/.vim/ftdetect/ssh.vim' 里面输入以下行:

au BufNewFile,BufRead */ssh/config  setf sshconfig

解决方案 B

确保符号链接解析到的文件夹名为“.ssh”

罪魁祸首文件⇒/usr/share/vim/vim73/filetype.vim:

au BufNewFile,BufRead ssh_config,*/.ssh/config  setf sshconfig

答案2

如果您希望 ssh 配置语法对所有文件~/.ssh/config.d/(或您想要的任何其他目录)进行着色,那么请使用@Shane Mulligan 的解决方案 A 或 B,但改为输入此行:

au BufNewFile,BufRead ssh_config,*/.ssh/config.d/* setf sshconfig

答案3

将此行添加到您的~/.vimrc

filetype plugin indent on

应该足以让 Vim 识别文件类型并应用正确的语法。

相关内容