Kiedy próbowałem użyć klawiszy strzałek w trybie wstawiania w viedytorze, 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 viedytorze, w edytorze wstawiane są następujące znaki:
Proszę o pomoc w rozwiązaniu tego problemu.
Odpowiedzi:
Jeśli nie masz jeszcze .vimrcpliku 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. :)
vizamiast tego vimmusisz wykonać tę samą konfigurację, ale w ~/.exrcpliku.
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ą vikliknię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 vipoleceń:
Z tego źródła .
:xReturn quit vi , zapisywanie zmodyfikowanego pliku do pliku o nazwie w oryginalnym wywołaniu
:wqReturn quit vi , zapisywanie zmodyfikowanego pliku do pliku o nazwie w oryginalnym wywołaniu
:qReturn 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
:0Returnlub 1G przesuń kursor do pierwszego wiersza w pliku
:nReturnlub 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 nocompatibledo niego linię i zapisz.
:versiondla polecenia ładowania (także :h .exrclub :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 someFilePodczas korzystania z vi najpierw przejdź do punktu edycji, a następnie przejdź do trybu wstawiania.
2) vim someFilePo 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 vilubman 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, Esca następnie wpisz :wq. Teraz musisz ponownie załadować plik. Wpisz source .bashrcdowolną 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 vijest vim.tinyi używa /etc/vim/vimrc.tiny.
A w vimrc.tinytobie znajduje się następujący wiersz:
set compatible
Co jest prawie jedyną rzeczą w tym pliku. Zauważ, że w /etc/vim/vimrcnim się używa nocompatible.
Więc zainstaluj vima, zmień vimrc.tinyplik lub utwórz własny, ~/.vimrcktóry powinien zawierać wiersz:
set nocompatible
~/.vimrci ustawiając nocompatible: askubuntu.com/a/353944/158442 lub 3. edytując plik systemowy. Tylko sugestia edycji /etc/vim/vimrc.tinyjest 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 TERMzmienną; ustaw na przykład tak:
export TERM=xterm
W niektórych systemach nocompatibleopcja nie jest dostępna lub może nie rozwiązać problemu, jeśli wtyczka zepsuje działanie klawiszy strzałek. Oto obejście ...
Edytuj .exrcplik, 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ć nmapi 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).