gpt4 book ai didi

特定文件类型的 Vim 配置

转载 作者:行者123 更新时间:2023-12-05 08:19:22 25 4
gpt4 key购买 nike

我正在努力使用 .vimrc 来应用基于文件类型的特定配置。遵循 autocmd FileType 建议 here ,我试图应用基于文件类型的配置。这是我的 .vimrc 中的内容:

autocmd FileType tex call Tex_config()
function Tex_config()
let g:LatexBox_viewer = 'skim'
let g:LatexBox_latexmk_options = '-pvc'
let g:tex_flavor = "latex"
setlocal spell spelllang=en_ca
endfunction

我可以用 :debug Tex_config 调用函数 Tex_config():Vim 愉快地检查函数。所以,一切似乎都应该有效。

但是,当我发出 :set filetype=tex 时,奇怪的事情发生了:拼写检查关闭。当我发出 :set filetype=foo 时,拼写检查打开。与我期望从此配置片段中发生的情况正好相反!

如有任何帮助,我们将不胜感激。这是完整的 vimrc (功能在 44-50)。谢谢。

最佳答案

不要将 .vimrc 用于文件类型特定的东西,Lynch 为文件类型或情境 vimrc 设置描述了一个非常精确的机制。

例如:我的 .vim 中的一些东西

.vim/ftdetect:
haml.vim macports.vim puppet.vim
hiveminder.vim markdown.vim ruby.vim

.vim/ftplugin:
haml.vim portfile.vim sshconfig.vim
html_snip_helper.vim python.vim tmux.vim
javascript.vim python_match.vim zsh.vim
markdown.vim sass.vim
plist.vim scss.vim

也就是说,我的 sshconfig.vim 文件(我设置了“K”以在我的光标所在的标题处为我提供 sshconfig 的联机帮助页。真不错,这个技巧。)

" sshconfig ftplugin. 
" At this point, only want to set man as the keywordprg

if exists("b:did_ftplugin")
finish
endif
let b:did_ftplugin = 1

" Customizations for sshconfig files
" what I _want_ is to jump to the heading
set keywordprg=man\ ssh_config\ -P\ \'less\ -p\ <cword>\'

现在,在 .vim/ftdetect/macports.vim 中,我有代码来确定这个文件是否是一个 Portfile

" Portfile
au BufNewFile,BufRead Portfile set filetype=portfile
au FileType portfile compiler portfile

我应该将该编译器端口文件拉出并将其放入 ft​​plugins,因为您可以看到这个系统会变得多么疯狂,但这正是 ctags 和 git 的用途。

关于特定文件类型的 Vim 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5751928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com