首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

标准python解释器有一个vi命令模式?

标准Python解释器没有内置的vi命令模式。但是,您可以使用一些第三方库来实现类似的功能。例如,可以使用prompt_toolkit库来实现一个具有vi命令模式的交互式Python解释器。

要安装prompt_toolkit库,您可以使用以下命令:

代码语言:txt
复制
pip install prompt_toolkit

然后,您可以使用以下代码来启动具有vi命令模式的Python解释器:

代码语言:python
代码运行次数:0
复制
from prompt_toolkit import PromptSession
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.contrib.python_input import PythonInput
from prompt_toolkit.key_binding.manager import KeyBindingManager
from prompt_toolkit.shortcuts import clear

def main():
    session = PromptSession(
        history=FileHistory('history.txt'),
        auto_suggest=AutoSuggestFromHistory(),
        key_bindings_registry=KeyBindingManager.registry,
    )

    while True:
        try:
            text = session.prompt('>>> ', input_processors=[PythonInput()])
            code = compile(text,<input>', 'exec')
            exec(code)
        except KeyboardInterrupt:
            clear()
        except EOFError:
            break
        except Exception as e:
            print(f'Error: {e}')

if __name__ == '__main__':
    main()

这将启动一个具有vi命令模式的Python解释器,您可以使用vi键盘快捷键来导航和编辑代码。

需要注意的是,这个解决方案并不是标准的Python解释器,而是一个具有类似功能的第三方库。此外,这个解决方案可能不适用于所有操作系统和环境。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python解释的作用和分类哪些

之前已经讲解了Python解释的下载和安装,现在就讲下解释的作用和分类,在讲解任何Python代码之前我们得先知道解释概念和作用,因为解释扮演的角色是非常重要的。...一、解释的作用 作用:运行文件(运行代码) Python解释的作用通俗理解,就是起到一个翻译的作用,让我们程序员所编写的代码计算机能读懂然后执行代码。...比方说,现在有2个国家的人,一个A,一个B,现在A和B之间语言不通无法交流,这样怎么办,现在来个翻译官的会就能很好的交流了,简单的说现在Python解释也就是起到这么一个翻译作用。...所以我们在写代码之前必须给安装这个Python解释。 二、Python解释的分类 1. CPython 官方的,基于C语言开发的解释,是目前应用广泛的一个解释,我们目前用的解释就是这一款。...其他解释 3.1 PyPy: 基于Python语言开发的解释 3.2 Jython:运行在Java平台的解释,直接把Python代码编译成Java字节码执行 3.3 IronPython:运行在微软

61900
  • 一个自己的命令解释

    一个自己的命令解释 当我点开xshell运行服务的时候bash就被加载到了内存中,此后我在bash上执行的所有程序都是作为bash的子进程。...所以我们让子进程去执行程序替换,在我们的程序内执行命令,那我们不就是写了一个自己的命令解释吗?本文将带领各位读者通过实现一个简单的命令解释来巩固前面所学的部分知识。...一.搭建框架 当我们打开服务的时候在最右边提示符,包括用户名和服务名称以及当前路径;并且支持多次输入,所以这里可以采用一个死循环,进程替换的事情由子进程来执行,所以肯定要用fork函数。...通过环境变量的学习我们知道,main函数也是参数的,其中有一个argv指针数组,这个数组中存放的内容就是我输入的指令,argv[0]存放的是我要执行的命令的地址,后面的内容都是我指令附带的选项。...如果不太懂可以去看看博主的基础IO:基础IO 也就是说只要使用dup2系统调用更改fd中struct file*的指向即可,当我们完善这个功能以后一个简单命令解释也就完成了。

    1.2K10

    如何用Python编写一个Lisp解释

    作者 | Peter Norvig 译者 | Tianyu 编辑 | Freesia 来源 | Python大本营(ID: pythonnews) 这篇文章两个目的:一是展示如何实现一个计算机语言的解释...,二是演示如何使用 Python 3 构造 Lisp 的一种方言 Schema,作者把自己的这个语言解释称作 Lispy。...几年前,作者曾展示过如何用 Java 和 Common Lisp 写 Schema 解释。而本次的目的很纯粹,作者会尽可能简明扼要为大家进行介绍。 了解这些多重要呢?...Lispy 的 execution 函数叫作 eval(注意这和 Python 的内置函数同名)。 下面是解释工作过程的图片: ?...在我看来,它可以达到我的目的,即充当 Lisp 的解释。 真实的故事 追溯这个想法的来源有助于理解解释的工作原理,下面给大家分享一个真实的故事。

    1.4K40

    解释模式举例-TypeScript 类型体操天花板,用类型运算写一个 Lisp 解释

    具体的不展开讲了,可以看一下面这个回答,如果我们把一个环境(闭包)当成参数传递给函数解释模式举例,那意味着并不需要高阶函数一样能实现闭包的效果。   ...并且可以得到以下推论:   普通递归   不做赘述解释模式举例,用下面两个例子为例为例演示用 类型实现递归运算:    // 遍历数组 type ArrayStuct = [Head...这里给一个简单的运算加减表达式树的例子,虽然这个例子更简单的解法(详见前缀式表达式运算),这里给了一个在栈上保留了更多上下文的更为通用的实现方式:    type OperatorType...: never ) : never; type Test = Eval // => Test = 4   在线体验:   实现 Lisp 解释...  基础知识补充完了以后我们开始实现解释,开始着手实现解释

    45330

    一个Python程序&解释及性能优化

    文章目录 1、python是一种编程语言 2、 第一个python程序 3、程序运行原理解释 4....但是计算作为机器,它自己的逼格决定了它是读不懂人类的语言的。 所以,我们需要一个python开发环境,开发环境中有一个专门用来将符合人类语言的源代码翻译成机器能认识的语言的翻译解释(PVM)。...解释,我们只要按照规范的语言编写了程序,就可以让计算机来按照我们期望的方式执行程序了,整个完整的源代码->解释->运行的过程如下: 4....,并且大家也都了解到开发环境中有一个python解释(PVM)的存在,那在python中,这样的解释主要都有哪些,那些又是比较好用的呢?...常见的python解释 官方网站提供的解释CPython 从官方安装好的python,默认自带了解释,CPython就是官方版本的解释,这个解释是使用C语言编写的,这个解释也是使用最为广泛的解释

    42110

    盘点一个VScode中Python解释选择的问题

    一、前言 前几天在Python最强王者群【PythonPie】问了一个Python解释的问题,这里拿出来给大家分享下。...您可以在VS Code左下角选择Python解释,然后选择“选择解释”选项,手动添加Conda环境的路径并保存更改。...一般在VS Code左下角选择Python解释,然后选择“选择解释”选项,手动添加Conda环境的路径并保存更改就可以了,如果不行的话,你就重启vscode或者电脑试试看。...其实还有一个更加快捷的方法,如下图所示: 后来根据上图,粉丝找到了问题所在。 把模式改为信任模式就可以选择了。 三、总结 大家好,我是皮皮。...这篇文章主要盘点了一个Python解释选择的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    95820

    末行模式中的基本操作 保存文件及退出vi编辑 功能 命令 保存文件 :w :w rootnewfile 退出vi :q :q! 保存文件退出vi :wq 打开新文件或读入其他文件内容 命令

    末行模式中的基本操作 保存文件及退出vi编辑 功能 命令 保存文件 :w :w /root/newfile 退出vi :q :q!...文本编辑 文本编辑的作用: 维护Linux系统中的各种配置文件 编写shell脚本 vim编辑的工作模式 三种工作模式命令模式、输入模式、末行模式 1)命令模式:启动vi编辑后默认进入命令模式...文本编辑 文本编辑的作用: 维护Linux系统中的各种配置文件 编写shell脚本 vim编辑的工作模式 三种工作模式命令模式、输入模式、末行模式 1)命令模式:启动vi编辑后默认进入命令模式...文本编辑 文本编辑的作用: 维护Linux系统中的各种配置文件 编写shell脚本 vim编辑的工作模式 三种工作模式命令模式、输入模式、末行模式 1)命令模式:启动vi编辑后默认进入命令模式...文本编辑 文本编辑的作用: 维护Linux系统中的各种配置文件 编写shell脚本 vim编辑的工作模式 三种工作模式命令模式、输入模式、末行模式 1)命令模式:启动vi编辑后默认进入命令模式

    1.2K40

    03.如何实现一个遥控-命令模式

    命令模式也可以支持撤销操作。当需要将发出请求的对象和执行请求的对象解耦的时候,使用命令模式。 在本章,我们将把封装带到一个全新的境界:把方法调用(method invocation) 封装起来。...五、每个遥控都需具备“Party模式”! 如果拥有了一个遥控,却无法光凭按下一个按钮,就同时能弄暗灯管,打开音响和电视,设置好DVD,并让热水开始加温,那么要这个遥控还有什么意义?...为何命令对象不直接实现execute()方法的细节? 答:一般来说,我们尽量设计傻瓜命令对象,它只懂得调用一个接收者的一个行为。然后,许多“聪明”命令对象会实现许多逻辑,直接完成一个请求。...然而,这等于把Party模式硬编码到PartyCommand中。 七、命令模式的更多用途 1.队列请求 想象一个工作队列:你在某一端添加命令,然后另一端则是线程。...通过新增两个方法(Store()、Load()) 八、要点 1.命令模式将发出请求的对象和执行请求的对象解耦。 2.在被解耦的两者之间是通过命令对象进行沟通的。命令对象封装了接收者和一个或一组动作。

    1K70

    教您玩转python - 0003 - 编写 py 文件

    视频内容 编写 py 文件 回忆上次内容 次在解释里玩耍 了解到字符串就是给一堆字符两边加引号 可以是单引号 也可以是双引号 这样游乐场就知道 这个不是一个名字 而是一个字符串 字符串可以用...编辑 py 文件 我想要编辑一个完整的 python 文件保存好之后再执行 那就要先退出解释 #退出解释 quit() 回到 shell 环境 ​ 编辑 新建 py 文件 退出 python3 的...扩展名可以让用户知道 这个文件可以用python3执行 ​ 编辑 vi 和 oeasy.py 之间个空格 表示用 vi 这个命令打开 oeasy.py 进入 vi 然后进入了 vi 的界面了...进入底行命令模式 按 : 键进入命令模式 注意用的是左手小指和右手小指配合 左手小指shift 右手小指; 按下就从正常模式切换到了命令模式 再观察左下角 ​ 编辑 出现: 可执行命令了...结果对比 按↑可以重复上一条命令 和游乐场一样 还是NameError 不认识pront这个name 说明python程序和python游乐场是相通的 本来就是一个程序 不过还是一点小区别的 ​

    88430

    运行js文件,会弹出一个python解释的界面,怎么解决呢?

    一、前言 前几天在Python白银交流群【菜】问了一个Python环境配置的问题,一起来看看吧。...问题如下: 问题:下载安装nodejs,然后在pycharm专业版里面也下载了nodejs的插件,配置好运行路径后,运行js文件,会弹出一个python解释的界面,怎么解决呢?...二、实现过程 这里【猫药师Kelly】给了一个指导:首先要进行python环境配置了,粉丝反馈配置了环境,而且之前是社区版,现在是换成了专业版。...后来【瑜亮老师】提示本地也需要安装 nodejs的,粉丝都有安装,最后的话,还是得回到解释配置的问题上来。 顺利地解决了粉丝的问题。 三、总结 大家好,我是皮皮。...这篇文章主要盘点了一个Python环境配置的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

    12510

    011_编程好玩在哪

    编写 py 文件 回忆上次内容 回忆上次内容 vi oeasy.py 用 vi 编辑 oeasy.py 编辑好了之后 i 进 插入模式 录入 esc 退回 正常模式 :w 进入 底行命令模式...退出vi 按下 : 再次进入 底行命令模式 输入quit quit 退出 退出vi 回车之后 退出vi 回到shell shell 是 外面 整体的 系统环境 vipython...都是 shell中的具体应用 vi 是 文本编辑 python3 是 游乐场 py程序解释 地图 下面的 是 三者切换的地图 这张图 也可以 拍摄下来 反复查 oeasy.py...运行 py 文件 python3 既是我们的 IDLE(游乐场) 也是 py文件的 解释 oeasy.py 是 python3解释 执行的参数 意思是 用python3 来 解释执行 oeasy.py...恭喜 你第一个程序 用的就是 linux系统 vim编辑 python程序 集齐3大神器!!! IDE 选择 为什么 不用图形用户界面(GUI)的方式 学习编程 呢?

    7410

    通过一个例子,说明Python的责任链设计模式什么优缺点

    责任链设计模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许将一个请求沿着处理者链进行传递,直到一个处理者处理它为止。...在Python中,这种模式可以通过多种方式实现,通常涉及到一系列对象,每个对象都包含对另一个对象的引用。当一个对象不能处理请求时,它会将请求传递给链中的下一个对象,依此类推。...举例说明假设我们一个审批系统,员工提交报销单据后,需要经过多个级别的经理审批。...def can_handle(self, request): # 定义哪些请求可以被当前处理处理 pass def process(self, request):...过度使用:如果不当使用,责任链模式可能会使系统设计变得复杂。责任链设计模式适用于请求的处理者不固定,或者请求的处理者可能动态变化的情况。通过合理使用,它可以提高系统的模块化和灵活性。

    11810

    python0012_程序写错了怎么办

    运行python文件_报错处理_NameError 回忆上次内容 回忆 上次内容 vi oeasy.py 用 vi 编辑 oeasy.pycat oeasy.py 用 cat 查看 oeasy.pypython3...oeasy.py 用 python3 运行 oeasy.py添加图片注释,不超过 140 字(可选)空格之前的 是 命令发出绿光可以执行空格之后的 是 命令的参数命令执行的 目标对象如果 程序写错了...重新编辑 先输入vi oeasy.py 重新编辑 oeasy.py文件如果上次写的 没了 就 重新输入用i 进入插入模式添加图片注释,不超过 140 字(可选)把oeasy.py修改成 上图的样子保存并退出...解释python游乐场 是相通的本来 就是 同一个程序嘛不过 还是 一点小区别的 你能发现吗?...新开终端 在桌面 再双击 终端图标又新打开 一个终端添加图片注释,不超过 140 字(可选)键入 vi oeasy.py回车打开了同一个文件 vim 应用程序 报了一个错误<span style

    8510

    使用 Python 来创建一个基本的命令行密码管理

    当谈到实战 Python 编程时,很多有趣和实用的项目可以尝试。在本文中,我将介绍一个简单但有趣的项目,让我们一起创建一个基于 Python命令行密码管理。...密码管理项目简介 密码管理一个用于安全存储和管理各种网站和服务的用户名和密码的工具。我们将使用 Python 来创建一个基本的命令行密码管理,它将允许用户添加、查看和删除存储的密码。...所需技能和工具 在开始之前,确保你已经安装了 Python,并且具备以下知识和工具: 基本的 Python 编程知识。 命令行界面(终端)的使用经验。...# 调用删除密码函数 delete_password() 总结 这个简单的密码管理项目让你实践了 Python 编程的基础知识,包括文件操作和字典的使用。...密码管理一个非常实用的工具,用于保护你的在线帐户安全,因此你可以继续改进和扩展它。希望这个项目对你来说是一个有趣的起点,帮助你进一步学习 Python 编程。

    33640

    RBash - 受限的Bash绕过

    他将绕过rbash的操作分为了6个部分 第一个是使用Linux现有的软件,例如vi或者ed这类编辑,来执行一个shell 第二个是使用一种语言来执行命令,返回一个无限制的shell,例如使用 python...的os库执行 /bin/bash 第三个是使用系统命令或者php之类的,反弹一个系统shell到你的攻击机上 第四个是利用系统中的二进制文件来进行绕过,这里给出的文件 more less man 第五个是...,利用expect来绕过 第六个是,通过ssh来绕过rbash的限制 编辑绕过rbash vi编辑命令行中,输入 vi,在末行模式中,输入 :setshell=/bin/bash ?...这里就直接将shell设置为/bin/bash 接着在执行命令 shell就好了 ? 然后就有一个无限制的shell了 ? ed编辑 ? 使用编程语言绕过rbash python ? perl ?...然后末行模式输入 !'sh' ? ?

    5.2K30
    领券