2014-05-22 9 views
11

Ich versuche, etwas wie Nerd Tree in Emacs zu bekommen und Nav, die wie die grundlegenden Emacs-Datei-Navigator ist, und es passt mir.Deaktivierung des bösen Modus für Nav in Emacs? Oder irgendwelche schreibgeschützten Puffer?

Das Problem ist, wenn ich Nav öffnen und wechseln Sie in seinen Puffer, übel Modus ist immer noch auf, und ich habe drücken C-z, wenn ich irgendwelche Nav spezifische Befehle (z . für nav-toggle-hidden-files) verwenden möchten. Und es ärgert mich.

Es ist schon ein paar Stunden Ich versuche, dieses Problem zu beheben, indem

Einfügen
(require 'evil) 
    (evil-mode 0) 

überall in den Nav-Dateien, aber offensichtlich ist es mache ich falsch .. Und ich bin mir ziemlich sicher Es wird wieder passieren, während andere Plugins verwendet werden. Wie mache ich das?

+0

+1 auf die Frage. Dies ist einer der Gründe, warum mein Übergang von vim-> emacs + evil so felsig war ... ich werde mich erst an eine neue Projektverzeichnisstruktur gewöhnen, bevor ich es mir mit Helm/Ido einprägen kann. – joefromct

Antwort

8

Sie möchten nav-mode Puffer im Emacs-Zustand statt im normalen Zustand des Bösen öffnen. Ich weiß nicht, was nav-mode ist eigentlich genannt, aber die folgende tun, den Namen des entsprechend Modus einstellen:

(add-to-list 'evil-emacs-state-modes 'nav-mode)

+1

Danke, es funktionierte aus der Box! –

+1

Ich bin froh zu helfen. Übrigens, werfen Sie einen Blick auf diesen Thread für einige zusätzliche Optionen neben 'nav-Modus': http://superuser.com/questions/695256/file-management-in-emacs – Dan

+1

Nizza!Ich werde einen Blick darauf werfen, denn es nervt mich natürlich ein bisschen, den bösen Modus beim Navigieren durch Dateien zu verlassen: P Ich bin so eine Prinzessin, wenn es um meinen Editor geht haha ​​ –

4

Was Sie brauchen, ist "Haken", der Emacs darüber informiert, unter welchen Bedingungen ein bestimmter Modus aktiv sein soll oder nicht.

Ich benutze keine evil oder nav Modi, aber Sie wollen etwas ganz ähnlich auf die folgende Zeile in der .emacs:

(add-hook 'nav-mode-hook 'disable-evil-mode) 

Dieser Befehl teilt Emacs, dass, wenn der Modus (deren Haken aufgeführt sind in nav-mode-hook) ist aktiv, führen Sie die Funktion disable-evil-mode aus. Sie müssen wahrscheinlich entweder den Namen der Hook-Liste oder den Namen der Callback-Funktion entsprechend der Implementierung von nav-mode und evil-mode ändern.

nav-mode-hook ist meine Vermutung, was nav-mode seine Hook-Liste aufrufen wird. Wenn es nicht funktioniert, sehen Sie in der Dokumentation nav-mode nach, wie Sie Hooks hinzufügen können.

disable-evil-mode ist die Funktion, die Sie aufrufen, um den bösen Modus zu deaktivieren. Überprüfen Sie die Dokumentation des bösartigen Modus auf den tatsächlichen Funktionsnamen.

+0

Danke für Ihre Informationen, es hat mir sicherlich geholfen zu verstehen, wie Emacs ein bisschen mehr funktioniert. –

8

Als here auf den bösen Wiki beschrieben möchten Sie vielleicht übel Set- auszuchecken Ausgangszustand.

Hier ist der relevante Teil meiner Emacs config:

(evil-set-initial-state 'ibuffer-mode 'normal) 
(evil-set-initial-state 'bookmark-bmenu-mode 'normal) 
(evil-set-initial-state 'dired-mode 'emacs) 
(evil-set-initial-state 'sunrise-mode 'emacs) 

Hat lindern nicht die Tatsache, dass ich sicher, aber vim Tastenbelegungen in diesen Modi eines Tages haben möchte ...