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.
text-editor
vi
bvb
źródło
źródło
Odpowiedzi:
Jeśli nie masz jeszcze
.vimrc
pliku w katalogu domowym, utwórz go, używając tego:Dodaj ten wiersz na górze pliku:
Zapisz plik, a to powinno rozwiązać problem. :)
źródło
vi
zamiast tegovim
musisz wykonać tę samą konfigurację, ale w~/.exrc
pliku.Zainstaluj vim -> To rozwiąże problem.
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 :
źródło
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 EscA 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ż EschitI
wstawiania tekstu na początku bieżącego wiersza, aż Eschita
dołączyć tekst za kursorem, aż EschitA
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ż EschitO
otwarte i wstaw tekst w nowym wierszu powyżej bieżącego wiersza, aż do Escnaciśnięciar
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ęciax
usuń pojedynczy znak pod kursoremNx
usuń N znaków, zaczynając od znaku pod kursoremdw
usuń pojedyncze słowo rozpoczynające się od znaku podC
zmianą kursora (zamień) znaki w bieżącym wierszu, aż do EscnaciśnięciaD
usuń pozostałą część wiersza, zaczynając od bieżącej pozycji kursoradd
usuń całą bieżącą linięNdd
usuń N linii, zaczynając od bieżącej linii; np. 5dd usuwayy
kopię 5 linii (szarpnięcie, wycięcie) bieżącą linię doNyy
kopii bufora (szarpnięcie, wycięcie) kolejne N linii, w tym bieżąca linia, do buforap
wklej linię (-y) w buforze do tekstu po bieżąca linia0
(zero) przesuń kursor na początek bieżącej linii (ten z kursorem)$
przesuń kursor na koniec bieżącej liniiw
przesuń kursor na początek następnego słowab
przesuń kursor z powrotem na początek poprzedniego słowa:0
Returnlub1G
przesuń kursor do pierwszego wiersza w pliku:n
ReturnlubnG
przesuń kursor do linii n:$
ReturnlubG
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ścien
przejdź do następnego wystąpienia łańcucha wyszukiwaniaN
przejdź do następnego wystąpienia łańcucha wyszukiwania w przeciwnym kierunkuźródło
: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
(utwórz plik, jeśli nie istnieje), a następnie dodaj
set nocompatible
do niego linię i zapisz.źródło
: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.
źródło
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
Powoduje to dziwne zachowanie VI Zainstalowałem pakiet danych konsoli, który rozwiązuje problem!
źródło
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.
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.
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ę odalias
(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:Naciśnij,
Esc
a następnie wpisz:wq
. Teraz musisz ponownie załadować plik. Wpiszsource .bashrc
dowolną inną powłokę, która zostanie otwarta po dokonaniu tych zmian, automatycznie załaduje plik .bashrc.źródło
Wszystkie podane wyjaśnienia są nieco dziwaczne. Mam zainstalowany vi, ale nie vim.
Sprawdzanie alternatyw:
/etc/alternatives/vi
→/usr/bin/vim.tiny
Tak
vi
jestvim.tiny
i używa/etc/vim/vimrc.tiny
.A w
vimrc.tiny
tobie znajduje się następujący wiersz:Co jest prawie jedyną rzeczą w tym pliku. Zauważ, że w
/etc/vim/vimrc
nim się używanocompatible
.Więc zainstaluj vima, zmień
vimrc.tiny
plik lub utwórz własny,~/.vimrc
który powinien zawierać wiersz:źródło
~/.vimrc
i ustawiającnocompatible
: 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:
źródło
Może to być również spowodowane
TERM
zmienną; ustaw na przykład tak:źródło
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:Lub, jeśli problem występuje tylko w trybie normalnym, możesz zmienić
nmap
i pominąć następujące czynnościa
:i tak dalej.
Oto kluczowe kombinacje potrzebne do ich wytworzenia (pokazane tylko pierwsze):
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.
Źródło: https://hea-www.harvard.edu/~fine/Tech/vi.html
źródło
W przypadku VI utwórz lub edytuj plik „~ / .exrc” lub VIM utwórz lub edytuj plik „~ / .vimrc” ustaw lub dodaj w linii.
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.
źródło
Na tej maszynie musiałem
make sure
żejest
last entry in ~/.vimrc
. Lub przynajmniej jeden z ostatnich wpisów, w szczególności nie jest już ładowana żadna wtyczka.HTH
źródło
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ą:
Jeśli spowoduje to powstanie pustej linii, zmienna nie zostanie ustawiona. Problem zniknął po
Przeniosłem polecenie do pliku /root/.bashrc (nie wiem, gdzie to zwykle jest ustawione).
źródło