Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新配置vimrc时,vim文件类型设置丢失_Vim - Fatal编程技术网

重新配置vimrc时,vim文件类型设置丢失

重新配置vimrc时,vim文件类型设置丢失,vim,Vim,按照说明,我有一个ftdetect文件~/.vim/ftdetect/cheat.vim,其中有一行: au BufNewFile,BufRead*.cheat/*设置文件类型=cheat 这将在~/.vim/ftplugin/cheat.vim处加载一个简单的配置文件: 它可以正常加载,但当I source ~/.vimrc时,cheat.vim的设置会丢失。最好的长期解决方案是避免使用本地选项和类似选项直接执行vimrc覆盖文件类型设置,但最简单的修复方法通常是重新编辑文件。类型 :edit

按照说明,我有一个ftdetect文件~/.vim/ftdetect/cheat.vim,其中有一行:

au BufNewFile,BufRead*.cheat/*设置文件类型=cheat

这将在~/.vim/ftplugin/cheat.vim处加载一个简单的配置文件:


它可以正常加载,但当I source ~/.vimrc时,cheat.vim的设置会丢失。

最好的长期解决方案是避免使用本地选项和类似选项直接执行vimrc覆盖文件类型设置,但最简单的修复方法通常是重新编辑文件。类型

:edit
然后按回车键

在交互使用中,这可以缩短为:e,并且可以轻松创建映射:

nnoremap <silent> <leader>e :edit<CR>

我建议阅读有关vim的启动、初始化文件、源命令、编辑命令的帮助页面,以及将本地内容调优到单个缓冲区的各种方法,例如setlocal、map、autocmd模式

我应该补充一点,我使用的是neovim,它使用的是vim配置。我一时兴起,将ftplugin/cheat.vim中的行放入ftdetect/cheat.vim中,它工作得更好,但仍然没有突出显示。你为什么要采购vimrc?另外,您是说您在作弊文件中的设置丢失,还是编辑ftplugin cheat.vim时的设置丢失?如果我正在编辑作弊文件,然后重新加载.vimrc文件,则设置丢失。不过,我有进展了。我在ftdetect文件中添加了一行set filetype=cheat,这很有帮助。不过,我仍在丢失statusline+=%todo设置。当我重新加载.vimrc时,状态栏的颜色会改变。所以我仍然有一些错误的配置。而且,我注意到作弊文件中的设置正在渗透到其他配置文件中。真痛苦。事实上,我知道现在发生了什么。文件类型仅在BufNewFile或BurRead期间检测到。调用vim不会触发这两个事件。这就是设置被忽略的原因。而不是被忽略。覆盖。除非您希望为vimrc提供资源,以获取对文件类型插件所做的更改,这在您的问题中并不清楚,否则我将尝试使用:nnoremap sv:so$MYVIMRC:execute setlocal filetype=vim修复它,但没有运气。哎呀,缺少冒号。但是越来越近了。为什么您的全局源代码映射会设置没有任何意义的文件类型?如果我在C文件中这样做,它会突然获得vim文件类型设置。这也不是工作原理检查帮助
nnoremap <silent> <leader>e :edit<CR>