当我从会话中恢复时,加载我的文件类型插件是不可能的。
例如,我有一个〜/ .vim / ftplugin / arduino.vim 的arduino文件类型插件,内容是这样的。
SyntasticToggleMode
call feedkeys("\<CR>")
nnoremap <leader>s :w<cr>:ArduinoVerify<cr>
nnoremap M :ArduinoUpload<cr>
我创建了一个名为test.ino的arduino文件来进行编码。 每件事看起来都很顺利。 filetype插件已正确加载。
然后我用以下命令关闭vim。
:mksession!
:wviminfo viminfo
:qa
现在有一个名为Session.vim的会话文件。 然后我再次打开vim,它会自动加载会话,因为我的 .vimrc 中有类似的内容。
filetype indent plugin on
if filereadable("Session.vim")
source Session.vim
endif
if filereadable("viminfo")
rviminfo viminfo
endif
现在出了问题,我的arduino文件类型插件中的键映射无法正常工作。
它还打印一些这样的错误消息。
Error detected while processing /home/lotp/.vim/ftplugin/arduino.vim:
line 1:
E492: Not an editor command: SyntasticToggleMode"sketch_dec06a.ino" "sketch_dec06a.ino" 12L, 150C
E492: Not an editor command: SyntasticToggleMode
确实SyntasticToggleMode
是属于名为syntastic的vim插件的有效vim命令。
有解决方案可以解决这个问题吗? 我的意思是同时使用session和filetype插件。
答案 0 :(得分:1)
部分答案:
如果使用插件管理器,则插件不会直接加载到.vimrc
中。它们的路径只是附加到'runtimepath'
,它们是在初始化过程的后期获得的。
在插件初始化结束后,您可以尝试将自己的自定义路径(即.vimrc
)添加到runtimepath
。 (即,对于Vundle,在此行之后:call vundle#end()
)然后在your_custom_path/plugin
中添加一个vim文件,您可以在其中放置代码以获取会话文件。
我没有查看我提供的所有信息,对于错误感到抱歉,但希望它能给你一些想法。
请参阅:h startup
,:h 'runtimepath'
答案 1 :(得分:1)