我正在使用 gedit 并试图将它变成一个真正的 IDE。我想要的是映射以在文件类型为“text/html”时ctrlshift|运行我的工具,而当文件类型为“text/x-python”时运行我的工具。tidy
autopep8
事实证明(我认为这是一个错误),gedit 并不关心您指定的文件类型。如果您有一个组合键,无论文件类型是否匹配,它都会运行一个工具。相关但可能不是错误,我只能将键盘快捷键设置为一个外部工具。
因此,我编写了一个外部工具,如果文档是 Python 并且文档是 HTML,则该工具可以运行ctrlshift|并运行:autopep8
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
倒数第二行让我心碎。如果我没有为最后一个定义任何操作,else
它只会删除我现有的文档。如果我运行ctrlshift|并且文件类型不是我考虑的类型,我希望它向 shell 输出报告文件类型,而不是将文档内容替换为
这似乎是 application/x-shellscript 我不知道如何整理。
有没有办法编写我的工具,以便我将一些输出写入 shell 并将一些输出写入文档?