2009-07-11 17 views
19

Czy istnieje możliwość dostosowania powłoki powłoki lub powłoki, która obsługuje plik ido w stylu emacsa? W emacsie mogę bardzo szybko przejść do katalogu, używając C-x C-f i (ido-mode t).Powłoka w stylu emacsa

Idealnie szukam rozwiązania, które można wykorzystać poza emacs. Chociaż byłbym otwarty na sposób szybkiego zmiany katalogów w buforze eshell.

+0

ja często życzył więcej aplikacji zachowywał się jak ido-mode. –

+7

Dlaczego zostawiać emacs? :) eshell? – seth

+0

Powiedział, że używa eshell. Przeczytałem kod źródłowy ido i nie jest to tak naprawdę wystarczająco dobrze wykorzystane z eshell. Tak więc, będzie musiał refaktoryzować ido, a następnie powiąż go z eshell, jeśli wybierze tę trasę. – jrockway

Odpowiedz

19

Ponieważ również chciałem czegoś takiego, próbowałem go zaimplementować jako funkcję zakończenia bash . Oczywiście to znaczy. musisz użyć bash.

Jest tylko lekko przetestowany, dlatego prosimy o zgłaszanie błędów/komentarzy.

http://pgas.freeshell.org/shell/bash-ido

+2

Fantastyczna praca! Jakieś zamiary umieszczenia tego na czymś takim jak github? – zpinter

+1

Bardzo imponujące! – blais

0

Wiem, że niektóre rozszerzenia obsługi emulatora terminalu, na przykład rxvt-unicode, można rozszerzyć za pomocą skryptów Perla. Nie jestem pewien, ponieważ sam nigdy nie napisałem rozszerzenia, ale być może to, czego chcesz, jest wykonalne w ten sposób.

Jeśli chcesz rzucić okiem na niektóre skrypty Perla dla Urxvta, istnieje kilka przykładów w/usr/lib/urxvt/perl z domyślną instalacją Urxvt na Debianie.

+1

Problem polega na tym, że emulator terminalu i powłoka nie są sobie wzajemnie świadome. Trochę hackowania przy analizie podpowiedzi może być wykonane, ale to jest hak i może się nie udać. (Rozważ umieszczenie w ssh'd. Emulator terminala widzi twój lokalny system plików, ale powłoka widzi zdalny system plików Niech zamieszanie i niepoprawne wyniki się rozpoczną ...) – jrockway

2

Bash ma zmienną środowiskową o nazwie CDPATH, która może zawierać listę katalogów do wyszukiwania przy użyciu polecenia cd. Sprawdź również sekcje "Programowalne uzupełnianie" i "READLINE" w podręczniku Bash. Powinieneś być w stanie zebrać razem coś, co działa dla ciebie.

3

Wypróbuj powłokę Z. Ma znacznie lepsze zakończenie niż bash. Muszę przyznać, że nie używałem go przez jakiś czas i trzymałem się basha, ponieważ jest on zawsze dostępny.

0

Jeśli chcesz uzupełnić ido w eshell lub podobnym, najlepiej jest napisać funkcję, która używa ido do odczytu katalogu, a następnie wstawi polecenie do cd do tego katalogu do bufora powłoki. Nie używam eshell, więc nie mogłem komentować, jak napisać tę funkcję, ale jest to pomysł.

2

Najlepsze, co udało mi się wymyślić, to: autojump. Nadal szukam rozwiązania bliższego ido, ale autojump to świetna mała aplikacja.

+0

i odkryłem Fasd, który uważam za jeszcze lepszy: https: // github.com/clvv/fasd – Ehvince