如何在 windows 10 上的新 GVIM 8.2 安装中启用 python?
How do I enable python in my new GVIM 8.2 installation on windows 10?
我今天从 vim.org 安装了最新的 gvim。它是一个有很多选项的 'loaded' 包,cfr infra(:version 命令的输出)
我安装了 python 2.7,python27.dll 位于 c:\windows\system32。 python37.dll 和 pyhon39.dll 在 'c:\Program Files\python37' 和 'c:\Program Files\python39' 目录中可用。这三个有python dll的目录在系统路径下。
Gvim 和 Vim 在 echo has('python')
和 echo has('python3')
命令上输出 0。
我是否必须在 .vimrc 或 .gvimrc 中添加任何内容才能激活 python?
如有任何建议和帮助,我们将不胜感激!
提前致谢,
圭多
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 15 2019 23:09:58)
MS-Windows 32-bit console version
Included patches: 1-12
Compiled by appveyor@APPVYR-WIN
Huge version without GUI. Features included (+) or not (-):
+acl +eval +multi_byte_ime/dyn -tag_old_static
+arabic +ex_extra +multi_lang -tag_any_white
+autocmd +extra_search +mzscheme/dyn +tcl/dyn
+autochdir -farsi -netbeans_intg +termguicolors
+autoservername +file_in_path +num64 +terminal
-balloon_eval +find_in_path +packages -termresponse
+balloon_eval_term +float +path_extra +textobjects
-browse +folding +perl/dyn +textprop
++builtin_terms -footer +persistent_undo -tgetent
+byte_offset +gettext/dyn +popupwin +timers
+channel -hangul_input -postscript +title
+cindent +iconv/dyn +printer -toolbar
+clientserver +insert_expand +profile +user_commands
+clipboard +job +python/dyn +vartabs
+cmdline_compl +jumplist +python3/dyn +vertsplit
+cmdline_hist +keymap +quickfix +virtualedit
+cmdline_info +lambda +reltime +visual
+comments +langmap +rightleft +visualextra
+conceal +libcall +ruby/dyn +viminfo
+cryptv +linebreak +scrollbind +vreplace
+cscope +lispindent +signs +vtp
+cursorbind +listcmds +smartindent +wildignore
+cursorshape +localmap +sound +wildmenu
+dialog_con +lua/dyn +spell +windows
+diff +menu +startuptime +writebackup
+digraphs +mksession +statusline -xfontset
-dnd +modify_fname -sun_workshop -xim
-ebcdic +mouse +syntax -xpm_w32
+emacs_tags -mouseshape +tag_binary -xterm_save
system vimrc file: "$VIM\vimrc"
user vimrc file: "$HOME\_vimrc"
2nd user vimrc file: "$HOME\vimfiles\vimrc"
3rd user vimrc file: "$VIM\_vimrc"
user exrc file: "$HOME\_exrc"
2nd user exrc file: "$VIM\_exrc"
defaults file: "$VIMRUNTIME\defaults.vim"
Compilation: cl -c /W3 /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 -DFEAT_CSCOPE -DFEAT_TERMINAL -DFEAT_SOUND
-DFEAT_JOB_CHANNEL -DWINVER=0x0501 -D_WIN32_WINNT=0x0501 /MP -DHAVE_STDINT_H /Ox /GL
-DNDEBUG /arch:IA32 /Zl /MT -DFEAT_MBYTE_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT
-DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl86t.dll\" -DDYNAMIC_TCL_VER=\"8.6\" -DFEAT_LUA
-DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua53.dll\" -DFEAT_PYTHON -DDYNAMIC_PYTHON
-DDYNAMIC_PYTHON_DLL=\"python27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3
-DDYNAMIC_PYTHON3_DLL=\"python37.dll\" -DFEAT_MZSCHEME -I "C:\Program Files (x86)\Racket\include"
-DMZ_PRECISE_GC -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libracket3m_a36fs8.dll\"
-DDYNAMIC_MZGC_DLL=\"libracket3m_a36fs8.dll\" -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl528.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=24
-DDYNAMIC_RUBY_DLL=\"msvcrt-ruby240.dll\" -DFEAT_HUGE /Fd.\ObjCULYHTRZi386/ /Zi
Linking: link /nologo /opt:ref /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib
comdlg32.lib ole32.lib netapi32.lib uuid.lib /machine:i386 libcmt.lib user32.lib /nodefaultlib:lua53.lib
/STACK:8388608 /nodefaultlib:python27.lib /nodefaultlib:python37.lib "C:\Tcl\lib\tclstub86.lib" winmm.lib
WSock32.lib /PDB:vim.pdb -debug
Windows 上 Vim 的常用包提供 32 位二进制文件,而 32 位二进制文件不能与 64 位库一起使用(这通常是我所期望的您的 Python 安装将是。)您需要 Vim 和 Python 匹配。
这里有 Vim 包的 64 位版本:github。com/vim/vim-win32-installer/releases
对于那些想要添加对 Python.
等外部语言的支持的人,明确提到了它们
一旦您拥有与您的 Python 库匹配的 64 位 Vim 二进制文件,您需要让它在您的系统中正确找到这些库。
尝试将 'pythonthreedll'
和 'pythonthreehome'
变量设置为指向您系统中的变量。
可以通过检查:version
输出来检查所需的python版本。特别是,底部显示的编译标志将显示类似 -DDYNAMIC_PYTHON3_FLL=\"python37.dll\"
.
的内容
因此,Vim 似乎是用 python37.dll
构建的,所以让我们先试试那个版本:
set pythonthreedll=c:\Program\ Files\python37\python37.dll
set pythonthreehome=c:\Program\ Files\python37
可能这些不是您系统中的确切路径,或者 Vim 想要的设置值...请对它们进行试验,看看您是否找到了使其有效的组合。
注意需要用反斜杠转义空格,需要用两个反斜杠作为路径分隔符。该行的其他地方不应有空格(例如,=
周围)
可能可以为 Python 2.7 做类似的事情,但此时 Python 2 基本上已被弃用,所以我宁愿花时间让 Python 3 工作而不是Python 2...
我今天从 vim.org 安装了最新的 gvim。它是一个有很多选项的 'loaded' 包,cfr infra(:version 命令的输出)
我安装了 python 2.7,python27.dll 位于 c:\windows\system32。 python37.dll 和 pyhon39.dll 在 'c:\Program Files\python37' 和 'c:\Program Files\python39' 目录中可用。这三个有python dll的目录在系统路径下。
Gvim 和 Vim 在 echo has('python')
和 echo has('python3')
命令上输出 0。
我是否必须在 .vimrc 或 .gvimrc 中添加任何内容才能激活 python?
如有任何建议和帮助,我们将不胜感激!
提前致谢,
圭多
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 15 2019 23:09:58)
MS-Windows 32-bit console version
Included patches: 1-12
Compiled by appveyor@APPVYR-WIN
Huge version without GUI. Features included (+) or not (-):
+acl +eval +multi_byte_ime/dyn -tag_old_static
+arabic +ex_extra +multi_lang -tag_any_white
+autocmd +extra_search +mzscheme/dyn +tcl/dyn
+autochdir -farsi -netbeans_intg +termguicolors
+autoservername +file_in_path +num64 +terminal
-balloon_eval +find_in_path +packages -termresponse
+balloon_eval_term +float +path_extra +textobjects
-browse +folding +perl/dyn +textprop
++builtin_terms -footer +persistent_undo -tgetent
+byte_offset +gettext/dyn +popupwin +timers
+channel -hangul_input -postscript +title
+cindent +iconv/dyn +printer -toolbar
+clientserver +insert_expand +profile +user_commands
+clipboard +job +python/dyn +vartabs
+cmdline_compl +jumplist +python3/dyn +vertsplit
+cmdline_hist +keymap +quickfix +virtualedit
+cmdline_info +lambda +reltime +visual
+comments +langmap +rightleft +visualextra
+conceal +libcall +ruby/dyn +viminfo
+cryptv +linebreak +scrollbind +vreplace
+cscope +lispindent +signs +vtp
+cursorbind +listcmds +smartindent +wildignore
+cursorshape +localmap +sound +wildmenu
+dialog_con +lua/dyn +spell +windows
+diff +menu +startuptime +writebackup
+digraphs +mksession +statusline -xfontset
-dnd +modify_fname -sun_workshop -xim
-ebcdic +mouse +syntax -xpm_w32
+emacs_tags -mouseshape +tag_binary -xterm_save
system vimrc file: "$VIM\vimrc"
user vimrc file: "$HOME\_vimrc"
2nd user vimrc file: "$HOME\vimfiles\vimrc"
3rd user vimrc file: "$VIM\_vimrc"
user exrc file: "$HOME\_exrc"
2nd user exrc file: "$VIM\_exrc"
defaults file: "$VIMRUNTIME\defaults.vim"
Compilation: cl -c /W3 /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 -DFEAT_CSCOPE -DFEAT_TERMINAL -DFEAT_SOUND
-DFEAT_JOB_CHANNEL -DWINVER=0x0501 -D_WIN32_WINNT=0x0501 /MP -DHAVE_STDINT_H /Ox /GL
-DNDEBUG /arch:IA32 /Zl /MT -DFEAT_MBYTE_IME -DDYNAMIC_IME -DDYNAMIC_ICONV -DDYNAMIC_GETTEXT
-DFEAT_TCL -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl86t.dll\" -DDYNAMIC_TCL_VER=\"8.6\" -DFEAT_LUA
-DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua53.dll\" -DFEAT_PYTHON -DDYNAMIC_PYTHON
-DDYNAMIC_PYTHON_DLL=\"python27.dll\" -DFEAT_PYTHON3 -DDYNAMIC_PYTHON3
-DDYNAMIC_PYTHON3_DLL=\"python37.dll\" -DFEAT_MZSCHEME -I "C:\Program Files (x86)\Racket\include"
-DMZ_PRECISE_GC -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libracket3m_a36fs8.dll\"
-DDYNAMIC_MZGC_DLL=\"libracket3m_a36fs8.dll\" -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl528.dll\" -DFEAT_RUBY -DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=24
-DDYNAMIC_RUBY_DLL=\"msvcrt-ruby240.dll\" -DFEAT_HUGE /Fd.\ObjCULYHTRZi386/ /Zi
Linking: link /nologo /opt:ref /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib
comdlg32.lib ole32.lib netapi32.lib uuid.lib /machine:i386 libcmt.lib user32.lib /nodefaultlib:lua53.lib
/STACK:8388608 /nodefaultlib:python27.lib /nodefaultlib:python37.lib "C:\Tcl\lib\tclstub86.lib" winmm.lib
WSock32.lib /PDB:vim.pdb -debug
Windows 上 Vim 的常用包提供 32 位二进制文件,而 32 位二进制文件不能与 64 位库一起使用(这通常是我所期望的您的 Python 安装将是。)您需要 Vim 和 Python 匹配。
这里有 Vim 包的 64 位版本:github。com/vim/vim-win32-installer/releases
对于那些想要添加对 Python.
等外部语言的支持的人,明确提到了它们一旦您拥有与您的 Python 库匹配的 64 位 Vim 二进制文件,您需要让它在您的系统中正确找到这些库。
尝试将 'pythonthreedll'
和 'pythonthreehome'
变量设置为指向您系统中的变量。
可以通过检查:version
输出来检查所需的python版本。特别是,底部显示的编译标志将显示类似 -DDYNAMIC_PYTHON3_FLL=\"python37.dll\"
.
因此,Vim 似乎是用 python37.dll
构建的,所以让我们先试试那个版本:
set pythonthreedll=c:\Program\ Files\python37\python37.dll
set pythonthreehome=c:\Program\ Files\python37
可能这些不是您系统中的确切路径,或者 Vim 想要的设置值...请对它们进行试验,看看您是否找到了使其有效的组合。
注意需要用反斜杠转义空格,需要用两个反斜杠作为路径分隔符。该行的其他地方不应有空格(例如,=
周围)
可能可以为 Python 2.7 做类似的事情,但此时 Python 2 基本上已被弃用,所以我宁愿花时间让 Python 3 工作而不是Python 2...