Я играл с вариацией этого - я хочу, чтобы одно сочетание клавиш запускало инструмент, который приведёт в порядок Python, CSS или HTML, в зависимости от типа файла. Но если вы сопоставите ctrl s с внешним инструментом, который запускает lint, если тип файла совпадает, не делает, если нет, и сохраняет в конце, несмотря ни на что. Примерно так:
if [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/x-python" ]; then
# Run lint
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/html" ]; then
# Run tidy
elif [ $GEDIT_CURRENT_DOCUMENT_TYPE = "text/css" ]; then
# run csstidy
else
cat -
echo "Type is:" $GEDIT_CURRENT_DOCUMENT_TYPE > /dev/stderr
echo "so I'm not doing a thing." > /dev/stderr
fi
NB. Если ваш внешний инструмент настроен на замену вашего документа при запуске, вы хотите добавить cat -
, чтобы прочитать оригинал обратно в gedit, чтобы вы не просто забили его. Если все ваши выходы идут на панель Shell Output, вам это не понадобится.