A nyílbillentyűkkel a vi szerkesztő karaktereket ad hozzá

143

Amikor avi szerkesztőben a nyílbillentyűket használtam, a következő karakterek kerülnek a szerkesztőbe:

  • a kap B,
  • a kapok A,
  • a kap D,
  • a kap C-t.

Segítsen nekem a probléma megoldásában.

    
készlet bvb 05.10.2013 07:04
forrás

11 válasz

180

Ha még nem rendelkezik.vimrc fájllal a saját könyvtárában, készítsen egyet ezzel:

vim ~/.vimrc

A következő sor hozzáadása a fájl tetejéhez:

set nocompatible

Mentse el a fájlt, és javítania kell a problémát. :)

    
válasz adott Gaurav Manchanda 05.10.2013 09:23
forrás
47

Vim telepítése - > Ez megoldja a problémát.

sudo apt-get install vim

Sok jó vim / vi oktatóanyag van a YouTube-on, vagy általában a weben. A probléma miatt lásd itt

Ezután továbbra is nyissa meg a fájlokat a szokásos módon :

vi desired-file
    
válasz adott sthysel 21.11.2012 09:03
forrás
26

Avi -kal a i gombra kattintva aktiválja a parancsot a Beszúrás szövegre.
Ez a parancs lehetővé teszi szöveg beillesztését a fájlba. katalógusa És jobb, ha rákattint:

  • a -ben egy "A", "#" betűt helyez be
  • a -ben egy "B" -et, a -et
  • ... katalógusa

Till kikapcsolja ezt a parancsot Egy parancs deaktiválása a (z)vi -ban: kattintson a Esc gombra És akkor vissza fog térni a nyilak normál használatához:

  • feljebb lépni,
  • lefelé,
  • ...

FYI, itt van néhányvi parancs:
Ebből a forrásból .

:x Visszatérés kilépés vi , módosított fájl létrehozása az eredeti meghívásban nevű fájlhoz -:wq Vissza kilépés vi , módosított fájl írása az eredeti hívás nevéhez
:q Vissza kilépés (vagy kilépés) vi
kilép < kilép , még akkor is, ha a legutóbbi módosítások nem mentésre kerültek erre a vi hívásra

egy kurzor egy karaktert hagyott hátra

:q! visszavon bármit is tettél; egy egyszerű váltás -u redo amit csak csináltál

beillesztés szöveget a kurzort megelőzően, amíg a Esc találat -. beilleszti amíg a Esc találat a% ca_kde% hozzáfűzi szöveget a kurzor után, amíg a Esc találat -i szöveget az aktuális sor végére, amíg a Esc találat -I nyitott Esc találja aa nyitott elemet, és tegyen szöveget egy új sorba az aktuális sor fölé, amíg a Esc találat p>

A helyettesíti egyetlen karaktert a kurzor alatt (nincs Esc szükséges)
o változás új szöveggel, a kurzor alatt lévő karakterrel kezdődően, amíg a Esc találatba nem érünk el <% k_kde% delete egyetlen karaktert a kurzor alatt
O delete N karakterek, kezdve a kurzor kurzor karakterével
r törölje a kurzor alatt lévő karakterrel kezdődő egyetlen szócw változtatás az aktuális sor karakterei, amíg az Esc nem érte el ax törölni a sor többi részét, az aktuális kurzor pozícióval kezdve
/ p> Nx törölje N sorokat, az aktuális sorral kezdődően

dw delete pl. 5dd törli az 5 sort
C másol (húzza, vágja) az aktuális sort a pufferbeD copy (yank, cut) a következő N vonalat, beleértve az aktuális sort is, a pufferben lévődd beillesztés pufferbe a jelenlegi szövegsorba a
/ p>

Ndd (zéró) mozgat kurzor az aktuális vonal megkezdéséhez (a kurzort használva)
yy mozgás az aktuális vonalatNyy mozgassa kurzort a következő szó elejére -p mozgassa kurzort a megelőző szó elejére -0 Visszatérés vagy$ mozgassa kurzort a fájl első soráhozw Vissza vagyb Erős> kurzor a következő sorra::0 Vissza vagy1G mozgassa kurzort a fájl utolsó sorához

:n keresés előre szövegszöveg előfordulása esetén -nG keresés visszafelé szövegszöveg megjelenésekor -% co_kde % mozgassa a keresési szalag következő megjelenéséig -:$ mozgassa a keresőszöveg következő előfordulásához az ellenkező irányba

    
válasz adott Boris 05.10.2013 08:52
forrás
16

A nyomtatási betűk letiltásához a szerkesztés módban a nyilak megnyomásával a

gombra kattintva tehetünk
vi $HOME/.exrc 

(létrehozhat fájlt, ha nem létezik), majd hozzáadja aset nocompatible sort, és mentse el.

    
válasz adott Aniket Thakur 08.08.2015 14:46
forrás
11

A vi szerkesztőben háromféle mód van:

  • parancsmód
  • beviteli mód
  • alapértelmezett mód.

Ha megnyit egy fájlt, alapértelmezett módban vagy. Most, ha egy adott pozícióba akarsz menni a szövegedben, csak a nyílbillentyűket használd vagy h , j , k , l billentyűk. Ne feledje, hogy ez csak akkor működik, ha nem nyomja meg i (vagy bármely más bemeneti módot, például a , A , I ).

A "B" oka lehet, mert a nyílbillentyűk bemeneti módban nem működnek nyilaként, ezért csak nyomja meg a Esc gombot az alapértelmezett üzemmódba való belépéshez. A i vagy a a billentyű lenyomásával lépjünk be, és csak a i billentyűt nyomjuk meg, és a nyílgombokat vagy a h kbd>, j , k , l .

    
válasz adott ps_cool 21.11.2012 08:14
forrás
6

Pontosan ugyanaz volt a probléma, de nem csak a helyi gépen, hanem a gipszen keresztül a Win7 VM-en lévő sles gépeken keresztül egy citrix vevőn keresztül. Mind a helyi gazda, mind a távoli házigazdák az Ubuntu újratelepítése után mutatják ugyanazt a problémát.

Miután megtudta,

$ localectl list-keymaps 
Couldn't find any console keymaps.

Ennek a furcsa VI viselkedésnek a okai a csomagkonzolt adataim vannak, amelyek megoldják a problémát!

sudo apt-get install console-data
    
válasz adott kitingChris 18.01.2017 11:53
forrás
3

A megadott magyarázatok egy kicsit bizarrak. Van, de nem vim telepítve.

Alternatívák ellenőrzése:/etc/alternatives/vi & rightarrow; /usr/bin/vim.tiny

Tehát avi avim.tiny, és/etc/vim/vimrc.tiny -ot használ.

És avimrc.tiny -ban megtalálja a következő sort:

set compatible

Melyik a szinte az egyetlen dolog ebben a fájlban. Ne feledje, hogy/etc/vim/vimrcnocompatible -ot használ.

Vagy telepítsd a vim-t, vagy módosítsd avimrc.tiny fájlt, vagy hozzatok létre saját~/.vimrc -ot, amely tartalmazza a sort:

set nocompatible
    
válasz adott Gunstick 10.01.2017 23:11
forrás
2

Megjegyzés:

A többi bejegyzésben jó információk állnak rendelkezésre, de egyetlen hozzászólás sem próbálta megmagyarázni miért ezt a viselkedést. Sokan ezen a jövőben megbotlik. Ezt a kérdést is megoldhatja, mivel az előző bejegyzések bármelyike ​​valószínűleg segített neked?

Íme egy magyarázat :

Vi olyan szerkesztő, amely már régóta működik, és visszaemel a Unix rendszerekbe. Ez egy jó eszköz, de ez már iterated, és most van jobb. Vim később íródott, és ez az iteráció. Az emberek általában vi-ra utalnak, mint "vim-minimal" és a vim egy "javított" verzió a vi. Ezt gondolhatja így: vi a mag és a vim kiterjeszti rajta.

Valószínűleg hogyan fedezte fel a viselkedést :

Annak érdekében, hogy felfedezted ezt a problémát, megnyomta a " i gombot a beillesztés módba való belépéshez, majd a nyílgombokkal navigál a megfelelő soron és szerkeszt pont. Ez okozta a váratlan jelenséget.

1. vagy 2. megoldás

1)vi someFile A vi használatakor először lépjen át a szerkesztési pontra, majd írja be a beillesztési módba.

2)vim someFile Egyszerűen használja a vim elemet a kezdetektől.

Nem tudok elég hangsúlyozni a kézikönyv (man oldalak) olvasásához, vagy a -h segítségért. Miután beállítottad a mintában lévő mintákat, az ember oldalai a legjobb barátod lettél. Példa:man vi vagyman vim

Ellenőrizze, hogy a Vim telepítve van .

Nyisson meg egy konzol ablakot, és futtassa:

dpkg --list | grep vim

Ha valami ehhez hasonlót kapsz, akkor csak elkezdheted a vim használatát.

~ $ 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

Ha a parancssor semmit, akkor a vim nincs telepítve. Az alábbi példák segítségével frissítheti a tárolókat, majd telepítheti a vim szolgáltatást.

sudo apt-get update
sudo apt-get install vim

Az off-chance-ban, hogy vi vagy vim-et használsz, csak akkor, ha az interneten keresed, hogyan kell valamit megoldani, és elfelejted avim -ot beírni, van egy módja annak, hogy a jövőben meg tudod oldani. Figyelmeztetek, hogy figyeljen. Használhat egy alias-t, hogy felülírja a vi-et a vim-re való hivatkozással, hogy bármit is írjon a ritka jövőben, akkor a vim nélkül is "hoppá". pillanat. Mindig törölhet egy álnevet.

Típusvim .bashrc. Lépjen le az üres sorra, csak~ (vagy bármely más sorral, amely a (z)alias -al kezdődik (így összevonva vannak), majd nyomja meg az i billentyűt a -insert- A saját külön sorban adja meg a következőket:

alias vi='vim'

Nyomja meg aEsc gombot, majd írja be a:wq parancsot. Most újra kell töltened a fájlt. Típussource .bashrc Minden más, a szerkesztés után megnyitott shell automatikusan betölti a .bashrc fájlt.

    
válasz adott D75 30.10.2016 05:20
forrás
1

A hagyományos vi szerkesztő nem ismeri fel a nyilakat (... afair). Két megoldás van:

  1. használja vim helyett vi
  2. használja a h, j, k és l navigációt (a hagyományos vi btw-on szerkesztés közben nem tud navigálni)
válasz adott MadMike 05.10.2013 07:51
forrás
1

Ez aTERM változó következménye is lehet; állítsa be például:

 export TERM=xterm
    
válasz adott Jasper Nuyens 07.07.2017 15:54
forrás
1

Egyes rendszereken anocompatible opció nem érhető el, vagy nem oldja meg a problémát, ha egy plugin megszakítja a nyíl kulcsfunkcióit. Itt van egy megoldás ...

Szerkessze a.exrc fájlt a következő sorok közé:

map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha

Vagy ha a probléma csak normál módban létezik, akkornmap -ra változhat, és kihagyhatja az alábbia értéket:

nmap! ^[OA ^[k

és így tovább.

Itt vannak azok előállításához szükséges kulcskombinációk (csak az elsőt jeleníti meg):

map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka

Ez megszökik a szerkesztési módból, elmozdul a kívánt irányba, és visszalép a szerkesztési módba. Erre van szükség ahhoz, hogy megkerüljük a szökési szekvenciát a literális "ESC" és / vagy "

Forrás: link

    
válasz adott Dominic Comtois 08.06.2017 04:33
forrás