我正在使用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,一些输出到文档?
答案 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指出的(谢谢!)