2

emacsでモードを終了して前のモードに戻るためのキーバインドはありますか? たとえば、次のコマンドを使用して行番号モードに入ったとします。

Alt+x linum-mode

このモードをすばやく無効にして、以前のモードに戻すにはどうすればよいですか (同じコマンドを再度使用しないでください)。

4

4 に答える 4

3

同じコマンドをもう一度使用したくないのはなぜですか?

M-xM-pRET

これほど簡単なことはありません。

編集:そのシーケンスを繰り返しM-pて、コマンド履歴をさらに遡ることができ、コマンド履歴を で検索M-xC-rできます。

また、マイナー モードを無効にしても、「以前のモードに戻る」わけではありません。同時にすべてアクティブになっている (多くの) マイナー モードの 1 つを無効にしているだけです。

接線的には、「以前のモードに戻る」という概念はメジャー モードに適用できます (特定のバッファーにはアクティブなメジャー モードが 1 つしかないため) が、厳密に言えば、メジャー モードを「無効にする」という概念はありません --変更したいものを「有効にする」だけです。つまり、2 つの主要なモードを「切り替える」には、それらを交互に呼び出す必要があります。

于 2013-10-19T21:39:56.780 に答える
1

同じコマンドを繰り返すだけです: M-x linum-mode. このようなマイナー モード コマンドはトグルです: オン/オフ。

于 2013-10-19T21:40:59.977 に答える
0

解決策はパスkill-ring-saveワークに従うかもしれません:現在のモードリストとしてアクティブなモードを以前のモードリングに保存します。

そのために必要なコードは、基本的に 内describe-modeに存在します。「有効なマイナー モード」から上を参照してください。それぞれのメジャー モードに対応しています。

次に、フックはそのthis-command名前に「-mode」が含まれているかどうかを確認する必要があります。はいの場合、現在のモード リストが以前のモード リングの車と等しいかどうかを確認します。そうでない場合は、新しい設定を追加します。

最後に、previous-modes-ring から選択したリストに従って現在のモードを設定するコマンドを記述します。

于 2013-10-20T14:15:16.600 に答える