Tôi muốn biết tùy chọn biên dịch nào đã được sử dụng cho hệ nhị phân Vim của tôi. Có cách nào để truy vấn điều này không?
Cụ thể, tôi quan tâm đến việc nó có hỗ trợ Python hay không.
Câu trả lời:
Bạn có thể thấy mọi thứ vim được biên dịch bằng cách thực thi
:version
Để truy vấn một tính năng chính xác như python, bạn có thể sử dụng has()hàm với tính năng bạn đang tìm kiếm. Đoạn mã dưới đây sẽ trả về giá trị 1 nếu nó có tính năng hoặc 0 nếu nó không có.
:echo has('python')
Để biết danh sách các tính năng, hãy xem :h +feature-list
Để biết thêm thông tin, hãy xem:
:h :version
:h has(
:h feature-list
:versionnó cho thấy +python/dyn and +python3/dyn. Nhưng echo có ('python') trả về 0. Vì vậy, tại sao lại có sự khác biệt và tôi nên đi với cái nào?
:versionhiển thị những gì Vim được biên dịch. Trong trường hợp của bạn +python/dynvà +python3/dynđó là các phiên bản python được tải động. Theo :h python-dynamicđiều này có nghĩa là Vim sẽ tìm kiếm các thư viện dll python cần thiết và nếu tìm thấy bạn có thể sử dụng python. Việc thử has('python')sẽ cố gắng tải động python và trả về kết quả (Xem :h has-python). Do đó has('python')là phương pháp được ưu tiên.
Sử dụng vim --version. Chương trình của tôi:
$ 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. Không thể bị phiền khi đọc trợ giúp nếu tôi đã đọc SO ;-)