Bagaimana Anda dapat memeriksa opsi vim mana yang telah dikompilasi?

88

Saya ingin tahu opsi kompilasi mana yang digunakan untuk biner Vim saya. Apakah ada cara untuk menanyakan ini?

Secara khusus, saya tertarik jika itu telah mengaktifkan dukungan Python.

Caleb
sumber

Jawaban:

101

Anda dapat melihat semua vim dikompilasi dengan mengeksekusi

:version

Untuk menanyakan fitur yang tepat seperti python, Anda dapat menggunakan has()fungsi dengan fitur yang Anda cari. Kode di bawah ini akan mengembalikan 1 jika memiliki fitur atau 0 jika tidak.

:echo has('python')

Untuk daftar fitur, lihat :h +feature-list

Untuk informasi lebih lanjut lihat:

:h :version
:h has(
:h feature-list
Peter Rincker
sumber
1
Demi kelengkapan: Untuk vimscript contoh sintaks if has('clipboard'), set mouse=a, end. Tidak bisa diganggu untuk membaca bantuan jika saya sudah membaca SO ;-)
cfi
1
Ketika saya menjalankannya, :versionitu terlihat +python/dyn and +python3/dyn. Tapi echo has ('python') mengembalikan 0. Jadi, mengapa ada perbedaan dan mana yang harus saya gunakan?
Durga Swaroop
4
:versionmenunjukkan dengan apa Vim dikompilasi. Dalam kasus Anda +python/dyndan +python3/dynyang merupakan versi python yang dimuat secara dinamis. Menurut :h python-dynamiccara ini Vim akan mencari perpustakaan dll python yang dibutuhkan dan jika ditemukan Anda dapat menggunakan python. Mencoba has('python')akan mencoba memuat python secara dinamis dan mengembalikan hasilnya (Lihat :h has-python). Oleh karena itu has('python')adalah metode yang disukai.
Peter Rincker
18

Gunakan vim --version. Pertunjukan saya:

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 20 2012 13:16:02)
Compiled by [email protected]
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
Andy Lester
sumber
4

Gunakan vi --version, yang menunjukkan opsi kompilasi dan perintah kompilator.

vaporbook
sumber