繁体   English   中英

GEdit中的Python运行快捷方式

[英]Python run shortcut in GEdit

我想要GEdit的快捷键,当我按F5键时它将运行当前打开的.py文件。 我有一个脚本可以通过外部“终端”窗口执行此操作,但是在创建使用内部输出窗口的版本(我想是Shell Output)时遇到了更多的麻烦,因为找不到合适的方法来获取pyenv 〜。/ bashrc文件中的详细信息。 必须使用pyenv。

这是我通过GEdit的外部工具插件所拥有的:


未解决:内壳输出方法:

我想访问〜。/ bashrc中的pyenv设置,因此我尝试了以下“外部工具”脚本:

#!/bin/bash
set +m
bash -i python $GEDIT_DOCUMENTS_PATH

这有效(由于-i),但是它给了我“重击:此shell中没有作业控制”的警告。 运行set + m应该摆脱此消息,但事实并非如此。

因此,我将〜/ .bashrc末尾的相关内容移至了该脚本,这根本不理想:

#!/bin/bash

export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
  export PATH="${PYENV_ROOT}/bin:${PATH}"
  eval "$(pyenv init -)"
fi

export PYENV_VERSION=3.3.4
export LD_LIBRARY_PATH=~/.pyenv/versions/3.3.4/lib/python3.3/site-packages/PySide-1.2.1-py3.3.egg/PySide/
python $GEDIT_CURRENT_DOCUMENT_NAME

问题:最后一块很可怕。 它只是从〜/ .bashrc复制而来的,甚至还必须包含〜/ .bashrc应该处理的PySide数据。 同样,由于某种原因,使用此方法总是输出.py文件的第一行(例如import sys )。 显然,使用此方法无法提供input(),并且输出到GEdit的嵌入式终端似乎是不可能的。 另外,即使使用set + m或在子shell中运行命令,我也无法摆脱“ Done”消息。


求助:外部终端窗口方法:

#!/bin/sh
gnome-terminal -x $SHELL -ic "python $GEDIT_CURRENT_DOCUMENT_NAME; printf \"\nPress any key to continue.\"; read -n 1 -s"

或者,定义一个名为“等待”的终端配置文件,该配置文件设置“标题”和“命令”->“终端退出时”:保持终端处于打开状态,然后执行以下操作:

#!/bin/sh
gnome-terminal --profile=Wait -x $SHELL -ic "python $GEDIT_CURRENT_DOCUMENT_NAME; printf \"\nPress any key to continue.\""

但是,这会给出“状态0”消息,因此另一种方法更好。 两种方法都使用交互式外壳程序来访问〜/ .bashrc。

在GEdit中添加自定义快捷键和功能的步骤:

1)打开管理外部工具。

2)添加工具

3)给工具起一个名字。

4)输入以下代码:

#!/bin/sh
python $GEDIT_DOCUMENTS_PATH

5)通过直接在框中输入功能键F5,将快捷键设置为F5。

要运行当前文件,您应该先保存它。 现在,您可以在通过F5或手动单击命令来运行命令时在“ Shell Output窗口中看到输出。

当然,您可以对其进行修改以满足自己的需求。

我想要一样。 阅读您的帖子的答案和评论后,我尝试了一下。

要仅运行当前打开的文档,请在“工具”>“管理外部工具”下按“ +”打开(我在Ubuntu 14.04.4 LTS下使用gedit)以添加新工具:并输入Shell脚本的屏幕:

#!/bin/sh
# run the current document in python
python $GEDIT_CURRENT_DOCUMENT_PATH

$ GEDIT_DOCUMENTS_PATH会将其应用于文档当前文件夹中的所有文件夹-但是您只想运行当前文档,不是吗? 还有其他建议:我不明白为什么要使它变得不必要地复杂以及为什么要再次询问-因为在您按下键的那一刻就希望该东西被执行,不是吗?

我自己尝试过,它运行完美。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM