0

私は gedit を使用しており、それを実際の IDE に取り込もうとしています。私が望むのは、ファイルの種類が「text/html」のときにツールを実行し、ファイルの種類が「text/x-python」のときctrlshift|にツールを実行するようにマップすることです。tidyautopep8

結局のところ (これはバグだと思います)、gedit は指定されたファイルタイプを気にしません。キー コンボ セットがある場合、ファイル タイプが一致するかどうかに関係なく、ツールが実行されます。関連しますが、バグではないかもしれませんが、キーボード ショートカットを 1 つの外部ツールにしか設定できません。

そこで、ドキュメントが Python で、ドキュメントが HTML の場合にctrlshift|実行される外部ツールを 1 つ作成しました。autopep8tidy

#!/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

その最後から 2 番目の行は、私の心を壊しているものです。その最後のアクションを定義しないとelse、既存のドキュメントが削除されるだけです。実行ctrlshift|して、ファイルの種類が説明したものではない場合、ファイルの種類をシェル出力に報告し、ドキュメントの内容を次のように置き換えないようにしたいと思います

これは application/x-shellscript のようですが、整理する方法がわかりません。

一部の出力をシェルに書き込み、一部をドキュメントに書き込むようにツールを作成する方法はありますか?

4

1 に答える 1

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 によって指摘されました (ありがとう!)

于 2014-02-17T17:48:03.177 に答える