如何像git一样从命令行程序调用文本编辑器?

菲亚特

例如,某些git命令git commit调用基于命令行的文本编辑器(例如vimnano,或其他),该文本编辑器预先填充了一些值,并且在用户保存并存在后,对保存的文件执行某些操作。

在Linux上,我应如何继续将此功能添加到类似Python的命令行程序中?


如果不使用Python,请不要停止给出答案,我将对通用的抽象答案或作为另一种语言的代码的答案感到非常满意。

驼鹿

解决方案将取决于您拥有的编辑器,可能在哪个环境变量中找到该编辑器,以及该编辑器是否使用任何命令行参数。

这是一个简单的解决方案,可在Windows上使用,而无需任何环境变量或编辑器的命令行参数。根据需要进行修改。

import subprocess
import os.path

def start_editor(editor,file_name):

    if not os.path.isfile(file_name): # If file doesn't exist, create it
        with open(file_name,'w'): 
            pass

    command_line=editor+' '+file_name # Add any desired command line args
    p = subprocess.Popen(command_line)
    p.wait()

file_name='test.txt' # Probably known from elsewhere
editor='notepad.exe' # Read from environment variable if desired

start_editor(editor,file_name)

with open(file_name,'r') as f: # Do something with the file, just an example here
    for line in f:
        print line

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何像Nautilus一样从命令行安装?

如何在OS X中从命令行打开Atom编辑器?

如何从终端/命令行调用VS代码编辑器

如何像其他编辑器选项卡一样在VSCode中打开浏览器

从命令行程序计算价格

如何像调用函数一样调用迭代器

如何将python脚本加载到内存中并像执行命令行一样执行它?

Git Tag,如何使编辑器像提交消息一样?

如何从命令行通过文本编辑器(如鼠标垫)进行打印?

如何创建一个像命令行参数一样命名的文件?

如何像此图中一样更改命令行标题?

如何从命令行运行程序?

如何从命令行或文本编辑器更改Atom设置?

Bash:从命令行程序中提取数据

从命令行设置“本地组策略编辑器”设置

在命令行中将ex用作文本编辑器时,如何使用“ itextESC”?

如何像Spatry一样缩短您的命令行提示符(bash)呢?

从命令行打开编辑器并获取输入

命令行程序推迟到默认文本编辑器

像流编辑器一样使用sed来使用打开的系统调用打开文件

哪些命令行文本编辑器可以为我提供Windows键导航和使用?

像bash一样,如何在zsh中的取消的命令行中显示插入符号-C?

像后台进程命令行一样从 Wildfly 运行 standalone.bat 吗?

哪个命令行文本编辑器与 Notepadd++、Gedit 或 Kate(或任何现代 CUA 样式编辑器)的键绑定最接近?

从命令行启动撇号降价编辑器

如何像常规 shell 命令一样在命令行中运行 GHCi

从命令行打开 K 菜单编辑器

从命令行使用编辑器打开文本文件

如何在 python tkinter 中像其他现代代码编辑器一样创建 minmap?