星期一, 五月 11, 2020

VIM学习笔记 编译源码(Compile Code)-Python

Python作为一种解释型编程语言,需要解释器来编译并执行Python代码。

测试Python

对于Linux和Mac操作系统,均已预装Python。而在Windows下,可以使用安装包或者直接解压版zip文件。

使用以下命令,可以查看当前Python版本:

$ python --version

python-version

设置动态调用库

新版本的Vim已经默认支持Python。可以使用:version命令,确认是否包含“+python/dyn”和“+python3/dyn”特性。

version_python3

其中dyn,即dynamic,表示可以通过'pythondll'和'pythonthreedll'选项动态调用Python库。

使用set pythonthreedll?命令,可以查看当前动态调用的Python库。以下为Fedora31下的默认设置:

set pythonthreedll=libpython3.7m.so.1.0

如果您的Vim不支持动态调用Python库,那么以上命令将会报错。

如果您仅是下载并解压程序包(而不是进行安装),那么同时需要设置pythonthreehome选项。例如以下命令,在Windows下设置Python3环境:

set pythonthreehome=C:\tools\Python3
set pythonthreedll=C:\tools\Python3\python38.dll

以下命令,可以在Mac下设置Python环境:

" for python 3.X
set pythonthreehome=/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7
set pythonthreedll=/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.7/lib/libpython3.7m.dylib
" for python 2.X
set pythonhome=/System/Library/Frameworks/Python.framework/Versions/2.7
set pythondll=/System/Library/Frameworks/Python.framework/Versions/2.7/Python

请注意,在您的环境中Python所处的路径可能会不同。请在操作系统中使用以下命令,查看Python系统路径:

$ python -c "import sys; print(sys.path)"

python_sys_path

请使用以下命令,查看更多帮助信息:

:help python-dynamic
:help 'pythonhome'
:help 'pythonthreehome'

设置编译器

使用以下命令,设置'makeprg'选项为python3命令:

set makeprg=python3\ %

通过在vimrc文件中增加以下自动命令,可以为Python源码文件设置编译快捷键:

augroup make_python
 au!
 au FileType python set makeprg=python3\ %
 au FileType python map <buffer> <leader><space> :w<cr>:make<cr>
augroup end

编译Python代码

使用以下命令,将根据'makeprg'选项编译并执行Python文件:

:make

如果编译出现错误,将在QuickFix中显示错误列表,并自动跳转到第一个错误处:

python_error_quicklist_multiple

启用以下内置的编译器,再执行:make编译命令,报错信息将被整合为一行:

:compiler pyunit

python_error_quicklist_single

如果希望在编译时保持当前光标位置不变,那么可以使用以下命令:

:make!

使用:cw命令,将打开quickfix窗口。使用:cp命令,跳转到上一个错误;使用:cn命令,跳转到下一个错误。关于QuickFix操作的更多信息,请参阅QuickFix章节。

在修复错误并成功编译之后,将显示命令输出:

python_success_output

使用以下命令,将解释执行当前文件:

:!python3 %

如果执行不带任何参数的python3命令,那么将进入交换模式的python shell,您可以在其中直接执行python命令:

:!python3

Python3_i

使用以下命令,可以退出交换模式的python shell:

import sys; sys.exit()

您也可以直接使用Vim内置的:python3命令来执行代码:

:py3 print('hello world')

Ver: 2.0 | YYQ<上一篇 | 目录 下一篇>

没有评论:

发表评论