Wenn ich laufe #'helm-find-files
und auf ein Verzeichnis <ret>
zeige , führt das Drücken von zum Öffnen dieses Verzeichnisses im dired-Modus. Man muss drücken C-j
, um das Verzeichnis in Helm aufzurufen.
Ich hätte gerne so <RET>
gehandelt wie C-j
hier, aber nicht unbedingt überall anders. Ich habe nachgesehen und bin C-j
gebunden an #'helm-maybe-exit-minibuffer
, wohingegen <RET>
gebunden an #'helm-execute-persistent-action
. Die Bindung <RET>
an #'helm-maybe-exit-minibuffer
funktioniert in diesem Fall, bricht jedoch andere Fälle ab: Beispielsweise wird der Helm automatisch vervollständigt describe-function
.
Wie kann ich das <RET>
Öffnen dieses Verzeichnisses in Helm veranlassen , wenn ich Helm verwende, um eine Datei zu finden ?
key-bindings
helm
zck
quelle
quelle
ido-mode
, dass durch Drücken von<RET>
den Ordner ausgewählt wird, in dem sich Dateien befinden. Ich denke, dies ist das beständigste Verhalten beim Versuch, eine Datei zu finden - was Sie tun möchten, wenn Sie festgestellt haben, dass die Datei geöffnet ist; Was Sie tun möchten, wenn Sie einen Ordner gefunden haben, ist, ihn zu durchsuchen, damit Sie die Datei finden können.<RET>
beide automatisch vervollständigt und ausgewählt . Sie müssen nicht drücken<tab>
, um den Dateinamen zu vervollständigen. Aber wir streiten uns über Präferenzen - ich möchte nur "eingeben", um "das Ding am Punkt auswählen" zu bedeuten. Und das heißt für mich nicht "offen". Wenn ich in einer Shell wäre, würde ich ein anderes Verhalten erwarten.Antworten:
Ich habe auch verwendet
ido-mode
eine Menge und trainiert meine Muskelgedächtnis :) Ich denke , derido
Stil ist intuitiver als derhelm
Ansatz. Ich suche nach Dingen (tippe einige Zeichen ein) und gebe den Suchbefehl (TrefferRET
) ein, genau wie die Such- / Adressleiste meines Webbrowsers. Wenn es sich bei der Auswahl um ein Verzeichnis handelt, gebe ich dieses Verzeichnis ein und beginne erneut, in diesem Verzeichnis zu suchen. Das erscheint mir natürlich, deshalb habe ich einen kleinen Rat geschrieben, umhelm-execute-persistent-action
diesen Mechaniker zu zwingen.Ich habe auch den
backspace
Schlüssel etwas optimiert . Wenn ich etwas eingebe und korrigieren möchte, drücke ich die Rücktaste. Dies löscht ein Zeichen. Wenn ich mich am Anfang des Verzeichnisses befinde und erneut die Rücktaste drücke, navigiere ich eine Ebene nach oben. Dies beschleunigt die Navigation erheblich!Um die nutzlos zu entfernen
.
und..
gleich am Anfang, können Sie es zum hinzufügenhelm-boring-file-regexp-list
Konfigurationsvariable.quelle
find-file
. Und das.
und..
ist nicht wirklich nutzlos, wenn Sie plötzlich Dired im aktuellen oder übergeordneten Verzeichnis öffnen möchten. Und ich finde, dasC-l
ist schneller als Drückenbackspace
.(kbd "<return>")
? Es scheint ein wenig sauberer zu sein, wenn Sie die Funktion helm-execute-persistent-action direkt in der neuen Funktion aufrufen.Symbol's value as variable is void: helm-find-files-map
. Als ich legte(helm-mode 1)
nach(require 'helm)
, erhalte ich keinen solchen Fehler, aber es funktioniert auch nicht. Irgendeine Idee, was mir fehlen könnte? Hier ist meine komplette init.el: pastebin.com/drFZsDxW Emacs Version 24.4.1 (i686-pc-mingw32)define-key
wenn ich denC-h k RET
Find-File-Minibuffer anprobiere, wird er immer nochhelm-confirm-and-exit-minibuffer
als gebunden angezeigt .Ich kann die Antwort von Fu86 aufgrund eines Vertreters nicht kommentieren, aber ich mache mir keine Sorgen (sorry, wenn dies kein normales Protokoll ist). Ich habe eine Stornofunktion mit seiner Antwort wegen "Helm-Find-Files-Map". Es hat bei mir funktioniert, stattdessen die "Steuerkarten" -Tastenkarte zu verwenden. Bisher keine Konflikte und es ist das Verhalten, das ich gesucht habe.
... (define-key helm-map (kbd "<return>") 'helm-execute-persistent-action) ...
quelle
Ich konnte die Antwort von @ Fu86 nicht zur Arbeit bringen, aber das Folgende funktionierte für mich:
Siehe auch: /programming/27652371/how-can-i-change-emacs-helm-find-file-default-action-on-directory-to-be-go-insid
Bearbeiten
Meine Lösung funktioniert in helm-20141112.946, aber in helm-20160211.934 funktioniert es nicht und @ Fu86 answer ist die Lösung
quelle