Wyjaśnienie: Nie pytam, jak zmienić kursor podczas używania vima w terminalu . Chcę, aby kursor zmienił się podczas przełączania między trybem wprowadzania a trybem poleceń w trybie vi Basha:
set -o vi <CR> type some text <ESC> (the cursor changes shape/color)
i (cursor change back) etc...
Znalazłem skrypt, który umożliwia zmianę koloru kursora przy zmianie trybu w zsh , ale nie chcę zmieniać powłok tylko dla tej jednej funkcji.
Czy istnieje sposób, aby kursor zmienił kształt, tak jak w gvim (lub nawet po prostu kolor) podczas przełączania między trybami poleceń i wstawiania w wierszu poleceń Bash?
bash
vi
line-editor
joecan
źródło
źródło
Odpowiedzi:
dodaj te dwa wiersze do ~ / .inputrc :
źródło
set show-mode-in-prompt on
w~/.inputrc
również do tej pracy.Skopiowano stąd - Styl vim edycji wiersza poleceń
Powinien być dostępny w wersji
bash
4.3 - patrz dziennik zmian -bash
4.3 jest obecnie narc
etapie, powinieneś być w stanie uzyskać pakiety dla większości dystrybucji bez kompilacji ze źródła, ale nie w głównych repozytoriach. Na przykład. Ubuntu (amd64) tutaj i Debian (eksperymentalne repo) tutaj .źródło
Nie znalazłem prawdziwego rozwiązania, ale być może mogłoby to pomóc Tobie (lub komuś innemu) w znalezieniu lepszego.
Musisz utworzyć skrypt (np. Kmtest.sh)
i po dodaniu go do PS1, coś takiego:
ale jak powiedziałem, nie jest to, czego chcesz, ponieważ zmienia kolor kursora dopiero po cr. Powodzenia
gb
źródło
Wygląda na to, że można to zrobić poprzez hakowanie readline. Być może moglibyśmy naciskać, aby stała się ona głównym nurtem?
Oto moja odpowiedź na SO https://stackoverflow.com/a/12201092/255961, którą zaktualizuję, jeśli otrzymam więcej informacji.
źródło
Chociaż nie jest to dokładnie to, czego chcesz (dynamiczna zmiana kursora), bash 4.4 / readline 7.0 doda obsługę dynamicznej zmiany pytania . Będziesz mógł określić niestandardowe wskaźniki trybu dla trybów wstawiania / poleceń (różni się to od bieżącej
show-mode-in-prompt
opcji, która jest zakodowana w użyciu+
i:
).Niestety te wersje są obecnie w fazie beta i wydaje się, że nie zostały jeszcze usunięte wszystkie błędy. Brakuje również możliwości określenia, gdzie w pytaniu ma się pojawiać wskaźnik trybu.
Tymczasowo opublikowałem łatane wersje bash 4.3 / readline 6.3 na github z tą funkcjonalnością.
źródło
Zadałem to samo pytanie jakiś czas temu na AskUbuntu, kiedy przechodziłem z Gvim do Console Vim.
Otrzymałem jedną odpowiedź, ale wiązało się to z przełączaniem ustawień terminala gnome, a ustawienia te obowiązywały na wszystkich terminalach. W ten sposób kursor terminalu gnomów mógł czasami utknąć w złym stanie.
Nadal jestem zainteresowany tym, czy uzyskasz zadowalające rozwiązanie, ale z czasem dostosowałem się do braku informacji o stanie trybu w kursorze. Być może po prostu częściej naciskam klawisz Escape (np.
esc
Aby upewnić się, że jestem w trybie poleceń;esc i
aby upewnić się, że jestem w trybie wstawiania); być może patrzę na stan wyświetlany na dole ekranu; być może właśnie zinternalizowałem ten tryb.źródło