请注意,本文在Mac OS X 10.15.3下测试完成。以下命令中的参数,需要根据您的系统环境进行相应调整。
前置条件
首先确请认已安装Python3或Python2。关于安装和配置信息,请访问Python网站。
使用以下命令,查看当前Python2安装情况:
$ which python
/usr/bin/python
使用以下命令,查看当前Python3安装情况:
$ which python3
/usr/bin/python3
编译Vim
使用Git命令,将Vim源码复制到本地:
$ git clone https://github.com/vim/vim.git
切换到下载的Vim源码目录:
$ cd vim
通过配置命令,启用需要的特性:
$ ./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp=dynamic \
--with-ruby-command=/usr/bin/ruby \
--enable-pythoninterp=dynamic \
--with-python-config-dir=/usr/lib/python2.7/config \
--enable-python3interp=dynamic \
--with-python3-config-dir=/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin \
--enable-cscope \
--enable-gui=auto \
--enable-gtk2-check \
--enable-fontset \
--enable-largefile \
--disable-netbeans \
--with-compiledby="yyq123@email.com" \
--enable-fail-if-missing \
--prefix=/usr/local
其中,“–-enable-fail-if-missing”,用于显示错误信息;“--prefix=/usr/local”,用于指定生成可执行文件的位置。
命令将检查配置项,并输出以下类似信息:
checking --enable-pythoninterp argument... dynamic checking --with-python-command argument... no checking for python2... /usr/bin/python2 checking Python version... 2.7 checking Python is 2.3 or better... yep checking Python's install prefix... /System/Library/Frameworks/Python.framework/Versions/2.7 checking Python's execution prefix... /System/Library/Frameworks/Python.framework/Versions/2.7 checking Python's configuration directory... (cached) /usr/lib/python2.7/config checking Python's dll name... Python.framework/Versions/2.7/Python checking if -pthread should be used... no checking if compile and link flags for Python are sane... yes checking --enable-python3interp argument... dynamic checking --with-python3-command argument... no checking for python3... /usr/bin/python3 checking Python version... 3.7 checking Python is 3.0 or better... yep checking Python's abiflags... m checking Python's install prefix... /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7 checking Python's execution prefix... /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7 checking Python's configuration directory... (cached) /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin checking Python3's dll name... Python3.framework/Versions/3.7/Python3 checking if -pthread should be used... no checking if compile and link flags for Python 3 are sane... yes checking whether we can do without RTLD_GLOBAL for Python... no checking whether we can do without RTLD_GLOBAL for Python3... yes checking --enable-tclinterp argument... no checking --enable-rubyinterp argument... dynamic checking --with-ruby-command argument... /usr/bin/ruby checking for /usr/bin/ruby... /usr/bin/ruby checking Ruby version... OK checking Ruby rbconfig... RbConfig checking Ruby header files... /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0 ......
执行以下编译命令:
$ sudo make
Starting make in the src directory. If there are problems, cd to the src directory and run make there cd src && /Library/Developer/CommandLineTools/usr/bin/make first /bin/sh install-sh -c -d objects touch objects/.dirstamp CC="gcc -Iproto -DHAVE_CONFIG_H -DMACOS_X -DMACOS_X_DARWIN " srcdir=. sh ./osdef.sh ......
执行以下安装命令,将编译后的二进制文件复制到 /usr/local/bin :
$ sudo make install
Starting make in the src directory. If there are problems, cd to the src directory and run make there cd src && /Library/Developer/CommandLineTools/usr/bin/make install if test -f /usr/local/bin/vim; then \ mv -f /usr/local/bin/vim /usr/local/bin/vim.rm; \ rm -f /usr/local/bin/vim.rm; \ fi cp vim /usr/local/bin strip /usr/local/bin/vim chmod 755 /usr/local/bin/vim ......
关闭并重新打开Terminal终端,执行以下命令将显示已使用新编译的Vim:
$ which vim
/usr/local/bin/vim
执行以下命令,将显示新编译的Vim已包含Python3特性:
$ vim --version
其中,与Python相关的特性主要包括:
- +python,内置支持Python 2;
- +python3,内置支持Python 3;
- +python/dyn,动态支持Python 2;
- +python3/dyn,动态支持Python 3;
根据以上步骤,我们保持/usr/bin目录下预装的Vim不变,另外在/usr/local/bin目录下安装了自已编译的Vim。
卸载Vim
使用以下命令,可以重置编译操作:
$ sudo make distclean
使用以下命令,可以卸载Vim:
$ sudo make uninstall
没有评论:
发表评论