Po uruchomieniu #'helm-find-files
i przejściu do katalogu naciśnięcie <ret>
powoduje otwarcie tego katalogu w trybie dired. Trzeba nacisnąć, C-j
aby wejść do tego katalogu w Helm.
Chciałbym <RET>
działać tak C-j
jak tutaj, ale niekoniecznie wszędzie indziej. Sprawdziłem i jestem C-j
zobowiązany #'helm-maybe-exit-minibuffer
, ale jestem <RET>
zobowiązany #'helm-execute-persistent-action
. Wiązanie <RET>
do #'helm-maybe-exit-minibuffer
działa w tym przypadku, ale psuje inne przypadki: na przykład autouzupełnianie steru w describe-function
.
Tak więc, kiedy używasz Helma do znalezienia pliku, jak mogę naciskać <RET>
otworzyć ten katalog w Helmie?
key-bindings
helm
zck
źródło
źródło
ido-mode
, że naciśnięcie<RET>
wybiera folder, aby znaleźć pliki w nim zawarte. Myślę, że jest to najbardziej spójne zachowanie podczas próby znalezienia pliku - co chcesz zrobić, gdy znajdziesz plik, otwórz go; co chcesz zrobić, gdy znajdziesz folder, wejdź do niego, aby znaleźć plik.<RET>
zarówno autouzupełnianie , jak i zaznaczanie. Nie musisz naciskać,<tab>
aby zakończyć uzupełnianie nazwy pliku. Ale spieramy się o preferencje - chcę tylko, aby „enter” oznaczało „wybierz rzecz w punkcie”. A dla mnie nie oznacza to „otwartej skóry”. Gdybym był w skorupce, oczekuję innego zachowania.Odpowiedzi:
Ja również wykorzystywane
ido-mode
do dużo i przeszkolony moją pamięć mięśniową :) Myślę, żeido
styl jest bardziej intuicyjne niżhelm
podejścia. Szukam rzeczy (wpisując niektóre znaki) i zatwierdzam wyszukiwanie (hitRET
), podobnie jak pasek wyszukiwania / adresu mojej przeglądarki internetowej. Jeśli zaznaczony jest katalog, wchodzę do tego katalogu i ponownie zaczynam wyszukiwanie w tym katalogu. Wydaje mi się to naturalne, dlatego napisałem krótką radę,helm-execute-persistent-action
aby zmusić tego mechanika.backspace
Lekko zoptymalizowałem klucz. Jeśli coś wpisuję i chcę dokonać korekty, uderzam w backspace. Spowoduje to usunięcie jednego znaku. Jeśli jestem na początku katalogu i ponownie uderzę w backspace, przechodzę o jeden poziom wyżej. To znacznie przyspiesza nawigację!Aby usunąć bezużyteczne
.
i..
na samym początku, możesz dodać je dohelm-boring-file-regexp-list
zmiennej konfiguracyjnej.źródło
find-file
. A.
i..
nie jest tak naprawdę bezużyteczne, gdy nie chcesz otwierać Dired w bieżącym lub nadrzędnym katalogu. I uważam, żeC-l
jest to szybsze niż naciskaniebackspace
.(kbd "<return>")
? Wydaje się trochę czystsze, aby wywołać helm-execute-persistent-action bezpośrednio wewnątrz nowej funkcji.Symbol's value as variable is void: helm-find-files-map
. Kiedy kładę(helm-mode 1)
po(require 'helm)
, mam takiego nie błąd, ale to nie działa albo. Masz pomysł, czego mi brakuje? Oto mój kompletny init.el: pastebin.com/drFZsDxW Emacs to wersja 24.4.1 (i686-pc-mingw32)define-key
jeśli spróbuję użyćC-h k RET
minibufora znajdującego plik, nadal będzie on wyświetlanyhelm-confirm-and-exit-minibuffer
jako związany.Nie mogę skomentować odpowiedzi Fu86 z powodu rep, ale jestem świński, że się wycofuję (przepraszam, jeśli to nie jest normalny protokół). Otrzymałem funkcję void, używając jego odpowiedzi z powodu „helm-find-files-map”. Zamiast tego zadziałało użycie mapy kluczy „mapa sterów”. Jak dotąd żadnych konfliktów, a takiego zachowania szukałem.
... (define-key helm-map (kbd "<return>") 'helm-execute-persistent-action) ...
źródło
Nie mogłem uzyskać odpowiedzi @ Fu86 do pracy, ale następujące działały dla mnie:
patrz także: /programming/27652371/how-can-i-change-emacs-helm-find-file-default-action-on-directory-to-be-go-insid
Edytować
Moje rozwiązanie działa w helm-20141112.946, ale w helm-20160211.934 nie działa, a odpowiedź @ Fu86 jest rozwiązaniem
źródło