Klawisz Backspace w trybie wstawiania w vi nie usuwa znaku

69

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ć naciskam klawisz Backspace w trybie wstawiania, przesuwa on tylko 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.

Saprativa Bhattacharjee
źródło

Odpowiedzi:

39

To jest prawidłowe zachowanie dla vi i usuwa postać, po prostu jej nie pokazuje, zastępując ją pustym jak w vimie. Będzie to widoczne po zastąpieniu skasowanego znaku innym znakiem lub przełączeniu się z powrotem do trybu poleceń.

Np. Rozpoczynając od trybu komend w pustym wierszu, w wyniku zostaną wyświetlone następujące wiersze fo:

ifooBackspaceEsc

Przed Escnaciśnięciem klawisza linia będzie czytać foo, ale ostatnia ozostała oznaczona jako „kolumna wymazywania”. Zobacz http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html#tag_20_152_13_88 (głównie punkt 4 pod tym nagłówkiem, a także przejrzyj nieco dalej, aby przeczytać o <Control> -H)

geirha
źródło
72

Oto najprostsze rozwiązanie.
Otwórz terminal, przejdź do katalogu domowego i wpisz

vi .vimrc

nowy plik otwarty teraz dodaj te linie do pliku i wyjdź zapisując

$ set nocompatible
$ set backspace=2
Adithya Chakilam
źródło
9
OP wspomniał, że nie chce używaćnocompatibility
kiri
1
nie ma potrzeby żadnej kompatybilności. Możesz to zrobić, dodając drugą linię
Adithya Chakilam
1
Druga linia działa tylko dla mnie, jeśli dodam pierwszą linię.
djjeck
Zacząłem od pustego pliku .vimrc i zastanawiałem się, dlaczego backspace nie działał na komputerze Mac w iTerm2. Wielkie dzięki!
Igor Malyk
@ minerz029 dodaj jeszcze, jest to odpowiedź na większość ludzi, ponieważ w tytule strony nie było takich kwalifikacji.
Muhd
22

Musisz przejść do trybu „wstawiania”, przesuwając kursor za pomocą i. Istnieją inne sposoby bezpośredniego usuwania znaków. Możesz pobrać powerpoint, którego używam podczas nauczania klasy na VI tutaj .

Brzmi, jakbyś był w trybie „Polecenia”. Aby przesunąć kursor:
H= w lewo, J= w górę, K= w dół, L= w prawo

Po ustawieniu kursora możesz usunąć tekst w następujący sposób:
x Usuwa znak pod kursorem
X Usuwa znak przed kursorem
dwUsuwa od kursora do następnego słowa
dd Usuwa linię, w której znajduje się kursor.

Aby wprowadzić tekst , możesz użyć jednego z trybów wprowadzania tekstu.
aDodaje tekst po prawej stronie kursora
ADodaje tekst na końcu bieżącego wiersza
iDodaje tekst na lewo od kursora
IDodaje test na początku bieżącego wiersza
oOtwiera nowy wiersz poniżej bieżącego wiersza i wprowadza cię w tryb wprowadzania tekstu
OOtwiera nowa linia Nad bieżącą linią i wprowadza cię w tryb wprowadzania tekstu

Aby wyjść z trybu wprowadzania tekstu i powrócić do trybu poleceń, użyj Esc.

Aby cofnąć zmiany: (Ulubiony student)
uCofnij ostatnio wprowadzone polecenie
U Cofnij wszystkie zmiany w ** bieżącej linii **

Aby zapisać / wyjść : :wZapisuje (zapisuje) plik i pozostaje otwarty
:wqZapisuje (zapisuje) plik i wychodzi z VI
:qWyjście (Wyjście), jeśli nie wprowadzono żadnych zmian
:q! Wyjście ( wyjście ) bez zapisywania zmian
ZZZapisuje (zapisuje) plik i wychodzi z VI (to samo co :wq)

Argusvision
źródło
11
OP wspomniał, że tajemnicze zachowanie występuje w trybie wstawiania . To nie jest odpowiedź na zadane pytanie.
LarsH
Właściwie OP nie stwierdził w trybie wstawiania . Pytanie zostało zredagowane.
Argusvision
1
Dobrze. Masz rację. Wygląda na to, że założyłem. Z mojego doświadczenia wynika, że ​​większość osób, które dopiero zaczynają korzystać z VI, mają problemy z przełączaniem trybów i nawigacją w trybie poleceń. Moi uczniowie często narzekają i obwiniają VI za nieprawidłowe zachowanie, gdy jest to po prostu błąd użytkownika lub brak znajomości zestawu poleceń.
Argusvision
1
Zrozumiale. Zgadzam się, że jest to powszechna reakcja na tryb nie wstawiania.
LarsH
Argus „w trybie wstawiania” został dodany do tytułu pytania w edycji, ale od samego początku znajdował się w treści pytania.
LarsH
13

Zainstaluj pełny pakiet vim, aby uzyskać funkcję cofania i klawiszy strzałek

sudo apt-get update
sudo apt-get install vim
Ratnala Jagadeesh
źródło
Działa zgodnie z oczekiwaniami. Najlepsza odpowiedź
Vicky,
To idealna odpowiedź. Nie trzeba edytować żadnych plików konfiguracyjnych, wystarczy zainstalować vim-runtimepakiet i wszystko działa tak, jak zwykle. Dzięki!
Olli D-Metz