前の関連記事:linuxBean14.04(25)NetBeans8とLibreOffice5のインストール
linuxBean14.04(8)GeanyでLibreOfficeのPythonマクロをデバッグするでGeanyのビルドコマンドの設定を行ったのですが、「コマンドを実行」の欄に設定するとPython以外のファイルタイプでもメニューが変わりません。これは不便ですので変更することにしました。
ビルドコマンドの設定には「ファイルタイプ固有のコマンド」「独立したコマンド」「コマンドを実行」の3種類がある
Geanyのメニュー、ビルド→ビルドコマンドの設定。
ビルドコマンドの設定には「Pythonコマンド」(=ファイルタイプ固有のコマンド)、「独立したコマンド」、「コマンドを実行」の3種類があります。
「ファイルタイプ固有のコマンド」は開いているファイルタイプによって変化します。
pyファイルをを開いているときは「Pythonコマンド」、Makefileを開いているときは「Makeコマンド」、shファイルを開いているときは「Shコマンド」が表示されます。
それぞれ3つまで設定でき、各ファイルタイプごとに設定が保存されます。
「ファイルタイプ固有のコマンド」の1はツールバーのコンパイルボタン、2はビルドボタンがそれぞれ割り当てられています。
「独立したコマンド」と「コマンドを実行」はファイルタイプに関係なく表示されます。
「コマンドを実行」の1はツールバーの実行ボタンが割り当てられています。
「コマンドを実行」の部分はFiletype configurationを使えばファイルタイプごとにデフォルト設定が変更ができますが、デフォルトの設定をビルドコマンドの設定で上書きしたときはファイルタイプごとのデフォルト設定が無効になります。
デフォルト設定を行うと右端のリセットボタンをクリックするとデフォルト設定が灰色の文字色で入力されます。
[独立したコマンド」もデフォルト設定があるのでどこかで設定が変更できると思うのですが、どこを設定すればよいのかわかりませんでした。
ビルドコマンドの設定はプロジェクトのプロパティの一つなので、プロジェクトごとに別の設定にできます。
私の場合、Genayはファイルマネージャからソースファイルを右クリックして起動することが多く、そのときはすでに開いているプロジェクトでGeanyが起動します。
なので、プロジェクトを変更してビルドコマンドの設定を使い分けるという方法は考えないことにしました。
「ファイルタイプ固有のコマンド」「独立したコマンド」と「コマンドを実行」は出力先が異なる
ビルドコマンドの設定は、ツールバーのボタンも割り当てられるファイルタイプ固有のコマンド1と2を使ってpyファイルの場合は1に「実行」、2に「pudbでデバッグ」を設定しようと思いました。
ところが「コマンドを実行」に設定したコマンドをそのまま「ファイルタイプ固有のコマンド」に移すと動作が異なりました。
「コマンドを実行」にあるビルドコマンドはターミナルが起動して結果が表示されます。
「ファイルタイプ固有のコマンド」にあるビルドコマンドはGeanyの「コンパイラ」タブに結果が出力されました。
「独立したコマンド」でも同じ結果です。
linuxBean14.04(7)GeanyでLibreOfficeのPythonマクロ編集で作った「実行」は問題なく動作し、print()の結果もコンパイラタブに出力されます。(「コンパイル失敗」とでるときもありますが、スクリプトの動作は問題ありませんでした。)
ところがlinuxBean14.04(8)GeanyでLibreOfficeのPythonマクロをデバッグするで設定したpudbは動きません。
この解決法としてはビルドコマンドからTerminalをコマンド付で実行するということができます。
Terminalの起動は、編集→設定、ツール、の端末のコマンドを使いました。
x-terminal-emulator -e "%p/for_geany_pudb.sh "%p" "%d/%f""
これで「コマンドを実行」と同じ結果が得られました。
ただしVTEで実行する方法はわかりませんでした。
Filetype configurationにファイルタイプ固有のビルドコマンドを設定する
どの方法を選択しようか考えた結果、スクリプトの実行はコンパイルボタンに設定し、デバッグは実行ボタンに割り当てることにしました。
「ファイルタイプ固有のコマンド」の1に%p/for_geany.sh "%p" "%d/%f"を入れました。
これでツールバーのコンパイルボタンをクリックすれば実行されます。
結果はコンパイラタブに出力されます。
今度はFiletype configurationにファイルタイプごとのデフォルト設定をして、「コマンドを実行」に「実行」を設定します。
pyファイルの設定ファイルは/usr/share/geany/filetypes.pythonになります。
~/.config/geany/filedefsにあるfiletypes.READMEを読むと/usr/share/geanyのファイルを編集するときは~/.config/geany/filedefsに同名ファイルを置くと上書きされると書いてありますが、やってみるとデフォルト設定の変更はできませんでした。
ということでrootで/usr/share/geany/filetypes.pythonを編集しました。
(2017.4.27追記。Geany 1.30.1では/usr/share/geanyをみてもfiletype.xxxのファイルは存在せず、ツール→設定ファイル→ファイル種類の設定、をたどって作成できる~/.config/geany/filedefsにあるfiletype.xxxのファイルを編集すれば設定できました。)
# run_cmd=python "%f" run_cmd=%p/for_geany_pudb.sh "%p" "%d/%f"これでpyファイルのみの実行ボタンにこのコマンドを割り当てることができました。
「実行」というラベル名が二つできてしまうのが難点ですね。
デバッグの方のラベル名を変更したいのですが、ラベル名の変更だけでもデフォルト設定を上書きしてしまうのでできません。
どうしたものかと思って他の設定ファイルをみてみると、filetypes.latexに答えがありました。
[build-menu]を追記すると[build_settings]を上書きできるようです
# run_cmd=python "%f" [build-menu] EX_00_LB=pudbでデバッグ EX_00_CM=%p/for_geany_pudb.sh "%p" "%d/%f"忘れないよう66行目の元のコマンドをコメントアウトしておきます。
これでファイルタイプ設定ファイルでメニューのラベル名を変更できました。
「コマンドを実行」の項目はデフォルト設定ではない設定があるとそれが優先されてしまうので、それらは消しておかないといけません。
編集した/usr/share/geanyのファイル一覧linuxBean14.04(26)Geanyのビルドコマンドの設定 - p--q
参考にしたサイト
Geany
ファイルタイプ固有の設定方法。
0 件のコメント:
コメントを投稿