vi
Editörde insert modunda ok tuşlarını kullanmaya çalıştığımda editöre şu karakterler ekleniyor:
- için ↓ben, B olsun
- için ↑ben bir olsun,
- için ←ben, D olsun
- için →bir C olsun
Lütfen bu sorunu çözmeme yardımcı olun.
vi
Editörde insert modunda ok tuşlarını kullanmaya çalıştığımda editöre şu karakterler ekleniyor:
Lütfen bu sorunu çözmeme yardımcı olun.
Yanıtlar:
.vimrc
Ana dizininizde zaten bir dosya yoksa, bunu kullanarak bir tane oluşturun:
vim ~/.vimrc
Bu satırı dosyanın üstüne ekleyin:
set nocompatible
Dosyayı kaydedin ve bu sorunu sizin için çözmelidir. :)
vi
yerine vim
, aynı yapılandırmayı yapmak zorunda ama ~/.exrc
dosyanın.
Install vim -> Bu sorunu çözecektir.
sudo apt-get install vim
Genelde web'de veya youtube'da birçok iyi vim / vi dersi var. Sorununuz için buraya bakınız
Ardından dosyaları her zamanki gibi açmaya devam edin :
vi desired-file
İle vi
, üzerine tıkladığınızda metni eklemeki için komutu etkinleştirin .
Bu komut, dosyanıza metin eklemenizi sağlar.
Ve sağ tıkladığınızda:
Bu komutu devre dışı bırakana kadar .
Bir komutu devre dışı bırakmak için vi
: üzerine tıklayın Esc
ve ardından ok tuşlarının normal kullanımını geri alacaksınız:
Bilginize, işte bazı vi
komutlar:
Bu kaynaktan .
:x
Return vi çıkın , değiştirilmiş dosyayı yazma orijinal çağırma adlandırılmış dosyası için
:wq
Return vi çıkın orijinal çağırma adlandırılmış dosyası değiştirilmiş dosyayı yazma
:q
Return vi çıkın (veya çıkış)
:q!
Return vi çıkın son değişiklikler bu vi çağrı için kaydedilmedi rağmen
↓ hareket aşağı imleç bir satır
↓ hareket imleç yukarı bir satır
← hareket imleç bir karakter sola
→ hareket doğru bir karakter imleci
u
az önce yaptığın şeyi geri al ; Basit bir geçiş
.
kokan yaptığının ne olursa olsun
i
insert kadar imlecin önce metni Escisabet
I
insert kadar geçerli satırın başında metnin Escisabet
a
eklemek kadar, imlecin arkasına metin Escisabet
A
eklemek geçerli satırın sonuna kadar olan metni kadar Escisabet
o
açık ve güncel sınırının altında yeni bir satır metni koymak kadar, Eschit
O
açık ve kadar geçerli çizginin üzerinde yeni bir satıra metni koymak Eschit
r
yerine imlecin (hayır altında tek bir karakter Escgerekli)
cw
değiştirmek kadar, imlecin altındaki karakteri ile başlayan yeni metinle güncel sözcüğü Escisabet
x
silmek imlecin altındaki bir tek karakteri
Nx
silmek imlecin altındaki karakteri ile başlayan N karakterleri
dw
silmek imleç altında karakterle başlayan tek kelime
C
değişikliği Geçerli satırdaki karakterleri (değiştir), Escisabet edene kadar satırın kalanını
D
sil , mevcut imleç konumundan başlayarak
dd
Silmek tüm geçerli satırı
Ndd
silin akım çizgisi ile başlayan N hatları; örneğin, 5dd 5 satır siler
yy
kopyalama (yank, kesme) tamponu içine mevcut hat
Nyy
kopya tampona, mevcut satır da dahil olmak üzere, bir sonraki N hatları (yank kesilmiş)
p
yapıştırmak metinden sonra içine tampon maddesi içinde hat (lar) mevcut çizgi
0
(sıfır) hareket imleç geçerli hat (imleç bir) başlatmak için
$
hareket akım hattı sonuna imleci
w
hareket sonraki kelime başlangıcına imleci
b
hareket sözcüğü önceki başlarına dayanan imleç
:0
Returnveya 1G
taşımak dosyasındaki ilk satıra imleci
:n
Returnveya nG
hareket imleç n satırı
:$
Returnveya imleci dosyadaki son satıra G
taşımak için
/string
arama metin dizesinin bir oluşum için ileri
?string
arama metin dizesinin bir oluşum için geri
n
hareket arama kelimesi bir sonraki oluşumu için
N
hareket ters yönde arama dizesi sonraki oluşumuna
:help compatible
: ": Bu seçenek varsayılan olarak açık ve Vi varsayılanları Bu varsayılan, Vim'i Vi gibi kullanmak isteyenler ve 'uyumlu' seçenek hakkında bir şey bilmek bile istemiyorlardı. "
Düzenleme modunda oklara basıldığında harflerin yazdırılmasını devre dışı bırakmak için aşağıdakileri yapabilirsiniz
vi $HOME/.exrc
(yoksa dosya oluşturun) ve sonra satır ekleyin set nocompatible
ve kaydedin.
:version
yük emri çıkışına bakınız (ayrıca :h .exrc
veya :h init
). Birinin hem vi hem de vim'de uygulanacak bir ortam isteyebileceğini ya da alışkanlık kuvveti olabileceğini düşünüyorum.
Vi editöründe üç mod vardır:
Bir dosyayı açtığınızda, varsayılan moddasınızdır. Şimdi, senin metninde belirli bir konuma gitmek sadece ok tuşlarını veya kullanımını kullanmak istiyorsanız h, j, k, ltuşları. Eğer basıldığında değil bu sadece kullanılacağını unutmayın i(veya başka bir giriş modu gibi komutu girerek a, A, I).
'B' nedeni, giriş modundaki ok tuşlarının ok tuşları olarak işlev görmemesi olabilir, bu nedenle Escistediğiniz zaman varsayılan moda geçmek için düğmesine basın . Giriş modu basına kaydırmaya zaman iya ave gezinmek için sadece basın ianahtar ve kullanım ok tuşlarını veya h, j, k, l.
Tam olarak aynı Sorunu yaşadım ama sadece yerel makinemde değil, Win7 VM'de bir citrix alıcısı üzerindeki bir sles makinesindeki macunla yapılan bağlantılarda da. Hem yerel ana bilgisayar hem de uzak ana bilgisayar, Ubuntu'nun yeniden yüklenmesinden sonra aynı sorunu yaşadıklarını göstermektedir.
Bunu öğrendikten sonra
$ localectl list-keymaps
Couldn't find any console keymaps.
Bu garip VI davranışına neden oluyor Bu sorunu çözen paket veri paketini yükledim!
sudo apt-get install console-data
Not:
Diğer yayınlarda iyi bilgiler var ancak yayınların hiçbiri bu davranışın neden olduğunu açıklamaya çalışmadı . Gelecekte pek çok insan bu konuda yanılmak zorundadır. Ayrıca, önceki yazıların herhangi birinin size yardımcı olabileceğinden bu soruyu çözülmüş olarak işaretler misiniz?
İşte bir açıklama :
Vi , uzun süredir Unix sistemlerine kök salmış bir editör. Bu iyi bir araç ama yinelenmiş ve şimdi daha iyi. Vim daha sonra yazılmış ve bu yineleme. İnsanlar genellikle vi'yi 'vim-minimal' olarak adlandırır ve vim, vi'nin "geliştirilmiş" bir versiyonudur. Bunu şöyle düşünebilirsiniz: vi'nin özü ve vim bunun üzerine yayılıyor.
Muhtemelen davranışı nasıl keşfettiğin :
Bu sorunu keşfedebilmeniz için, ekleme moduna girmek için " i " düğmesine bastınız ve sonra doğru satır ve düzenleme noktasında gezinmek için ok tuşlarını kullandınız. Beklenmedik karakter sorununa neden olan şey bu.
Çözüm 1 veya 2
1) vivi someFile
kullanırken , önce düzenleme noktasına gidin, ardından ekleme moduna girin.
2) vim someFile
Sadece baştan vim kullanın .
El kitabını (man sayfalarını) okumak veya yardım için -h kullanmak için yeterince stres kullanamıyorum. Kabuktaki kalıplara uyum sağladığınızda, man sayfaları en iyi arkadaşınız olur. Örnek: man vi
veyaman vim
Vim'nin kurulu olduğunu doğrulayın .
Bir konsol penceresi açın ve şu komutu çalıştırın:
dpkg --list | grep vim
Buna benzer bir şey alırsanız, sadece 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 şey olmadan geri dönerse, vim kurulu değildir. Depolarınızı güncellemek için aşağıdaki örnekleri kullanın ve ardından vim'i yükleyin.
sudo apt-get update
sudo apt-get install vim
Sadece internette bir şeyi nasıl düzeltirken yazmayı unutursanız ve yazmayı unutursanız, vi veya vim kullanmanızın şanssız olduğu durumlarda vim
, gelecek için düzeltebileceğiniz bir yol vardır. Dikkatini vermen için seni uyarıyorum. Vim'e atıfta bulunmak için vi'nın üzerine yazmak için takma ad kullanabilirsiniz, böylece nadir gelecekte ne yazdığınız önemli değil, bu "ayy!" Olmadan vim elde edersiniz. an. Bir takma adı daha sonra her zaman silebilirsiniz.
Yazın vim .bashrc
. Boş satırın altına sadece ~
(veya birlikte başlayan başka bir satıra (veya alias
birlikte gruplandırılmış)) gidin ve ardından -insert moduna girmek için i tuşuna basın. Kendi ayrı satırında aşağıdakini girin:
alias vi='vim'
Tuşuna basın Esc
ve sonra yazın :wq
. Şimdi dosyayı yeniden yüklemeniz gerekiyor. Tip source .bashrc
Eğer bu düzenlemeler otomatik Bashrc dosyasını yükleyecek yaptıktan sonra açılır Başka kabuk.
Verilen tüm açıklamalar biraz tuhaf. Vi var ama vim yüklü değil.
Alternatifleri kontrol etme: /etc/alternatives/vi
→/usr/bin/vim.tiny
Yani vi
olup vim.tiny
, ve kullandığı /etc/vim/vimrc.tiny
.
Ve vimrc.tiny
sende şu satırı bul:
set compatible
Neredeyse bu dosyadaki tek şey. /etc/vim/vimrc
İçinde olduğunu unutmayın nocompatible
.
Öyleyse ya vim'i kurun ya da vimrc.tiny
dosyayı değiştirin ya ~/.vimrc
da satırı içermesi gereken bir tane oluşturun :
set nocompatible
~/.vimrc
ve ayarlama nocompatible
: askubuntu.com/a/353944/158442 , veya 3. bir sistem dosyasının düzenlenmesi. Yalnızca düzenleme önerisi /etc/vim/vimrc.tiny
yenidir, ancak siz de onlarla aynı şeyi önerirken cevapları tuhaf olarak adlandırırsınız.
Geleneksel vi editörü ok tuşlarını tanımıyor (… haksız). İki çözüm var:
Bu TERM
değişkene bağlı olabilir ; örneğin şöyle ayarlayın:
export TERM=xterm
Bazı sistemlerde, nocompatible
seçenek kullanılamaz veya bir eklenti ok tuşunun işlevselliğini bozarsa sorunu çözemeyebilir. İşte bir geçici çözüm ...
.exrc
Aşağıdaki satırları dahil etmek için dosyayı düzenleyin:
map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha
Veya sorun yalnızca normal modda mevcutsa nmap
, aşağıdakileri değiştirebilir ve atlayabilirsiniz a
:
nmap! ^[OA ^[k
ve bunun gibi.
İşte bunları üretmek için gereken anahtar kombinasyonlar (sadece birincisini göstererek):
map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka
Bu düzenleme modundan kaçar, istenen yönde hareket eder ve düzenleme modunu yeniden uygular. Vi'nin kaçış dizisini değişmez bir <ESC> <O> <A> vs. dizisi olarak okumasını engellemek için bu gereklidir.
VI için "~ / .exrc" dosyasını oluşturun veya düzenleyin veya VIM "~ / .vimrc" dosyasını oluşturun veya düzenleyin veya çizgiye ekleyin.
set nocompatible
Bu yazının yazıldığı tarihte, en çok oy alan ikinci maddeye girişlerinin neden kabul edilmediğini merak eden övgüler var. Bunun nedeni, diğer editörlerin kurulmasına izin vermeyen ana bilgisayarlar olmasıdır. O zaman bile vim bazen aynı etkilere sahiptir, bu yüzden ilk iki girişten bir sürü kullanılabilir bilgi vardır. Bununla birlikte yorum yapamam, ancak umarım bu, hiçbirinin% 100 doğru olmadığının nedenlerini temizler.
Nedense, Ubuntu yeni 18.04 VPS'mde kullanıcı kökü için envvar HOME'u başlatmayı ihmal etti. Bu durumda, vi .vimrc dosyasını bulamıyor. Sorun normal kullanıcılar için oluşmaz (/ / / / in / home).
Değişkeni kontrol etmek için:
echo $HOME
Bu boş bir satırla sonuçlanırsa, değişken ayarlanmaz. Sorun sonra gitti
export HOME=/root
Komutu /root/.bashrc dosyasına taşıdım (bunun genellikle nerede olduğunu bilmiyorum).