Chcę przejść do trybu edycji vi w środowisku readline. Ale nie chcę używać „set -o vi”. Chcę tymczasowo przełączyć się za pomocą skrótu klawiaturowego. Strona podręcznika mówi, że mogę to zrobić M-C-j. Ale to nie działa dla mnie.
Używam Ubuntu i Xterm. Nie działa również pod terminalem gnome.
ESC E
. Jeśli zatrzymasz się, przejdziesz z trybu vi-insert do trybu polecenia vi lub po prostu anulujesz bieżące polecenie vi.Bash wyraźnie wyłącza tę i kilka innych skrótów Readline. Zobacz
initialize_readline()
funkcję w kodzie źródłowym bash ( http://www.catonmat.net/download/bashline.c ):Wydaje się, że nie jestem w stanie zastąpić tego zachowania za pomocą pliku konfiguracyjnego Readline (.inputrc).
źródło
Oto, czego ostatecznie użyłem dla siebie
~/.inputrc
, na podstawie odpowiedzi SLM.Wypróbowałem
$if mode=
składnię, ale myślę, że została rozwiązana statycznie (jeden raz podczas odczytu pliku), więc nie działa zgodnie z oczekiwaniami. Musimy więc przełączać się do każdej mapy klawiszy i modyfikować jej powiązania klawiszy, nawet jeśli wcześniej ustawiono je w innych mapach klawiszy. Na koniec mówię, od którego trybu chcę zacząć.źródło
Próbowałem użyć mapowań w stylu emacsa w trybie vi. Skończyło się na:
Pomocne jest przeczytanie strony
readline
podręcznika iREADLINE
sekcji nabash
stronie podręcznika .źródło