mac vim python3_VIM学习笔记 编译源码(Compile Code)-Python

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

测试Python

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

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

$ python --version

6ef92c742398d1bd7a39a0e997378751.png

设置动态调用库

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

41ec7cf574844055750dc4a748e44ae9.png

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

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

set pythonthreedll=libpython3.7m.so.1.0

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

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

set pythonthreehome=C:toolsPython3
set pythonthreedll=C:toolsPython3python38.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)" 

e6c72e06405345aa48350da32dc6eed9.png

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

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

设置编译器

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

:set makeprg=python3 %

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

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

编译Python代码

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

:make

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

3c69a26e2343f1742c29435129c41f37.png

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

:compiler pyunit

702a726fb79b26b4f00cc89f3db19a89.png

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

:make!

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

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

0a05084b3743fca584400285d02f9dfd.png

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

:!python3 %

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

:!python3

2e16e4150ca768177f576fb61dc587b2.png

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

import sys; sys.exit()

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

:py3 print('hello world')

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word List37

word List37 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

EntityFramework Core 3.x初级篇发布

之前陆陆续续有一些童鞋一直催我什么时候出EF Core视频&#xff0c;因个人时间确实有限&#xff0c;中间也一直有想法去录制&#xff0c;但是还是因为各种原因而难产&#xff0c;刚好最近因为疫情的事情&#xff0c;个人时间比较充裕&#xff0c;于是下定决心开始准备录制EF Co…

对pca降维后的手写体数字图片数据分类_机器学习:数据的准备和探索——特征提取和降维...

在数据的预处理阶段&#xff0c;特征提取和数据降维是提升模型表示能力的一种重要手段。特征提取主要是从数据中找到有用的特征&#xff0c;用于提升模型的表示能力&#xff0c;而数据降维主要是在不减少模型准确率的情况下减少数据的特征数量。比如&#xff0c;我们要搭建一个…

程序员应对浏览器同源策略的姿势

同源策略浏览器最基本的安全规范——同源策略(Same-Origin Policy)。所谓同源是指域名、协议、端口相同。不同源的浏览器脚本(javascript、ActionScript、canvas)在没明确授权的情况下&#xff0c;不能读写对方的资源。同源策略规定了浏览器脚本互操作web数据的基本原则&#x…

word List38

word List38 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

.net core 整洁架构入门

Clean Architecture with .NET Core: Getting Started&#xff03; 使用.NET Core整洁架构(Clean Architecture)&#xff1a;入门Over the past two years, I’ve travelled the world teaching programmers how to build enterprise applications using Clean Architecture wi…

算法---背包问题

算法—背包问题 参考&#xff1a;趣学算法 代码&#xff1a; typedef struct three {float w;float v;float p; }three; #define elemType three int quickSort1(elemType a[], int l, int h) {//快速排序int i l, j h;elemType p1 a[i];while (i < j) {while (i<j…

允许服务与桌面交互_在后全面屏时代 手机需要什么样的人机交互?

在智能手机进入全面屏时代之后&#xff0c;智能手机的屏占比已经越来越高&#xff0c;智能手机上的各种实体按键也已经越来越少&#xff0c;手机屏幕已经在客观上成为了用户进行交互操作的主要部件&#xff0c;而触控也全面取代了按键成为手机交互中最主要的方式。全面屏手机正…

C++实现链式存储线索二叉树

一颗线索二叉树&#xff1a; 根据下图进行节点的创建&#xff1a; 代码如下&#xff1a; #include <iostream> using namespace std; typedef char ElemType;typedef struct BiThrNode {ElemType data;int ltag,rtag;struct BiThrNode *lchild,*rchild; }BiThrNode,*Bi…

windows 仍在设置此设备的类配置。 (代码 56)_谷歌发布Flutter Alpha:支持Windows

老孟导读&#xff1a;Windows来了&#xff0c;Mac、Linux、Web还远吗&#xff1f; 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33982cd0f433 我们的使命是为开发人员提供一个开源&#xff0c;高生产率的框架&#xff0c;以便在任何平台上构建漂亮…

word List39

word List39 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

不同路径 II-dp

题目背景 一个机器人位于一个 n x m 网格的左上角 机器人每次只能向下或者向右移动一步。它试图达到网格的右下角 题目描述 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径&#xff1f; 网格中的障碍物和空位置分别用 1 和 0 来表示。 输入格式 第一行两…

.NET Core开发实战(第5课:依赖注入:良好架构的起点)--学习笔记(下)

05 | 依赖注入&#xff1a;良好架构的起点注册完毕之后&#xff0c;想替换某些组件的某些部分时&#xff0c;可以使用 Replace 和 RemoveAllservices.AddSingleton<IOrderService>(new OrderService()); services.Replace(ServiceDescriptor.Singleton<IOrderService,…

python正态分布函数_python3-正态分布

loc 平均值 scale (scale) 标准差 pdf(x, loc0, scale1) 正态分布&#xff08;Normal distribution&#xff09;&#xff0c;也称“常态分布”&#xff0c;又名高斯分布&#xff08;Gaussian distribution&#xff09;&#xff0c;最早由A.棣莫弗在求二项分布的渐近公式中得到。…

word List40

word List40 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

int 范围_Java学习之随机生成5个(范围1——33)不同数字的思考

昨天做了一道福彩双色球的简单程序题&#xff0c;一开始不懂双色球的玩法&#xff0c;楼主我从来不买彩票的&#xff0c;( ╯□╰ )。所以随机生成某个范围的5个数字&#xff08;数字可以重复&#xff09;&#xff0c;那么很简单&#xff0c;一个循环就可以搞定了&#xff0c;但…

高级数据结构---优先队列

高级数据结构—优先队列 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include <stdio.h> #include <stdlib.h> int r[] { -1,1,4,590,4,2,8,7,5,89,67,5,2,1,67,86,54 };//存储要排序的数,第一个元素不存储元素赋值为-1 int length sizeof(r) / size…

[蓝桥杯2017初赛]贪吃蛇长度-模拟(水题)

题目描述 小明在爷爷的私人收藏馆里找到一台老式电脑。居然没有图形界面&#xff0c;只能用控制台编程。 经过小明的一阵摸索&#xff0c;神奇地设计出了控制台上的贪食蛇游戏。 如下图&#xff0c;是游戏时画面截图。 其中&#xff0c;H表示蛇头&#xff0c;T表示蛇尾。#表示…

蓝屏(BSOD)转储设置,看本文就够了!

前言 我们在内核转储&#xff0c;开抓啦&#xff01;这篇文章里介绍了一个关键的系统设置。设置好后可以让系统在蓝屏&#xff08;Blue Screen of Death&#xff0c;简称 BSOD&#xff09;的时候自动保存转储文件。当时只是简单的介绍了设置步骤&#xff0c;本文力求详细的介绍…

算法---字符串顺序平移

算法—字符串顺序平移 原理&#xff1a;矩阵的转置思想 代码&#xff1a; #include <stdio.h> #include <stdlib.h> void swap(char *a,int i, int j) {//交换二个变量的值char temp a[i];a[i] a[j];a[j] temp; } void invert(char *a,int s, int e) {//对称…