Ok tuşlarına vurmak vi editörüne karakter ekler

143

vi düzenleyicisinde insert modunda ok tuşlarını kullanmaya çalıştığımda, editöre şu karakterler eklenir:

  • B olsun,
  • A olsun,
  • D alırım
  • C olsun.

Lütfen bu sorunu çözmek için bana yardımcı olun.

    
sordu bvb 05.10.2013 07:04

11 cevap

177

Giriş dizinizde zaten .vimrc dosyanız yoksa, bunu kullanarak bir tane oluşturun:

vim ~/.vimrc

Bu satırı dosyanın en üstüne ekleyin:

set nocompatible

Dosyayı kaydedin ve bu sorunu sizin için çözmelisiniz. :)

    
verilen cevap Gaurav Manchanda 05.10.2013 09:23
46

Yüklemeyi yükle - & gt; Bu sorunu çözecektir.

sudo apt-get install vim

çok iyi vim / vi youtube öğreticiler, veya genellikle web bulunmamaktadır. Sorunun için

Sonra her zamanki gibi açık dosyalara devam

vi desired-file
    
verilen cevap sthysel 21.11.2012 09:03
26

vi ile i tıklandığında, Ekle metnini etkinleştirin.
Bu komut, dosyanıza metin eklemenizi sağlar.
Ve sağ tıklandığında:

  • tarihinde bir "A" eklenir,
  • tarihinde bir "B" ifadesi eklenir,
  • ...

Till bu komutu devre dışı bıraktınız.

% Co_de% içindeki bir komutu devre dışı bırakmak için: sadece Esc 'e tıklayın
Ve sonra ok tuşlarınızın normal kullanımını geri alacaksınız:

  • yukarı çıkmak,
  • aşağı gitmek,
  • ...

FYI, burada vi komutları var:
Bu kaynağından .

vi , değiştirilmiş dosyayı orijinal çağrılırken dosyaya yazılır
:x vi çıkıp çıkma , değiştirilmiş dosyayı orijinal çağırma adında bir dosyaya yazdı
:wq
çıkın > :q , bu vi arama için en son değişiklikler kaydedilmemesine rağmen

imleci bir satır aşağı taşır taşı imleci bir satır yukarı < br> taşı imleç bir karakter soladı. taşı imleç sağa doğru bir karakter

Yaptığın her şeyden

:q! geri al ; Basit bir geçiş% 'si u yineleme neyse ne yaparsanız yapın

imlecinden önce . insert Esc 'a bas. Geçerli kodun başında i ekle metni satır, Esc 'ye çarptı. I imlecinden sonra metnini Esc olana kadar <%> a ekle geçerli satırın sonuna kadar Esc 'a vuracak ve A ' a varacak ve metni olana kadar yeni bir satıra yerleştirecektir. Esc o 'ı aç ' a basıp mevcut satırın üzerine Esc yazana kadar yeni bir satıra metni koyun.

O değiştir imlecin altındaki tek karakter (yok Esc gerekli)
r değiştir geçerli kelime imlecin altındaki karakterle başlayarak yeni metinle, Esc 'ye çarptı
cw sil imlecin altındaki tek karakter%' si x delete İmlecin altındaki karakterle başlayan N karakterleri

Nx sil imlecin altındaki karakterle başlayan tek kelime
dw değiştir (değiştir) Geçerli satırdaki karakterler, Esc 'ye çarptı



sil

Mevcut satırın tamamı C sil
D sil Geçerli satırdan başlayarak N satırları; örneğin, 5dd 5 satırı siler. dd kopyala (yank, kes) geçerli satırı arabelleğe yazdı
Ndd kopyala (yank, kesim) Geçerli satır da dahil olmak üzere bir sonraki N satırı, arabelleğe yazılır.% arabellekte olan satır (lar), geçerli satırdan sonra metin içine
<= yy yapıştırın

Nyy (sıfır) imlecini mevcut satırın başlangıcına (imlecin bulunduğu yere) aktarın
p taşı sonu imleci Geçerli satırın% 'si 0 taşı imlecin sonraki kelimenin başına geçmesi

$ taşı imleci önceki kelimenin başına dön… w Dönüş veya b taşı imleci dosyada ilk satıra% 'si :0 Return veya 1G taşı imleç satırına% ini :n döndürün veya nG taşı imleci dosyadaki son satıra taşı

:$ arama metninde dizenin oluşumu için ileriye doğru
% s_de% ara metindeki dizginin oluşması için geriye doğru geri git% co_de Arama dizesinin sonraki gerçekleşmesi için% taşı 'a gidin - G hareketi , arama dizesinin bir sonraki zıt yönüne doğru ilerleyin

    
verilen cevap Boris 05.10.2013 08:52
16

Düzenleme modunda oklara basarken baskı harflerini devre dışı bırakmak için aşağıdakileri yapabilirsiniz

vi $HOME/.exrc 

(eğer mevcut değilse dosya oluşturun) ve sonra set nocompatible satırını ona ekleyin ve kaydedin.

    
verilen cevap Aniket Thakur 08.08.2015 14:46
11

vi editöründe üç mod vardır:

  • komut modu
  • giriş modu
  • varsayılan mod.

Bir dosyayı açtığınızda, varsayılan moddasınız. Şimdi metninizde belirli bir konuma gitmek istiyorsanız, sadece ok tuşlarını kullanın veya h , j , k , tuşlarını kullanın. l tuşları. Bunun yalnızca i (ya da a , A , gibi herhangi bir giriş kipine girme komutu vermediğinizde çalışacağını unutmayın. ).

'B' nedeni, giriş modundaki ok tuşları ok tuşları olarak çalışmadığı için, herhangi bir zamanda varsayılan moda gitmek için Esc tuşuna basmanız yeterlidir. Giriş moduna geçmek için i veya a tuşlarına basın ve gezinmek için i tuşuna basın ve ok tuşlarını kullanın veya h , j , k , l .

    
verilen cevap ps_cool 21.11.2012 08:14
6

Aynı problemi sadece yerel makinemde değil, aynı zamanda bir Win7 VM'de bir citrix alıcısının üzerindeki bir sling makinesindeki macun ile de yaptım. Hem yerel ana bilgisayar hem de uzak ana bilgisayarlar, Ubuntu'nun yeniden yüklenmesinin aynı sorunu yaşadığını gösterir.

Bunu öğrendikten sonra

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

Bu garip VI davranışına, sorunu çözen paket konsol-verilerini kurdum!

sudo apt-get install console-data
    
verilen cevap kitingChris 18.01.2017 11:53
3

Verilen tüm açıklamalar biraz tuhaf. Vi var ama vim yüklü değil.

Alternatifleri kontrol etme: /etc/alternatives/vi & rightarrow; % Co_de%

Yani /usr/bin/vim.tiny , vi ve vim.tiny kullanıyor.

Ve /etc/vim/vimrc.tiny 'de aşağıdaki satırı bulacaksınız:

set compatible

Bu dosyadaki neredeyse tek şey budur. % Co_de% 'si vimrc.tiny kullanıyor.

.

Yani vim yükleyin veya /etc/vim/vimrc dosyasını değiştirin veya satırı içermesi gereken nocompatible değerini oluşturun:

set nocompatible
    
verilen cevap Gunstick 10.01.2017 23:11
1

Geleneksel vi düzenleyici, ok tuşlarını tanımıyor (... afair). İki çözüm var:

  1. vi yerine vim kullan
  2. gezinmek için h, j, k ve l tuşlarını kullanın (geleneksel vi btw'de düzenleme yaparken gezinemezsiniz.)
verilen cevap MadMike 05.10.2013 07:51
1

Not:

Diğer yayınlarda iyi bilgiler var, ancak yayınların hiçbiri bu davranışın neden olduğunu açıklamaya çalıştı. Gelecekte pek çok insan bu konuda yanılmak zorunda. Ayrıca, önceki soruların herhangi biri size yardımcı olabileceğinden, bu sorunun çözüme kavuşturulmasını sağlayabilir misiniz?

İşte bir açıklama :

Vi uzun bir süredir edindiğimiz ve kökleri Unix sistemlerine geri dönen bir editördür. Bu iyi bir araç ama üzerinde yinelendi ve şimdi daha iyi. Vim daha sonra yazıldı ve bu yineleme. İnsanlar yaygın olarak vi'ya “en az” olarak değinirler ve vim ise vi'nin “geliştirilmiş” bir versiyonudur. Bunu şöyle düşünebilirsiniz: vi çekirdek ve vim genişler.

Olası davranışları nasıl keşfettiniz :

Bu sorunu keşfettiğiniz için ekle moduna girmek için " i " düğmesine bastıktan sonra doğru satırda gezinmek ve düzenlemek için ok tuşlarınızı kullandınız. puan. Beklenmedik char meselesine neden olan budur.

Çözüm 1 veya 2

1) vi someFile vi kullanırken, önce düzenleme noktasına gidin, ardından ekleme moduna girin.

2) vim someFile Baştan başlayarak vim 'i kullanın.

El kitabını okuyacağım (kılavuz sayfalar) veya yardım için -h seçeneğini kullanamayacağım. Kabuktaki desenleri ayarladıktan sonra, adam sayfaları en iyi arkadaşınız olur. Örnek: man vi veya man vim

Vim'in yüklü olduğunu doğrulayın .

Bir konsol penceresi açın ve çalıştırın:

dpkg --list | grep vim

Buna benzer bir şey alırsanız, vim kullanmaya başlayabilirsiniz.

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

Komut istemi hiçbir şeyle geri dönmezse, vim yüklenmemiş demektir. Depolarınızı güncellemek için aşağıdaki örnekleri kullanın ve ardından vim yükleyin.

sudo apt-get update
sudo apt-get install vim

Eğer internette arama yaparken sadece bir şeyleri nasıl düzelteceğinizi ve vim yazmayı unuttuğunuzda vi ya da vim kullanmanız olasılığından dolayı, geleceği düzeltmek için kullanabileceğiniz bir yol var. Dikkat etmene dikkat ederim. Vi ile ilgili bir referans ile vi'nın üzerine yazmak için bir takma ad kullanabilirsiniz. Böylece, nadiren yazdığınız ne olursa olsun, "oops!" an. Her zaman bir takma adı daha sonra silebilirsiniz.

vim .bashrc yazın. Boş bir satıra sadece ~ (ya da alias ile başlayan başka bir satıra) (böylece birlikte gruplandırılır) aşağıya inin ve ardından i tuşuna basarak -insert- girin Kendi ayrı satırında, aşağıdakileri girin:

alias vi='vim'

Esc tuşuna basın ve :wq yazın. Şimdi dosyayı yeniden yüklemeniz gerekiyor. % Co_de% yazın. Bu düzenlemeleri yaptıktan sonra açılan diğer kabuklar .bashrc dosyasını otomatik olarak yükleyecektir.

    
verilen cevap D75 30.10.2016 05:20
1

Bu ayrıca TERM değişkeninden de kaynaklanabilir. örneğin şöyle ayarlayın:

 export TERM=xterm
    
verilen cevap Jasper Nuyens 07.07.2017 15:54
1

Bazı sistemlerde, nocompatible seçeneği kullanılamaz veya bir eklenti ok tuş işlevselliğini bozarsa sorunu çözmeyebilir. İşte bir çözüm ...

Aşağıdaki satırları içerecek şekilde .exrc dosyasını düzenleyin:

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

Veya, sorun yalnızca normal modda mevcutsa, nmap olarak değiştirebilir ve aşağıdaki gibi a değerini atlayabilirsiniz:

nmap! ^[OA ^[k

vb.

İşte bunları üretmek için gereken temel kombinasyonlar (yalnızca ilkini gösterir):

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

Bu düzenleme modundan çıkar, istenen yönde hareket eder ve reenters düzenleme modunu kullanır. Bu, kaçış dizisini, bir

Kaynak: İşte

    
verilen cevap Dominic Comtois 08.06.2017 04:33

Etiketlerdeki diğer soruları oku