2

最後にアクセスした 2 つのバッファー (現在のバッファーと前のバッファー) を切り替えて、コマンドを にバインドしたいと思いM-bます。

(switch-to-buffer (other-buffer))理論的にはこれを達成する必要がありますが、次のコードを my に追加し.emacsても効果はありません。

(defun my-switch-to-other-buffer ()
  "Switch to other buffer"
  (interactive)
  (switch-to-buffer (other-buffer)))

(global-set-key [M-b] 'my-switch-to-other-buffer)

上記のコードの修正またはこのタスクを達成するためのより良い方法を提案してください。

4

3 に答える 3

4

あなたのコードはかなりよく見え、私のemacsセッションで動作するようです。

あなたは[M-b]構文について確信がありますか?

これが問題である場合は、kbd代わりにこの関数を使用して、キーの組み合わせの正しい綴り方を決定することをお勧めします。

(global-set-key (kbd "M-b") 'my-switch-to-other-buffer)

?\C-#whatever を正しい名前にする方法を忘れがちなので、私はいつもこの方法でキーバインディングを定義しています。

通常バインドされkbdた によってエコーされるのと同じ構文を持つ文字列を受け入れるため、使用は非常に簡単です。decribe-keyC-h C-k

このようにしてC-h C-k、キーのラベルがどのように付けられているかわからない場合に備えて入力し、このコマンドの出力を への呼び出しに入れるだけkbdです。特に、それを正しく取得する方法が明らかでないように思われる場合はkbd、より複雑な名前(kbd "<backtab>")などでも機能することが非常に役立ちます。

于 2013-03-02T04:37:12.013 に答える
3

さて、まず第一に、M-b単語が逆になっているので再バインドを避けてください。デフォルトのバインドを維持し、それらを学習すると、設定が利用できないとき、たとえばリモートでEmacsを使用できるようになります。ボックスまたはその他のなじみのないサイト。(最近、その可能性はおそらく減少していると思います。)もう1つのより適切な理由は、bash/のデフォルトのキーバインディングでreadlineあり、私が言及するよりも多くの場所で利用できることです。

Windowsボックスを使用している場合は、Windowsキーをにバインドするhypersuper、デフォルトを消去せずにさらに多くのキーバインドを取得できるようにすることをお勧めします。

Macの場合は、同じことを行いますCmd(ただし、すでにバインドされてsuperおり、Mac固有のキーが既にバインドされています)。

最後に、多くの人が使用Caps-Lockする置換に使用しない場合でも、常に再マップします。これCtrlは、Emacsで再利用してより頻繁に使用できるもう1つの修飾子です(実際には、Caps-Lockを使用する必要はありませんM-l。+スタイルのショートカットとして利用できる別の100個のバインディングを簡単に入手できM-uますM-chypersupermodifierkey

また、大変な手間がかかることは承知していますがC-x b enter、前のバッファに切り替えます。

于 2013-03-02T20:21:38.353 に答える