Jak uzupełnić ścieżki plików w emacsie?


14

Powiedzmy na przykład, że edytuję plik konfiguracyjny i chcę wpisać ścieżkę. Czy istnieje wtyczka do emacsa, która pozwala uzupełnić ścieżkę pliku w tym buforze? Szukałem tego i są tam jakieś wtyczki bazillionowe.


1
Nie jestem pewien, o co tutaj pytasz. Nowoczesne emacen mają uzupełnianie ścieżek w mini-buforze ( find-filena przykład przy użyciu ). Czy chcesz podobne zachowanie w buforze zawartości?
dmckee --- były moderator kociąt

1
@dmckee - Tak, właśnie tego dokładnie szukam.
Jason Baker

@dmckee Czy ten system operacyjny jest specyficzny? Miałem uzupełnianie nazw plików w Find File w Ubuntu, ale nie ma uzupełnienia w OSX. Na przykład mam plik o nazwie „referencja” w katalogu głównym i jestem w mini buforze: „Znajdź plik: ~ /” i wpisuję „ref” i oczekuję zakończenia, ale nic się nie dzieje. Czy muszę coś zainstalować?
Zeynel,

@ Zeynel też działa dobrze dla mnie w systemie Mac OS. Z wersją zainstalowaną Apple lub wersją homebrew. Pracowałem również z wersją Fink na mojej starszej maszynie.
dmckee --- były moderator kociak

@dmckee Strange. Może zadam nowe pytanie. Dzięki.
Zeynel,

Odpowiedzi:


11

Wypróbuj Hippie Expand , który jako jedna z jego możliwości ma ” try-complete-file-name. Możesz zmienić kolejność i listę funkcji rozwijania, których będzie używał hippie expand, aby sprzyjać rozszerzaniu nazwy pliku.

Możesz też napisać niestandardowe opakowanie, które tylko rozszerzy nazwy plików. Coś jak:

(global-set-key (kbd "C-M-/") 'my-expand-file-name-at-point)
(defun my-expand-file-name-at-point ()
  "Use hippie-expand to expand the filename"
  (interactive)
  (let ((hippie-expand-try-functions-list '(try-complete-file-name-partially try-complete-file-name)))
    (call-interactively 'hippie-expand)))

15

Zazwyczaj piszę Ctrl- X Ctrl- Ftak jakbym otwierał plik, ale zamiast RETnaciskać Ctrl- naciśnij - A Ctrl- K Ctrl-, Gaby skopiować ścieżkę, a następnie wkleić ją do buforu, który edytowałem za pomocą Ctrl- Y.

Nie potrzebuję tego wystarczająco często, ale gdybym naprawdę chciał lepszego rozwiązania, zdecydowanie skorzystałbym z rozwiązania Trey Jackson hippie-expand. Myślałem o tym, jak hippie-expandmoże być lepszy sposób to zrobić po raz pierwszy odpowiada, ale nie wiedziałem, i był zbyt leniwy, aby to sprawdzić, więc po prostu napisał, co mam zrobić.


Niezdarny i nieelegancki, ale działający. Muszę przyznać, że robię to od czasu do czasu. Nadal interesuje mnie
lepsze

W rzeczy samej. Jednak nie wydaje się to o wiele mniej pracy niż ręczne pisanie.
Jason Baker

1
@Jason Baker: Zależy to od tego, czy znasz dokładną nazwę pliku, czy też musisz go trochę poznać.
Teddy

6

Wanilia, od razu po wyjęciu z pudełka

M-x comint-dynamic-complete-filename

działa poza trybem comint. Oczywiście, można użyć dynamicznej ekspansji minibufor do korzystania mniej klawiszy, aby dostać się do niego (np Mx Comi NT- dy namic- c omplete -f ilename). Lub, jeśli będziesz go często używać, możesz powiązać go z wybraną sekwencją klawiszy za pomocą global-set-key.



0

Niedawno odkryłem prace Tomohiro Matsuyama (@ m2ym) i jestem pod dużym wrażeniem jakości jego pakietów emacs.

Walczyłem z większością rozszerzeń autouzupełniania i odkryłem, że wszystkie mają poważne wady.

Sprawdź autouzupełnianie Tomo ( http://auto-complete.org/doc/manual.html ). Instalacja była łatwa (jestem na Linuksie) i obejmuje wiele potrzeb związanych z autouzupełnianiem w nowoczesny sposób.

Oczywiście twoja prośba o uzupełnienie nazw plików w buforze jest doskonale uwzględniona.

Na koniec, jeśli zdarzy ci się też robić Ruby, pamiętaj, aby nie przegapić jego rozszerzenia RSense ; znowu najlepszy w swoim rodzaju.


Link jest zepsuty
xuhdev

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.