ansi-term でうまく動作しないパッケージ (悪) があります。term-modeがアクティブなときにemacsでevil-modeを無効にしようとしています。次のコマンドを使用してそうしようとしています
(add-hook 'term-mode-hook (lambda() (evil-mode -1)) )
ただし、これにより、ansi-term を開くと、term-mode を除くすべてのモードで悪モードが何らかの形で無効になります。どんな助けでも大歓迎です。
コードをざっと見てみると、evil-mode
これはグローバル マイナー モードであり、すべてのバッファに影響します。
関数turn-on-evil-mode
とは、現在のバッファーに対してのみ Evil を有効または無効にするために提供されています (これらの関数は、バッファーごとのモードであるturn-off-evil-mode
enable または disableです)。ただし、グローバル マイナー モードは、モード フックが実行された後に有効になります (グローバル マイナー モードを自動的に無効にするを参照)。特定のメジャー モードの場合) したがって、グローバル モードに、特定の状況でそれ自体を無効にするサポートが組み込まれているかどうかを確認することをお勧めします。evil-local-mode
悪モードの場合、さまざまな「状態」オプションがこれを容易にしているように見えます。「Emacs 状態」( "emacs"
) はすべての悪のキー バインディングを無効(evil-set-initial-state MODE STATE)
にし、指定されたメジャー モードのデフォルト状態を構成できるようにします。
したがって、非互換性がキーバインディングよりも深く実行されない限り、Evil ライブラリをロードした後、次のようにするとうまくいくと思います。
(evil-set-initial-state 'term-mode "emacs")
この潜在的なバグを再現できたことに驚きました。
C-z
解決策は、バッファという用語を使用することです。邪悪なモードから抜け出すだけです。