gud-mode
gdbのcomplete
コマンドを呼び出して、可能な完了のリストを取得します。この例では、返されるリストには次のものが含まれます(ファイルシステムに「/ mn」で始まるディレクトリが1つしかない場合)。
(run /mnt)
返されたリストの各エントリの最初の部分が切り取られるため、残りの完全なリストは次のようになります。
(/mnt)
ご覧のとおり、gdbの complete
コマンドによって返されるこのエントリには、末尾にスラッシュがありません。これを修正する唯一の希望は、gdbのcomplete
コマンドにパッチを適用するか、Emacsにパッチを適用gud-mode
することです。これは、完成した単語がディレクトリであることを何らかの方法で検出し、スラッシュを追加する(そしてスペース文字の自動挿入を抑制する)ことです。
ただし、もちろん、キーを別の完了関数にバインドすることもできます。これTABは、デフォルトにフォールバックする可能性がありますが、必要に応じてgud-gdb-complete-command
別の種類の完了を実行する可能性があります。
このために、.emacsファイルに以下を入れてみてください:
(defun my-gud-gdb-setup ()
(define-key (current-local-map) "\t" 'my-gud-gdb-complete-command))
(defun my-gud-gdb-complete-command (&optional COMMAND PREDICATE FLAGS)
(interactive)
(unless (comint-dynamic-complete-filename)
(gud-gdb-complete-command COMMAND PREDICATE FLAGS)))
(add-hook 'gdb-mode-hook 'my-gud-gdb-setup)
このコードは、新しい関数をキーにバインドします。このTABキーは、最初に現在の単語をファイルとして展開しようとしますが、失敗した場合にのみデフォルトを呼び出しますgud-gdb-complete-command
。