Jestem nowy w vi , właściwie zacząłem uczyć się vi od dzisiaj i utknąłem w zachowaniu klawisza backspace . Właściwie, kiedy uruchomiłem vi na Ubuntu 12.04 po raz pierwszy, mój klawisz Backspace działał normalnie, ale potem zaczął dziwnie się zachowywać. Ilekroć wciskam backspace w trybie wstawiania, to po prostu przesuwa się o jedno miejsce w lewo zamiast kasować znak. Jak mogę przywrócić domyślną funkcję backspace? Pamiętaj, że nie chcę instalować vima ani ustawiać nocompatibilty.
10
vim
.Odpowiedzi:
Czasami
vi
polecenie jest aliasem,vim
a wywołanie asvi
powoduje włączenie trybu vi.Nawet w trybie tradycyjnym backspace usuwa znak, ale nie wyświetla go natychmiast jako usunięty. (Po naciśnięciu ESC znaki zniknęły.)
Zgadnij, musisz wybrać pomiędzy użyciem,
vi
które ma opisane zachowanie, a użyciem,vim
które jest w stanie zrobić to tak, jak tego oczekujesz.źródło
Sprawdź, czy faktycznie używasz zwykłego
vi
za pośrednictwem$ vi --version | head -n 1
To daje na moim komputerze (Debian 7)
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Feb 10 2013 02:27:59)
vim można sprawić, aby zachowywał się bardziej jak vi. Można tego dokonać, podając polecenie
vi
zamiastvim
z wiersza polecenia, gdzievi
jest tylko dowiązanie symbolicznevim
, w którym to przypadku vim jest otwierany w trybie vi. Możesz to sprawdzić za pomocą:set compatible?
.Jak wspomniano w poprzedniej odpowiedzi, efekt cofania staje się widoczny dopiero po opuszczeniu,
insert mode
gdyset compatible
jest włączony.Uwaga: W trybie zgodnym z vi nie można cofać tekstu nad tekstem, który został wcześniej wprowadzony (przed wprowadzeniem
insert mode
), eol lub wcięcieinsert mode
. widzieć:help 'bs'
Wypróbuj różne ustawienia, aby zrozumieć ich znaczenie: Wprowadź znaki / podziały wierszy i wcięcia w trybie wstawiania, wyjdź i ponownie wprowadź tryb wstawiania, a następnie spróbuj cofnąć.
Użytkownicy, którzy nie są zaznajomieni z zachowaniem vi i nie nalegają na użycie zwykłego vi (co zresztą nie jest zalecane), powinni
:set backspace=indent,eol,start
. Afaik w Debianie jest zwykle instalowany w systemie z tym ustawieniem.Możesz uzyskać bieżące ustawienie za pośrednictwem
:set bs?
.źródło
Utwórz nowy plik w katalogu osobistym użytkownika o nazwie .vimrc, jeśli jeszcze go nie ma. Tutaj będziemy tworzyć i edytować w tym samym czasie za pomocą vi
Dodaj następujące polecenia, które obejmują wyłączenie trybu zgodności i funkcję wymazywania klawisza Backspace:
Zapisz i zamknij plik za pomocą
Wyłączenie trybu zgodności pozwala na używanie klawiszy strzałek, do których jesteśmy przyzwyczajeni.
Ponieważ sudo'd podczas tworzenia pliku, właścicielem pliku prawdopodobnie będzie root. Możesz udostępnić plik użytkownikowi.
W moim przypadku było to dla malinowego pi, więc użytkownik i grupa to pi:
Teraz ponownie odpal vi i ciesz się!
źródło
set nocp
wykonał dla mnie lewęMyślę, że najlepszym sposobem byłoby przejrzenie ściągawki VI / VIM: http://www.viemu.com/vi-vim-cheat-sheet.gif
Wejdź w tryb normalny (ESC), a następnie SHIFT + X.
źródło
po prostu umieść w swoim
~/.zshrc
źródło
Tworzenie .vimrc w moim katalogu domowym, który zawiera tylko
ustaw nocp
naprawiono mój problem polegający na tym, że backspace nie usuwa postaci z ekranu Dick S.
źródło