我正在使用gedit並試圖將它摔成真正的IDE。我想要的是地圖ctrlshift|在文件類型爲「text/html」時運行我的tidy
工具,當文件類型爲「text/x-python」時運行我的autopep8
工具。我可以寫一些輸出到當前文檔和一些shell輸出?
事實證明(我認爲這是一個bug),gedit並不關心你指定的文件類型。如果你有一個組合鍵,它將運行一個工具,無論文件類型是否匹配。相關,但也許不是一個錯誤,我只能將鍵盤快捷鍵設置爲一個外部工具。
所以我寫了上CTRL轉變運行一個外部工具|並運行autopep8
如果該文件是Python和tidy
如果文檔是HTML:
#!/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|和文件類型是不是一個,我已經佔了,我想它的文件類型報告給外殼輸出,不與
這似乎是替換文件內容的應用程序/ x-shellscript我不知道如何整理 那。
有沒有辦法寫我的工具,以便我寫一些輸出到shell和一些文件?
我假設你可能只是想'cat「$ GEDIT_CURRENT_DOCUMENT_NAME」'用它自己替換當前文檔。你有沒有嘗試將消息寫入stderr(即'echo「這似乎是...」>&2')? –
@MarkkuK。謝謝!但爲什麼把你的答案放在評論中?我無法接受它。 – Amanda