我两天前安装了debian strech。我安装了vim并配置了一些插件。打开任何文件时,我总是遇到以下错误:

vim app.py
Error detected while processing /home/sathish/.vim/plugged/sbt-vim/plugin/sbt.vim:
line   20:
E319: Sorry, the command is not available in this version: pyfile /home/sathish/.vim/plugged/sbt-vim/plugin/../python/sbt-vim.py
Press ENTER or type command to continue


vim版本输出为

vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 23 2017 12:10:29)
Included patches: 1-197, 322, 377-378, 550
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by pkg-vim-maintainers@lists.alioth.debian.org
Huge version with GTK2 GUI.  Features included (+) or not (-):
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     +tcl
+balloon_eval    +folding         +mouse_xterm     +termguicolors
+browse          -footer          +multi_byte      +terminfo
++builtin_terms  +fork()          +multi_lang      +termresponse
+byte_offset     +gettext         -mzscheme        +textobjects
+channel         -hangul_input    +netbeans_intg   +timers
+cindent         +iconv           +num64           +title
+clientserver    +insert_expand   +packages        +toolbar
+clipboard       +job             +path_extra      +user_commands
+cmdline_compl   +jumplist        +perl            +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       -python          +vreplace
+cscope          +lispindent      +python3         +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con_gui  +lua             +rightleft       +writebackup
+diff            +menu            +ruby            +X11
+digraphs        +mksession       +scrollbind      -xfontset
+dnd             +modify_fname    +signs           +xim
-ebcdic          +mouse           +smartindent     +xpm
+emacs_tags      +mouseshape      +startuptime     +xsmp_interact
+eval            +mouse_dec       +statusline      +xterm_clipboard
+ex_extra        +mouse_gpm       -sun_workshop    -xterm_save
+extra_search    -mouse_jsbterm   +syntax          
+farsi           +mouse_netterm   +tag_binary      
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/freetype2 -Wdate-time  -g -O2 -fdebug-prefix-map=/build/vim-RY6vK3/vim-8.0.0197=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       
Linking: gcc   -L. -Wl,-z,relro -Wl,-z,now -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector-strong -L/usr/local/lib  -L/usr/lib/x86_64-linux-gnu/perl/5.24/CORE -lperl -ldl -lm -lpthread -lcrypt  -L/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu -lpython3.5m -lpthread -ldl -lutil -lm -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-2.3 -lpthread -lgmp -ldl -lcrypt -lm


我在存储库中添加了带有Python支持的vim
,但是仍然出现错误。

#1 楼

看来我来晚了,但我将其留在这里供将来的访问者同时使用。

$ sudo apt install vim-nox


这是Debian Stretch中的Vim软件包。可以增加对脚本语言的支持。

您应该尝试这样做,因为它更易于更新/删除。

编辑:考虑切换到Neovim

评论


我已经尝试过了,但是它不适用于Debian Stretch

–Satish Kumar
17年7月5日在5:22

您必须完全删除以前的vim安装,包括相关的软件包(xxd是其中的一个示例),然后安装干净版本。

– Baruch Spinoza
17年7月5日在14:56

我只是再次阅读了这个问题,并且意识到这个问题通常与python支持无关。似乎您特别需要python 2,对吗?

– Baruch Spinoza
17年7月5日在14:59

是的@Baruch它需要python 2

– Sathish Kumar
17年7月6日在17:42

vim-nox可用于拉伸,破坏和测试,不稳定。并且它支持Python3。

–阿卜杜拉
19年8月4日在5:23

#2 楼

我通常使用此过程进行安装(在Debian 9中也使用了)



 # Clean from standard vim
sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common
# Vim dependency
sudo apt-get install liblua5.1-dev luajit libluajit-5.1 python-dev libperl-dev libncurses5-dev ruby-dev

# if you want gVim add also this 
sudo apt-get install libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev

# Clean and prepare folders
sudo rm -rf /usr/local/share/vim
sudo rm /usr/bin/vim
sudo mkdir /usr/include/lua5.1/include

# Download it and compile
cd /usr/local/src/
git clone https://github.com/vim/vim
cd vim/src
make distclean

./configure --with-features=huge \
            --enable-rubyinterp \
            --with-ruby-command=$(which ruby) \
            --enable-largefile \
            --disable-netbeans \
            --enable-pythoninterp \
            --with-python-config-dir=/usr/lib/python2.7/config \
            --enable-perlinterp \
            --enable-luainterp \
            --with-luajit \
            --enable-gui=auto \
            --enable-fail-if-missing \
            --with-lua-prefix=/usr/include/lua5.1 \
            --enable-cscope

make
sudo make install
 


对于Python 3.5,在python-dev行中用python3-dev替换sudo apt-get install,在./configure语句中将2.7行和上面的行替换为以下内容:

 --enable-python3interp=yes \    
--with-python3-config-dir=/usr/lib/python3.5/config \
 


对于Python配置目录,您还可以使用python-configpython3-config的输出:

 --with-python-config-dir=$(python-config --configdir) \
# or
--with-python3-config-dir=$(python3-config --configdir) \
 


#3 楼

从Jessie升级到Stretch后,我也触犯了这个问题。

如另一个答案所述,安装vim-nox应该可以解决此问题(因为Stretch中的vim-nox是针对python2编译的)。但是,我认为python3是未来的方式。所以我决定以另一种方式修复它。

如果需要Python2支持,安装vim-nox可能是最好的方法。请注意,如果仍然安装了vim,它将继续是系统上的默认“ vim”。如果希望将vim-nox设置为默认值,则需要执行以下操作之一:


完全删除vim;或
使用update-alternativesvim-nox设置为默认的“ vim”;或
只需显式启动vim-nox,即:vim.nox <filename>

我通过调整现有的.vim插件文件来修复了我的问题。只需更改pyfilepy3file命令即可:

for file in /home/user/.vim/bundle/custom/plugin/*.vim; do
    sed -i "s|pyfile|py3file|" $file
done


(显然我的用户名是user!:)

问题,但是我的.py插件之一开始出现一些不同的(python3)错误: :

Error detected while processing /home/user/.vim/bundle/custom/plugin/rst.vim:
line    2:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/user/.vim/bundle/custom/plugin/rst.py", line 100
    vim.command("let b:nestings = " + `self.nestings`)
                                      ^
SyntaxError: invalid syntax


全部固定! :)

#4 楼

在Stretch中,软件包从支持Python2更改为Python3。如另一个答案所述,在Debian中不能同时针对Python2和Python3来构建Vim。您自己针对Python2的Vim或使用Neovim(它不是针对Python编译的,因此可以使用任一版本)。

#5 楼

我尝试了多种可能的方式来添加带有python支持debian Stretch的存储库,但都没有成功。

最后我建立了自己的存储库,然后解决了我的问题。这是带有python 2和python支持的Vim的链接