emacsでモードを終了して前のモードに戻るためのキーバインドはありますか? たとえば、次のコマンドを使用して行番号モードに入ったとします。
Alt+x linum-mode
このモードをすばやく無効にして、以前のモードに戻すにはどうすればよいですか (同じコマンドを再度使用しないでください)。
emacsでモードを終了して前のモードに戻るためのキーバインドはありますか? たとえば、次のコマンドを使用して行番号モードに入ったとします。
Alt+x linum-mode
このモードをすばやく無効にして、以前のモードに戻すにはどうすればよいですか (同じコマンドを再度使用しないでください)。
同じコマンドをもう一度使用したくないのはなぜですか?
M-xM-pRET
これほど簡単なことはありません。
編集:そのシーケンスを繰り返しM-pて、コマンド履歴をさらに遡ることができ、コマンド履歴を で検索M-xC-rできます。
また、マイナー モードを無効にしても、「以前のモードに戻る」わけではありません。同時にすべてアクティブになっている (多くの) マイナー モードの 1 つを無効にしているだけです。
接線的には、「以前のモードに戻る」という概念はメジャー モードに適用できます (特定のバッファーにはアクティブなメジャー モードが 1 つしかないため) が、厳密に言えば、メジャー モードを「無効にする」という概念はありません --変更したいものを「有効にする」だけです。つまり、2 つの主要なモードを「切り替える」には、それらを交互に呼び出す必要があります。
同じコマンドを繰り返すだけです: M-x linum-mode
. このようなマイナー モード コマンドはトグルです: オン/オフ。
解決策はパスkill-ring-save
ワークに従うかもしれません:現在のモードリストとしてアクティブなモードを以前のモードリングに保存します。
そのために必要なコードは、基本的に 内describe-mode
に存在します。「有効なマイナー モード」から上を参照してください。それぞれのメジャー モードに対応しています。
次に、フックはそのthis-command
名前に「-mode」が含まれているかどうかを確認する必要があります。はいの場合、現在のモード リストが以前のモード リングの車と等しいかどうかを確認します。そうでない場合は、新しい設定を追加します。
最後に、previous-modes-ring から選択したリストに従って現在のモードを設定するコマンドを記述します。