Background
The Debian 11 vim
package doesn’t include python3
support. See the section titled "No python support in Debian 11 vim – evidence" below
I need vim
with python3
support for the YouCompleteMe vim plugin. Syntax highlighting is also required. To build a new vim
, I downloaded the vim 9.0 tarball into /opt/
on my Debian 11 system and extracted it… explicitly:
$ cd /opt
$ sudo wget http://ftp.vim.org/pub/pub/vim/unix/vim-9.0.tar.bz2
$ sudo bunzip2 ./vim-9.0.tar.bz2
$ sudo chown -R mpenning:mpenning vim/
I built it with…
$ cd /opt/vim
$ ./configure
--enable-python3interp=yes
--with-python3-command=python3.9
--with-features=huge
--with-compiledby="[email protected]"
$ make
$ sudo cp src/vim /usr/bin/vim
However, now I see these errors when I start vim
…
$ vim foo.py
2022-10-24 09:08:31 [INFO] Editing 'foo.py'.
failed to load colors/lists/default.vim
failed to load colors/lists/default.vim
Press ENTER or type command to continue
As one might expect, I get no vim
syntax highlighting when I see the errors listed above. Just for kicks, I tried this in my vim
session:
:syntax enable
:colorscheme default
:filetype plugin on
Predictably, that doesn’t help.
Question
How can I build a Debian vim
binary with python3
and syntax highlighting support?
No python support in Debian 11 vim – evidence
$ vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Oct 01 2021 01:51:08)
Included patches: 1-2434
Extra patches: 8.2.3402, 8.2.3403, 8.2.3409, 8.2.3428
Modified by [email protected]
Compiled by [email protected]
Huge version without GUI. Features included (+) or not (-):
+acl -farsi +mouse_sgr +tag_binary
+arabic +file_in_path -mouse_sysmouse -tag_old_static
+autocmd +find_in_path +mouse_urxvt -tag_any_white
+autochdir +float +mouse_xterm -tcl
-autoservername +folding +multi_byte +termguicolors
-balloon_eval -footer +multi_lang +terminal
+balloon_eval_term +fork() -mzscheme +terminfo
-browse +gettext +netbeans_intg +termresponse
++builtin_terms -hangul_input +num64 +textobjects
+byte_offset +iconv +packages +textprop
+channel +insert_expand +path_extra +timers
+cindent +ipv6 -perl +title
-clientserver +job +persistent_undo -toolbar
-clipboard +jumplist +popupwin +user_commands
+cmdline_compl +keymap +postscript +vartabs
+cmdline_hist +lambda +printer +vertsplit
+cmdline_info +langmap +profile +virtualedit
+comments +libcall -python +visual
+conceal +linebreak -python3 +visualextra
+cryptv +lispindent +quickfix +viminfo
+cscope +listcmds +reltime +vreplace
+cursorbind +localmap +rightleft +wildignore
+cursorshape -lua -ruby +wildmenu
+dialog_con +menu +scrollbind +windows
+diff +mksession +signs +writebackup
+digraphs +modify_fname +smartindent -X11
-dnd +mouse -sound -xfontset
-ebcdic -mouseshape +spell -xim
+emacs_tags +mouse_dec +startuptime -xpm
+eval +mouse_gpm +statusline -xsmp
+ex_extra -mouse_jsbterm -sun_workshop -xterm_clipboard
+extra_search +mouse_netterm +syntax -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -Wdate-time -g -O2 -ffile-prefix-map=/build/vim-DtwDbo/vim-8.2.2434=. -fstack-protector-strong -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -o vim -lm -ltinfo -lselinux -lacl -lattr -lgpm -ldl
$
2
Answers
I have a custom
vim
install in/opt/vim
for the system in question.It seems that I have to set
$VIMRUNTIME
to my newvim/runtime
source directory when I try to edit with the newvim
binary... Setting this in my~/.bashrc
fixed the problem...Now I have
vim
with bothpython3
and functional syntax highlighting.Python syntax highlighting is built-in so you don’t need to build Vim manually to get it. You are wasting your and everyone’s time.
"Python support" is unrelated to syntax highlighting. It refers to the Python scripting interface that allow users to (partially) write Vim plugins in Python. Having
-python
or-python3
in:version
has zero incidence on Vim’s ability to highlight Python.FWIW, you don’t have to build a new vim binary if you install the
vim-nox
Debian package instead of depending on thevim
Debian package.vim-nox
embeds several scripting languages in thevim.nox
binary build.