Kiedy próbowałem użyć klawiszy strzałek w trybie wstawiania w vi
edytorze, w edytorze wstawiane są następujące znaki:
- dla ↓mam B,
- dla ↑dostaję,
- dla ←mam D,
- dla →mam C.
Proszę o pomoc w rozwiązaniu tego problemu.
Kiedy próbowałem użyć klawiszy strzałek w trybie wstawiania w vi
edytorze, w edytorze wstawiane są następujące znaki:
Proszę o pomoc w rozwiązaniu tego problemu.
Odpowiedzi:
Jeśli nie masz jeszcze .vimrc
pliku w katalogu domowym, utwórz go, używając tego:
vim ~/.vimrc
Dodaj ten wiersz na górze pliku:
set nocompatible
Zapisz plik, a to powinno rozwiązać problem. :)
vi
zamiast tego vim
musisz wykonać tę samą konfigurację, ale w ~/.exrc
pliku.
Zainstaluj vim -> To rozwiąże problem.
sudo apt-get install vim
Istnieje wiele dobrych samouczków vim / vi na youtube lub ogólnie w Internecie. Twój problem znajdziesz tutaj
Następnie kontynuuj otwieranie plików jak zwykle :
vi desired-file
Za pomocą vi
kliknięcia iaktywujesz polecenie Wstaw tekst.
To polecenie pozwala wstawić tekst do pliku.
I dobrze, po kliknięciu:
Do momentu dezaktywacji tego polecenia.
Aby dezaktywować polecenie w vi
: po prostu kliknij Esc
A następnie wrócisz do normalnego używania klawiszy strzałek:
Do Twojej wiadomości, oto kilka vi
poleceń:
Z tego źródła .
:x
Return quit vi , zapisywanie zmodyfikowanego pliku do pliku o nazwie w oryginalnym wywołaniu
:wq
Return quit vi , zapisywanie zmodyfikowanego pliku do pliku o nazwie w oryginalnym wywołaniu
:q
Return quit (lub wyjście) vi
:q!
Return quit vi, nawet jeśli dla tego wywołania vi nie zapisano najnowszych zmian
↓ przesuń kursor w dół o jedną linię
↓ przesuń kursor w górę o jedną linię
← przesuń kursor w lewo o jeden znak
→ przesuń kursor w prawo o jeden znak
u
cofnij wszystko, co właśnie zrobiłeś; proste przełączanie
.
ponów wszystko, co właśnie zrobiłeś
i
wstawić tekst przed kursorem, aż Eschit
I
wstawiania tekstu na początku bieżącego wiersza, aż Eschit
a
dołączyć tekst za kursorem, aż Eschit
A
dołączyć tekst do końca bieżącej linii, aż Escuderzył
o
otwarty i umieścić tekst w nowej linii poniżej aktualnej linii, aż Eschit
O
otwarte i wstaw tekst w nowym wierszu powyżej bieżącego wiersza, aż do Escnaciśnięcia
r
zamień pojedynczy znak pod kursorem ( Escniepotrzebny)
cw
zmień bieżące słowo na nowy tekst, zaczynając od znaku pod kursorem, aż do Escnaciśnięcia
x
usuń pojedynczy znak pod kursorem
Nx
usuń N znaków, zaczynając od znaku pod kursorem
dw
usuń pojedyncze słowo rozpoczynające się od znaku pod
C
zmianą kursora (zamień) znaki w bieżącym wierszu, aż do Escnaciśnięcia
D
usuń pozostałą część wiersza, zaczynając od bieżącej pozycji kursora
dd
usuń całą bieżącą linię
Ndd
usuń N linii, zaczynając od bieżącej linii; np. 5dd usuwa
yy
kopię 5 linii (szarpnięcie, wycięcie) bieżącą linię do
Nyy
kopii bufora (szarpnięcie, wycięcie) kolejne N linii, w tym bieżąca linia, do bufora
p
wklej linię (-y) w buforze do tekstu po bieżąca linia
0
(zero) przesuń kursor na początek bieżącej linii (ten z kursorem)
$
przesuń kursor na koniec bieżącej linii
w
przesuń kursor na początek następnego słowa
b
przesuń kursor z powrotem na początek poprzedniego słowa
:0
Returnlub 1G
przesuń kursor do pierwszego wiersza w pliku
:n
Returnlub nG
przesuń kursor do linii n
:$
Returnlub G
przesuń kursor do ostatniej linii w pliku
/string
szukaj do przodu pod kątem występowania łańcucha w tekście
?string
szukaj do tyłu pod kątem występowania łańcucha w tekście
n
przejdź do następnego wystąpienia łańcucha wyszukiwania
N
przejdź do następnego wystąpienia łańcucha wyszukiwania w przeciwnym kierunku
:help compatible
: „Domyślnie ta opcja jest włączona, a domyślne wartości Vi są używane dla opcje. To ustawienie domyślne zostało wybrane dla osób, które chcą używać Vima tak jak Vi, a nawet nie chcą (nie chcą) wiedzieć o opcji „kompatybilnej”. ”
Aby wyłączyć drukowanie liter po naciśnięciu strzałek w trybie edycji, możesz wykonać następujące czynności
vi $HOME/.exrc
(utwórz plik, jeśli nie istnieje), a następnie dodaj set nocompatible
do niego linię i zapisz.
:version
dla polecenia ładowania (także :h .exrc
lub :h init
). Podejrzewam, że ktoś może chcieć zastosować ustawienia zarówno w vi, jak i vimie, lub może być zwykłą siłą przyzwyczajenia.
W edytorze vi są trzy tryby, a mianowicie:
Po otwarciu pliku znajdujesz się w trybie domyślnym. Teraz, jeśli chcesz, aby przejść do określonej pozycji w tekście, wystarczy użyć klawiszy strzałek lub użycie h, j, k, lklucze. Zauważ, że to będzie działać tylko wtedy, gdy nie został naciśnięty i(lub jakiegokolwiek innego trybu wprowadzania polecenia wejściu jak a, A, I).
Przyczyną „B” może być to, że klawisze strzałek w trybie wprowadzania nie działają jak klawisze strzałek, więc wystarczy nacisnąć, Escaby przejść do trybu domyślnego w dowolnym momencie. Podczas przejścia do trybu wprowadzania naciśnij ilub a, aby poruszać i wystarczy nacisnąć iklawisze klucz i użycie strzałek lub h, j, k, l.
Miałem dokładnie ten sam problem, ale nie tylko na mojej lokalnej maszynie, ale także na połączeniach za pomocą szpachli na maszynie Sles na maszynie Win7 VM przez odbiornik Citrix. Zarówno host lokalny, jak i hosty zdalne pokazują, że po ponownej instalacji systemu Ubuntu wystąpił dokładnie ten sam problem.
Po odkryciu tego
$ localectl list-keymaps
Couldn't find any console keymaps.
Powoduje to dziwne zachowanie VI Zainstalowałem pakiet danych konsoli, który rozwiązuje problem!
sudo apt-get install console-data
Uwaga:
W innych postach są dobre informacje, ale żaden z nich nie próbował wyjaśnić, dlaczego tak się stało. Wiele osób będzie musiało się na to natknąć w przyszłości. Czy możesz również oznaczyć to pytanie jako rozwiązane, ponieważ prawdopodobnie pomógł Ci któryś z poprzednich postów?
Oto wyjaśnienie :
Vi to edytor, który istnieje już od dłuższego czasu, a jego korzenie sięgają systemów uniksowych. To dobre narzędzie, ale zostało powtórzone i teraz jest lepiej. Vim został napisany później i jest to iteracja. Ludzie zwykle nazywają vi „vim-minimal”, a vim jest „ulepszoną” wersją vi. Możesz myśleć o tym w ten sposób: vi jest rdzeniem, a vim się na nim rozwija.
Prawdopodobnie jak odkryłeś zachowanie :
Aby odkryć ten problem, nacisnąłeś „ i ”, aby przejść do trybu wstawiania , a następnie użyłeś klawiszy strzałek do nawigacji po właściwej linii i punkcie edycji. To właśnie spowodowało nieoczekiwany problem z char.
Rozwiązanie 1 lub 2
1) vi someFile
Podczas korzystania z vi najpierw przejdź do punktu edycji, a następnie przejdź do trybu wstawiania.
2) vim someFile
Po prostu użyj vima od samego początku.
Nie mogę się stresować, żeby przeczytać instrukcję (strony podręcznika) lub użyć -h do pomocy. Po dostosowaniu się do wzorów w powłoce strony podręcznika stają się twoim najlepszym przyjacielem. Przykład: man vi
lubman vim
Sprawdź, czy Vim jest zainstalowany .
Otwórz okno konsoli i wykonaj:
dpkg --list | grep vim
Jeśli otrzymasz coś podobnego do tego, możesz po prostu zacząć używać vima.
~ $ dpkg --list | grep vim
ii vim 2:7.4.052-1ubuntu3 amd64 Vi IMproved - enhanced vi editor
ii vim-common 2:7.4.052-1ubuntu3 amd64 Vi IMproved - Common files
ii vim-runtime 2:7.4.052-1ubuntu3 all Vi IMproved - Runtime files
ii vim-tiny 2:7.4.052-1ubuntu3 amd64 Vi IMproved - enhanced vi editor - compact version
Jeśli wiersz polecenia zwraca nic, oznacza to, że vim nie jest zainstalowany. Skorzystaj z poniższych przykładów, aby zaktualizować repozytoria, a następnie zainstaluj vim.
sudo apt-get update
sudo apt-get install vim
Przy małej szansie, że użyjesz vi lub vima tylko podczas wyszukiwania w Internecie, jak coś naprawić i zapomnisz pisać vim
, istnieje jeden sposób, aby to naprawić w przyszłości. Ostrzegam cię, abyś uważał. Możesz użyć aliasu, aby zastąpić vi odnośnikiem do vima, dzięki czemu bez względu na to, co wpiszesz w rzadkiej przyszłości, otrzymasz vim bez tego „ups!” za chwilę. Zawsze możesz usunąć alias później.
Typ vim .bashrc
. Przejdź w dół do pustej linii tylko z ~
(lub do dowolnej innej linii, która zaczyna się od alias
(więc są zgrupowane razem), a następnie naciśnij klawisz i , aby przejść do trybu -wstaw-. W osobnym wierszu wprowadź następujące polecenie:
alias vi='vim'
Naciśnij, Esc
a następnie wpisz :wq
. Teraz musisz ponownie załadować plik. Wpisz source .bashrc
dowolną inną powłokę, która zostanie otwarta po dokonaniu tych zmian, automatycznie załaduje plik .bashrc.
Wszystkie podane wyjaśnienia są nieco dziwaczne. Mam zainstalowany vi, ale nie vim.
Sprawdzanie alternatyw: /etc/alternatives/vi
→/usr/bin/vim.tiny
Tak vi
jest vim.tiny
i używa /etc/vim/vimrc.tiny
.
A w vimrc.tiny
tobie znajduje się następujący wiersz:
set compatible
Co jest prawie jedyną rzeczą w tym pliku. Zauważ, że w /etc/vim/vimrc
nim się używa nocompatible
.
Więc zainstaluj vima, zmień vimrc.tiny
plik lub utwórz własny, ~/.vimrc
który powinien zawierać wiersz:
set nocompatible
~/.vimrc
i ustawiając nocompatible
: askubuntu.com/a/353944/158442 lub 3. edytując plik systemowy. Tylko sugestia edycji /etc/vim/vimrc.tiny
jest nowa, a mimo to nazywasz dziwne odpowiedzi, sugerując to samo.
Tradycyjny edytor vi nie rozpoznaje klawiszy strzałek (... afair). Istnieją dwa rozwiązania:
Może to być również spowodowane TERM
zmienną; ustaw na przykład tak:
export TERM=xterm
W niektórych systemach nocompatible
opcja nie jest dostępna lub może nie rozwiązać problemu, jeśli wtyczka zepsuje działanie klawiszy strzałek. Oto obejście ...
Edytuj .exrc
plik, aby zawierał następujące wiersze:
map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha
Lub, jeśli problem występuje tylko w trybie normalnym, możesz zmienić nmap
i pominąć następujące czynności a
:
nmap! ^[OA ^[k
i tak dalej.
Oto kluczowe kombinacje potrzebne do ich wytworzenia (pokazane tylko pierwsze):
map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka
Unika trybu edycji, przesuwa się w pożądanym kierunku i ponownie wprowadza tryb edycji. Jest to potrzebne, aby pokonać Vi czytającą sekwencję ucieczki jako sekwencję dosłownego <ESC> <O> <A> itd.
W przypadku VI utwórz lub edytuj plik „~ / .exrc” lub VIM utwórz lub edytuj plik „~ / .vimrc” ustaw lub dodaj w linii.
set nocompatible
W chwili pisania tego tekstu znajdują się pochwały na drugim najczęściej głosowanym punkcie, które zastanawiają się, dlaczego ich zgłoszenie nie zostało zaakceptowane. Powodem jest to, że istnieją hosty, które nie pozwalają na instalowanie innych edytorów. Nawet wtedy vim ma czasem te same efekty, więc jest kilka przydatnych informacji z dwóch pierwszych wpisów. Nie mogę jednak komentować, ale mam nadzieję, że wyjaśnia to powody, dla których żaden z nich nie jest w 100% poprawny w 100% przypadków.
Z jakiegoś powodu Ubuntu pominął inicjowanie envvar HOME dla użytkownika root na moim nowym VPS 18.04. W takim przypadku vi nie może znaleźć pliku .vimrc. Problem nie występuje dla zwykłych użytkowników (w / home /).
Aby sprawdzić zmienną:
echo $HOME
Jeśli spowoduje to powstanie pustej linii, zmienna nie zostanie ustawiona. Problem zniknął po
export HOME=/root
Przeniosłem polecenie do pliku /root/.bashrc (nie wiem, gdzie to zwykle jest ustawione).