1

これは単純であるべきだと思いますが、それは私を夢中にさせています. indent-or-expand再マップしたい関数がありますが、それを機能さtabせることができません (Emacs v24、OS X)。Emacs 自体から得られた唯一のヘルプは次のとおりです。

エラー "キー TAB をバインドするには、[TAB] ではなく \"\\t\" を使用してください"

実行すると、関数が明らかに (それが何であれ)(global-set-key [\"\\t\"] 'indent-or-expand)にバインドされ、 、、、および で<"\t">試したすべての組み合わせが失敗しました。\"[]()

私は関数をにバインドすることができましたtが...

4

2 に答える 2

3

他の人があなたに言ったことに加えて:

  1. あなたが引用したEmacsエラーメッセージは、「\ t」を使用するように指示しました。それを使用すれば、問題ありません。

    (global-set-key "\t" 'indent-or-expand)

  2. TABそれは一つのことで<tab>あり、別のことかもしれないことにも注意してください. TabIOW、物理キーボードのキーが実際にEmacsに送信する コードによって異なります。TABはタブ文字であり、ACSCII 制御文字C-i、つまりControl+と同じで、10 進整i数値 9 を持ちます。 <tab>(Emacs では) は疑似ファンクション キーです。(ほとんどのTAB場合、必要なものです。使用C-h kして、物理Tabキーが何をするかを確認してください。)

于 2013-08-15T18:24:54.987 に答える
2

kbd次の関数を使用します。

(global-set-key (kbd "TAB") ...)
于 2013-08-15T18:10:26.780 に答える