私はAquamacsを使っています。 <tab>
、実際のタブキー、TAB
を区別することができます。これはC-i
を入力することから来ています。 C-i
を永久的に'next-line
にバインドしたいです。これはそのために機能します。
(global-set-key (kbd "TAB") 'next-line)
しかし、モードマップをマップしますタブを自動完全な動作で、または何でも、私は私の次の行機能を失います。私は自分のバインドを上書きターミナル - ローカルマップに置くことができましたが、モードマップを再マップしたいと思います<tab>
してください。モードがタブに割り当てる関数を使用できます。
私は私が使用するすべてのモードのタブを手動で再バインドすることができますが、C-i
をめちゃくちゃにすることなくすべてのTAB
マッピングをタブキーにリダイレクトする簡単な方法があることを願っています。
それは少しトリッキーですが、可能です。この正確な状況のために私がすることは、マイナーモード、すなわちgvol-mode
を作成してからバインドされます。 C-iprevious-line
(またはあなたが望むものは何でも)に。それから私はバインドします <tab> 以下の機能に。
(defun gvol-indent-for-tab-command ()
"This is to fix `indent-for-tab-command' for `gvol-mode'.
It runs [tab] or C-i with `gvol-mode' nil because `gvol-mode'
binds C-i to a different command. Ideally this should take into
account window system so that it can DTRT in a terminal (whatever
the right thing is)."
(interactive)
(let* ((gvol-mode nil)
(command (or (key-binding [tab])
(key-binding "\C-i"))))
;; This is to satisfy `python-indent-line' which checks
;; `this-command' to cycle
(setq this-command 'indent-for-tab-command)
;; Make people think this was called with C-i. This allows
;; `self-insert-command' to work
(setq last-command-event 9)
(call-interactively command)))
それを少し説明するには、gvol-mode
をバインドさせてnil
を_ $ var] _にしてください。したがって、それは拘束力を見つけるでしょう <tab> また C-i マイナーモードが点灯していない場合、それは整っています。次に、いくつかの機能が機能するためには、this-command
をindent-for-tab-command
に設定する必要があります。また、入力したかのように見えます C-i これはyasnippet-mode
iircを使って動作させることができます。