Eu gostaria de saber quais opções de compilação foram usadas para meu binário Vim. Existe alguma maneira de consultar isso?
Especificamente, estou interessado em saber se ele tem suporte para Python habilitado.
Respostas:
Você pode ver tudo com que o vim foi compilado executando
:version
Para consultar um recurso exato como o python, você pode usar a has()função com o recurso que está procurando. O código a seguir retornará 1 se tiver o recurso ou 0 se não tiver.
:echo has('python')
Para obter uma lista de recursos, consulte :h +feature-list
Para mais informações, veja:
:h :version
:h has(
:h feature-list
:versionele mostra +python/dyn and +python3/dyn. Mas echo tem ('python') retorna 0. Então, por que há uma diferença e qual devo escolher?
:versionmostra com o que o Vim é compilado. No seu caso +python/dyne +python3/dynque são versões carregadas dinamicamente do python. De acordo com :h python-dynamicisso, o Vim irá procurar as bibliotecas python dll necessárias e, se encontradas, você pode usar o python. A tentativa has('python')tentará carregar o python dinamicamente e retornar os resultados (consulte :h has-python). Portanto, has('python')é o método preferido.
Use vim --version. Meus programas:
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 20 2012 13:16:02)
Compiled by root@apple.com
Normal version without GUI. Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
-conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path
+find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype
+path_extra -perl +persistent_undo +postscript +printer -profile +python/dyn
-python3 +quickfix +reltime -rightleft +ruby/dyn +scrollbind +signs
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
-toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
-xterm_clipboard -xterm_save
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses
if has('clipboard'),set mouse=a,end. Não me incomodo em ler a ajuda se já li o SO ;-)