我可以将一些输出写入当前文档,一些输出到shell输出吗?

时间:2014-02-17 17:23:30

标签: bash gedit external-tools

我正在使用gedit并试图将其与真正的IDE搏斗。我想要的是在文件类型为“text / html”时映射 ctrl shift | 来运行我的tidy工具当文件类型为“text / x-python”时,我的autopep8工具。

事实证明(我认为这是一个错误),gedit并不关心你指定的文件类型。如果你有一个键组合集,它将运行一个工具,无论文件类型是否匹配。相关,但也许不是一个错误,我只能将键盘快捷键设置为一个外部工具。

所以我编写了一个在 ctrl shift | 上运行的外部工具,如果文档是Python,则运行autopep8 { {1}}如果文档是HTML:

tidy

倒数第二行是令我心碎的。如果我没有为最后一个#!/bin/sh # [Gedit Tool] # Save-files=document # Shortcut=<Primary><Shift>bar # Output=replace-document # Name=Tidy by Filetype # Applicability=all # Input=document if [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/x-python" ]; then autopep8 - -v -a elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/html" ]; then #-i auto indents, -w 80 wrap at 80 chars, -c replace font tags w/CSS exec tidy -utf8 -i -w 80 -c "$GEDIT_CURRENT_DOCUMENT_NAME" elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/css" ]; then #TK CSS tidy else echo "This seems to be " $GEDIT_CURRENT_DOCUMENT_TYPE " I don't know how to tidy that." fi 定义任何操作,它只会删除我现有的文档。如果我运行 ctrl shift | 并且文件类型不是我所考虑的,我希望它能够报告shell输出的文件类型,而不是用

替换文档内容
  

这似乎是application / x-shellscript我不知道如何整理   这一点。

有没有办法编写我的工具,以便我将一些输出写入shell,一些输出到文档?

1 个答案:

答案 0 :(得分:0)

没有尝试使gedit更有用的经验,我确实找到了这个:https://wiki.gnome.org/Apps/Gedit/Plugins/ExternalTools?action=AttachFile&do=view&target=external-tools-manager-with-gedit-3.png

这里的关键构造是

echo "..." > /dev/stderr

如果mime类型不匹配,至少应该阻止你破坏你文件的内容,但是我不确定它会在哪里打印出来(希望某处理智)。

编辑(更完整的答案):

您还需要cat $GEDIT_CURRENT_DOCUMENT_NAME来替换文件内容。这是由@ markku-k指出的(谢谢!)