Używam skrótów klawiszowych vi w mojej powłoce tcsh.
Teraz nie wiem, w którym trybie vi jestem ( insert
tryb lub command
tryb), co prowadzi do dużej frustracji.
Czy ktoś zna sposób na pokazanie bieżącego trybu vi w powłoce? (poprzez włączenie do pytania lub czegoś)
command-line
shell
vi
prompt
zegar słoneczny
źródło
źródło
Przejrzałem dokumentację i muszę powiedzieć, że nie mogłem znaleźć sposobu na wykrycie i wyświetlenie bieżącego trybu vi. Mam nadzieję, że masz miłą niespodziankę i ktoś wymyśli rozwiązanie, ale z pewnością nie widzę sposobu na zrobienie tego, o co prosisz.
Myślę, że istnieje sposób, aby to zrobić, ale jest to ogromna przesada dla drobnej irytacji i nie sądzę, że o to ci chodziło, zadając to pytanie. Jeśli to prawda, przestań czytać teraz i ciesz się życiem.
OTOH, jeśli to naprawdę jest twój wkurzony zwierzak i to doprowadza cię do szaleństwa, a ty naprawdę absolutnie desperacko chcesz rozwiązać ten problem, oto mój pomysł, jak to zrobić:
W skrócie, Unix implementuje terminal I / O jako pełny dupleks we / wy między sterownikiem urządzenia a procesem użytkownika, do którego można wstawić moduły. Jest on zorganizowany jako stos, dzięki czemu można warstwować dowolną liczbę strumieni. Suma wstrzykiwanych strumieni tworzy zachowanie terminala we / wy.
Po wprowadzeniu znaku pierwszy moduł może go sprawdzić i przekazać dalej (jeśli chce). Gdy odpowiedź dotrze w przeciwnym kierunku, znów ma szansę ją sprawdzić i przekazać dalej. W ten sposób Ctrl-C jest obsługiwany na wyższym poziomie do normalnego klawisza postaci.
Możesz utworzyć plik binarny implementujący moduł strumienia, który po wywołaniu działa cicho na pierwszym planie, sprawdzając i przekazując wszystkie naciśnięcia klawiszy, wykonując preferowaną akcję na naciśniętych klawiszach. Dla wszystkich celów i celów będzie wyglądało to tak, jakbyś pracował nad powłoką. Oooch Możesz wywołać ten plik binarny w ostatnim (lub pierwszym lub dowolnym) wierszu pliku .tcshrc i nawet nie wiedziałbyś, że tam jest.
Jest to dobry grunt tutaj , ale nie mogłem znaleźć wiele informacji na ten temat, prawdopodobnie dlatego, że jest przeszłości jego prime.
źródło
Ta strona ma dość szczegółowy skrypt, który ustawia to, co chcesz (i więcej) w Zsh . Być może można go zaadaptować do pracy z tcsh (nie jestem zbytnio zaznajomiony z tą powłoką).
źródło
Edycja z wiersza poleceń za pomocą tcsh
Więcej notatek na stronie
tcsh
dostosowywania, do której prowadzi już link powyżej.źródło
Miałem dokładnie ten sam problem i przez przypadek znalazłem rozwiązanie. Chociaż ten wątek jest stary, nie mogłem znaleźć żadnej innej witryny, która oferowałaby rozwiązanie, więc zakładam, że publikowanie w tym wątku jest w porządku.
Wystarczy zresetować ustawienia programu terminalowego lub powłoki. Obecnie używam PuTTY i właśnie usunąłem zapisane ustawienia dla zapisanego połączenia i odtworzyłem zapisaną sesję. Działa jak urok.
Mam nadzieję że to pomoże!
źródło
Proszę zobaczyć moją odpowiedź na SO . Bash 4.4 / Readline 7.0 doda obsługę tej funkcjonalności, aw międzyczasie opublikowałem łatane wersje Bash 4.3 / Readline 6.3 do github .
źródło
Dla każdego, kto ma dokładnie ten problem (jak ja): Znalazłem rozwiązanie w Stackoverflow . Najwyraźniej istnieje natywna obsługa tego w readline, więc możesz po prostu dodać następujące elementy do
~/.inputrc
:Aby dostosować rzeczywiste użycie postaci:
źródło