我正试图将vim和插件一起封装起来。我在使用奇点容器。最重要的插件是尤普莱姆。我封装插件的方法是安装vim并将所有插件克隆到/etc/vim/plugin
中,并在构建过程中编译youcompleteme。生成映像后,使用指向/etc/vim
的修改后的runtimepath (rtp)
启动vim
奇点运行vim_image.sif vim --cmd 'set rtp^=/etc/vim‘
但是,vim没有加载插件。我遇到了一些错误,比如:
处理/etc/vim/plugin/sonokai/autoload/airline/themes/sonokai.vim:行时检测到的错误 10: E117:未知函数: sonokai#get_configuration第11行: E121:未定义变量: s:configuration E116: sonokai#get_palette函数的无效参数(s:configuration.style,s:configuration.colors_override) ..。
我希望vim能够在/etc/vim/plugin
中加载任何插件,不会出现任何问题。我被困在这上面了。欢迎任何建议。
发布于 2022-05-27 17:44:18
尝试以下命令:
sudo docker run -it amine2029/vim-plug
我使用这个Dockerfile构建它:
FROM ubuntu:18.04
RUN apt-get update -yq \
&& apt-get install curl -yq \
&& apt-get install -yq vim git
RUN curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
ADD vimrc /root/.vimrc
RUN vim -E -s -u "$HOME/.vimrc" +PlugInstall +qall
这个'vimrc‘文件需要在构建目录中(在这里添加更多插件):
call plug#begin()
Plug 'tomlion/vim-solidity'
call plug#end()
然后建造:
sudo docker build -t vim-plug .
发布于 2022-05-27 06:20:03
安装vim并将所有插件克隆到
/etc/vim/plugin
这是行不通的,即使是在一台物理机器上。
Vim的运行时文件是以一种在所有级别上都是一致的特定方式排列的,因此将您的文件随机放置在任意位置不会对您有任何好处,因为没有任何东西会达到预期的位置。
在这个特定的例子中,plugin/sonokai/autoload/airline/themes/sonokai.vim
是一个自动加载的脚本,但是,因为你天真地把它放在plugin/
下,所以它是作为一个全局插件提供的,这只会带来麻烦。
Vim允许您为组织目的在plugin/
下创建目录层次结构,但这些子目录仅用于全局插件。文件类型插件、语法脚本、缩进脚本、自动加载脚本等与此无关,因此必须将它们移到适当的目录下:ftplugin/
、syntax/
等。
这种机制导致了这样一种情况,对于给定的第三方插件foo
,您会得到分散在以下地方的文件:
plugin/foo/foo.vim
syntax/foo/foo.vim
bar/bar.vim
indent/foo/foo.vim
bar/bar.vim
etc.
它在技术上是可行的,如果你没有太多的插件,它甚至可能是可用的,但它本质上是混乱的。
现在,处理插件的首选方法是通过新的:help package
特性。在不过分破坏文档的情况下,Vim的运行时中有一个名为pack
的新目录,您可以在该目录下放置整个第三方插件,每个插件都位于自己的目录中,这基本上就是您在plugin/
中尝试和失败的地方。因此,与上面的布局不同,您应该有:
" one directory for plugin `foo`
pack/<whatever>/start/foo/plugin/foo.vim
indent/foo.vim
syntax/foo.vim
" and one directory for plugin `bar`
pack/<whatever>/start/bar/indent/bar.vim
syntax/bar.vim
在正常用户的正常设置中,应该在pack
目录下创建该目录。在这种特殊情况下,正确的位置几乎肯定是$VIM/vimfiles/
。$VIM
的确切值取决于许多事情,因此您必须询问Vim它在哪里:
:echo $VIM
并相应地调整安装脚本。
不过,我不确定集装箱化Vim的好处。
发布于 2022-05-27 06:51:00
既然我不能发表评论,我就把这些留在这里。您可以看到其他人是如何在最流行的vim发行版SpaceVim中这样做的。
https://stackoverflow.com/questions/72397020
复制相似问题