Soru Vim editöründen nasıl çıkılır?


Takılıyorum ve kaçamam. Diyor ki:

"type :quit<Enter> to quit VIM"

Ama yazdığımda sadece nesne gövdesinde görünür.


2719
2017-08-06 12:25


Menşei


Sadece VIM'i bırakmaya mı çalışıyorsun? Bu durumda, "kaçış" a basın ve sonra ': q' yazın. - Pop
Unutma kolon! Yazmalısın :quit ve sonra vur [ENTER] tuşuna basın. - Farahmand
Vim'in temellerini öğrenmek gerçekten çok kolay ve sisteminizde yerleşik olarak bulunuyor. Terminal tipinde "vimtutor". 25 dakika sonra normal metin editöründen daha hızlı gidiyor olacaksın! - Mark Robson
Önlemek git commit Gelecekte sizi vim'e gönderiyor: git config --global core.editor="nano" - Tom Kelly
posterity için SO blog makalesine bağlantı - Hong Ooi


Cevaplar:


I vur ESC "Normal mod" girmek için Sonra yazabilirsiniz : "Komut satırı modu" girmek için. Bir kolon (:) ekranın alt kısmında görünecek ve aşağıdaki komutlardan birini yazabilirsiniz. Bir komutu yürütmek için Girmek tuşuna basın.

  • :q  çıkmak için :quit)
  • :q! kaydetmeden çıkmak için (kısa :quit!)
  • :wq yazmak ve çıkmak
  • :wq! Dosya sadece okuma iznine sahip olsa bile yazma ve bırakma (eğer dosya yazma iznine sahip değilse: force write)
  • :x  yazmak ve çıkmak :wqama sadece değişiklikler varsa yazınız)
  • :exit yazmak ve çıkmak :x)
  • :qa hepsini bırakmak için :quitall)
  • :cq kaydetmeden çıkmak ve Vim sıfırdan farklı bir hata döndürmek (yani hatayla çık)

Vim'den doğrudan yazarak "Komut modu" dan da çıkabilirsiniz. ZZ kaydetmek ve çıkmak :x) veya ZQ sadece çıkmak için :q!). (Buradaki durumun önemli olduğunu unutmayın. ZZ ve zz aynı şeyi demek istemiyorum.)

Vim'in kapsamlı bir yardımı var. :help Komut - tüm sorularınızın cevaplarını ve yeni başlayanlar için bir öğretici bulabileceğiniz yer.


3762
2017-08-06 12:46



Esc'yi yeniden kullanmadıkça veya .vimrc'de garip bir eşleme yapmadığınız sürece kesinlikle gerekir. Eğer linux tipinde xev varsa ve kaçış yaptığınızda elde ettiğiniz keytype olduğundan emin olun. - dirvine
Esc'yi kullanamıyorsan ctrl + c'yi kullanabileceğini hatırla (benim kabuğum TotalTerminal'de olduğu için benim gibi). vim.wikia.com/wiki/Avoid_the_escape_key - dotnetCarpenter
:x == ZZ fakat :x ! = :wq. :x dosya iff dosyası değişti, :wq Dosyayı her zaman yaz inotify). - Hauleth
Dürüst olmak gerekirse, vim yardım sistemini kullanarak vim'in kendisinden daha zor bir zaman geçiriyorum ve çoğunlukla hızlı başvuru kartlarına ve çevrimiçi belgelere güveniyorum. - bgvaughan
Dosyada izinleriniz yoksa ancak sudo izinleriniz varsa :w ! sudo tee % - tvlooy


Bir komut girmeden önce ı vur ESC anahtar. Girdikten sonra Dönüş onaylamak.

ESC geçerli komutu bitirir ve Vim'i normal mod. Şimdi basarsan :, : de görünecek alt Ekranın Bu, aslında bir komut yazdığınızı ve dosyayı düzenlemediğinizi onaylar.

Çoğu komutun kısaltmaları vardır, isteğe bağlı kısım parantez içine alınır: c[ommand].

'*' İle işaretlenmiş komutlar yalnızca Vim'dir (Vi'de uygulanmaz).

Güvenli çıkış (kaydedilmemiş değişiklikler varsa başarısız olur):

  • :q[uit]  Akımdan çık pencere. Bu son pencere ise çıkın. Akımda değişiklikler yapıldığında bu başarısız olur tampon.
  • :qa[ll]* Değiştirilen bazı tamponlar olmadıkça, tüm pencereleri ve Vim'i kapatın.

İstemi durdur (kaydedilmemiş değişiklikler olup olmadığını sorar)

  • :conf[irm] q[uit]* Çıkın, ancak değiştirilmiş bazı tamponlar olduğunda istemi verin.
  • :conf[irm] xa[ll]* Değiştirilen tüm tamponları yazın ve Vim'den çıkın. Bazı arabelleklerin yazılamaması istendiğinde bir mesaj alın.

Yaz (kaydet) değişiklikleri ve çıkın:

  • :wq Geçerli dosyayı (değiştirilmemiş olsa bile) yazın ve çıkın. Dosya salt okunur olduğunda veya arabelleğin bir adı yoksa yazma başarısız olur. :wqa[ll]* tüm pencereler için.
  • :wq! Aynı, ancak salt okunur dosyaları bile yazar. :wqa[ll]!* tüm pencereler için.
  • :x[it], ZZ(ile ayrıntılar). Sadece dosyayı yaz eğer değiştirilmişse ve bırak :xa[ll]* tüm pencereler için.

Değişiklikleri iptal et ve çık:

  • :q[uit]!  ZQ* Görünür arabelleklerin de değiştiği durumlarda yazmadan çıkın. Değiştirilen gizli tamponlar olduğunda çıkmaz.
  • :qa[ll]!*, :quita[ll][!]* Çıkın Vim, tamponlarda (gizli dahil) tüm değişiklikler kaybolur.

Basın Dönüş komutu onaylamak için

Bu cevap tüm Vim yazmalarına ve komutlardan ve argümanlardan vazgeçmiyor. Gerçekten de Vim belgeleri.

Vim'in kapsamlı yerleşik yardımı var. ESC:helpDönüş açmak için.

Bu cevap esinlenerek diğeri, aslında @dirvine tarafından yazılmıştır ve diğer SO kullanıcıları tarafından düzenlenmiştir. Vim referansından, SO yorumlarından ve diğer kaynaklardan daha fazla bilgi ekledim. Vi ve Vim için farklar da yansıtılır.


140
2018-06-08 13:34





Resimler bin Unix komutuna ve seçeneklerine değer:

Enter image description here

Bunu her dönem öğrencilerime çiziyorum ve daha sonra vi'yu kavrayacak gibi görünüyor.

vi bir sonlu durum makinesi sadece üç devletle.

Başladıktan sonra vi, kısa, az sayıda karakter komutunu yazabileceğiniz COMMAND moduna girer. körü körüne. Ne yaptığını biliyorsun; Bu amatörler için değil.

Aslında metni düzenlemek istediğinizde, tek karakterli komutla INSERT moduna geçmelisiniz:

  • i: İmlecin yerine INSERT'e git
  • I: satırın başında INSERT moduna git
  • a: ekle sonra Kürsör
  • A: satırın sonuna ekle
  • O: açık Mevcut çizginin altında yeni bir çizgi
  • O: açık Mevcut satırın yerinde yeni bir satır

Şimdi, soruyu cevaplamak: çıkıyorum.

Vi modundan vi modundan çıkabilirsiniz:

  • q: herhangi bir değişiklik yapmadıysanız veya önceden kaydetmediyseniz
  • q !: herhangi bir değişiklik yok çıkmak
  • wq: kaydet ve çık
  • x: bu, wq'ya eşittir

w ve x bir dosya adı parametresi kabul et. Bir dosya adıyla vi'yı başlattıysanız, tekrar burada vermeniz gerekmez.

En sonunda, en önemlisi: EX moduna nasıl ulaşırsınız?

EX modu, ekranın alt satırında yazmayı görebileceğiniz uzun komutlardır. COMMAND modundan, iki nokta üst üste :ve yukarıdaki satırları yazabileceğiniz alt satırda bir sütun görünecektir.

INSERT modundan ESC'yi, yani Escape düğmesini COMMAND moduna, sonra da: EX moduna gitmek için itmelisiniz.

Emin değilseniz, ESC'ye basın ve bu sizi komut moduna getirecektir.

Bu nedenle, sağlam yöntem ESC -: - x-Enter dosya ve kaydeder ve kaydeder.


71
2018-05-26 12:24



Teşekkürler, görüntü çok yararlı. Ancak benim için w Ex'den Komut moduna geçmez, ancak Esc yapar. Neyi yanlış yapıyorum? - Nick Volynkin
Dosyanızı kaydeden ve COMMAND moduna geri dönen w-Enter yazarsanız. Kaydet ve çık komutlarının tam bir resmine sahip olmasını yazdım. - Gergely
yani demek istiyorsun :w. Sonra mükemmel bir anlam ifade ediyor. Bu arada, disketi yeniden yüklemek için bir komut var mı (yani, değişiklikleri geri almak, ancak dosyayı kapatmamak)? Eğer öyleyse, yanında olabilir w diyagramda. - Nick Volynkin
@Gergely Sadece karışıklığı anladım! Dokümanlardan normal mod da denir komut modu! Yani, komut modu! = Komut satırı modu. Vaov! - jpaugh
@NickVolynkin diskten yeniden yükleme komutu :e (ya da daha büyük olasılıkla) :e! o olmadan kaydedilmemiş değişiklikler hakkında sizi uyaracağından !) - JDS


Vim'de kaydetmeden çıkmak isterseniz ve Vim sıfır olmayan bir çıkış kodu döndürür, kullanabilirsiniz :cq.

Bunu her zaman kullanıyorum çünkü pembemsi kaymaya rahatsız olamam. !. Sık sık bir dosyaya kaydedilmeye gerek olmayan Vim'e bir şeyler yolluyorum. Ayrıca, bir checkin iptal etmek için sıfır olmayan bir değer ile çıkılması gereken bir tek SVN sarmalayıcısı da var.


65
2018-01-28 10:59



Ayrıca bir git taahhüt ya da visudo veya crontab iptal etmek için bunu kullanın… - Josh Lee


Bu sadece Vim'den çıkmak için en kötü durum senaryosunda, ne yapmak istediğiniz hakkında hiçbir fikriniz olmadıysa ve açtığınız dosyalara ne olacağını umursamıyorsanız.

Ctrl-cGirmekGirmekviGirmekCtrl- \CTRL-N:qa!Girmek

Bu çoğu zaman seni dışarı çıkarmalı.

Böyle bir şeye ihtiyacınız olduğu bazı ilginç durumlar:

  • iCtrl-ovg (ekleme modunu, ardından görsel modu ve ardından operatör bekleme modunu girin)

  • QappendGirmek

  • iCtrl-ogQCtrl-R=Ctrl-k (Bu dava için portalar sayesinde)

  • :set insertmode (Bu bir durum olduğunda Ctrl- \CTRL-N sizi normal moda döndürür)


Düzenleme: Yukarıdaki yanıtlar nedeniyle bu cevap düzeltildi. Eskiden:

ESCESCESC:qa!Girmek

Ancak, Ex moduna girdiyseniz bu işe yaramaz. Bu durumda yapmanız gerekecek:

viGirmek:qa!Girmek

Bu yüzden "Ne yaptığımı bilmek istemiyorum ve bir şeyleri kaydetmek istemiyorum, tam bir komut istiyorum" olabilir

viGirmekESCESCESC:qa!Girmek


38
2018-06-24 13:38



Ahh ne muhteşem bir etkinlik. Demek istediğim, sıkça ihtiyaç duyulan bir eylemi gerçekleştirmek için sadece 7 tuş vuruşu - cavalcade
@cavalcade Bu, editörün normal modda güvenli bir şekilde çıkmasını sağlamak için son derece genel bir yöntemdir. Normal kullanımda tek ihtiyacınız olan :qveya :wq - Dan Passaro
Yeterince genel değil! Peki ya ben (yeni başlayan) yazdım i<Ctrl-O>gQ<Ctrl-R>=<Ctrl-K>? - porges
Vim modlarının bu diziyi ezberlemekten daha iyi olduğunu öğrenmek daha kolay. - jwg
jwg Bu tuş dizisini bir arabelleğe nasıl yazacağını öğrenene kadar bekleyin. ^V, ve ybir makroya batırın! ;-) - jpaugh


Vim'den çıkmanız gerekiyorsa kolay mod (kullanırken -y seçenek) isabetli Vim moduna girebilirsiniz Ctrl + L ve sonra normal çıkış seçeneklerinden herhangi biri çalışır.


32
2017-07-18 13:48



Yine başka bir seçenek: kullanabilirsiniz Ctrl+O INSERT modundan geçici olarak çıkmak için :q. Bu kombinasyon ile Trick, tek bir komut yürütmek ve INSERT moduna geri dönmek için normal vim de yararlıdır. - Andrey Starodubtsev


İsabet sonra ESC (veya cmd + C bilgisayarımda vurman gerek : komut isteminin görünmesi için. Sonra girebilirsin quit.

Bilgilerinizin kaydedilmediğinden makinenin çıkmanıza izin vermeyeceğini görebilirsiniz. Yine de çıkmak isterseniz, girin ! doğrudan çıkıştan sonra (örn. :quit!).


23
2017-11-28 15:25





Vim'in üç çalışma modu vardır: Giriş modu, Komut modu ve Ex modu.

Giriş modu - Yazdığınız her şey, tüm tuş vuruşları ekranda yankılandı.

Komut modu veya Kaçış modu - Bu modda yazdığınız her şey bir komut olarak yorumlanır.

Ex modu - Bu başka bir editör, örn. Bu bir satır editörüdür. Satır başına veya bir dizi çizgiye göre çalışır. Bu modda, : Ekranın alt kısmında görünür. Bu eski editör.

Vim'den çıkmak için, ya harici modda ya da komut modundayken çıkabilirsiniz. Giriş modundayken Vim'den çıkamazsınız.

Ex modundan çıkılıyor

  1. Komut modunda olduğunuzdan emin olmalısınız. Bunu yapmak için, sadece ESC tuşuna basın.

  2. Tuşuna basarak eski moda geçin. : anahtar

  3. Çıkmak için ex modda aşağıdaki kombinasyonlardan birini kullanın:

    :q - çık :q! - kaydetmeden çık :wq - kaydet ve çık ya da yaz ve kapat :wq! - wq ile aynı, ancak dosya izinleri salt okunur olduğunda zorla yaz :x - yaz ve çık :qa - hepsini bırak. Birden fazla dosya açıldığında yararlıdır: vim abc.txt xyz.txt

Komut modundan çıkılıyor

  1. Çıkış tuşuna basın. Komut modundaysanız, bunu zaten yapmışsınızdır.

  2. Basın sermayesi ZZ (shift zz) - kaydet çık

  3. Basın sermayesi ZQ (shift zq) - kayıt etmeden çık.


22
2018-05-24 02:46



"Ex mode" dediğiniz şey aslında çağrılıyor komut satırı modu. Eski komutları girmenize izin verir, ancak bazılarıyla önemli farklılıklar. - jpaugh
Teşekkürler @jpaugh. Bu linkler şu anda düşüşte. Ama anladım. - tovishalck


Windows'da bir Git istemcisi kurarak Vim'i aldım. :q Benim için Vim'den çıkmazdım. :exit Ancak ...


14
2018-02-05 11:30



Benzer şekilde vim bir macintosh üzerinde git yapıyordu bu işe yaradı. - Joel
@Joel bunu benim macumda kontrol etti, her iki komut da okunaklı (vim -version 7.3). - Nick Volynkin
İçin Git Bash pencerelerde, içinde Vim ara sıra ESC çalışmıyor. kullanım CTRL + [ yerine. - Val


Eklemek istiyorum benim iki sent bu konuda. Soru soruldu İşte.

q sayı ile komut verilen konumdaki bölmeyi kapatır.

:q<split position>veya :<split position>q bu konumda bölünmeyi kapatacak.

Vim pencere düzeninizin aşağıdaki gibi olduğunu varsayalım:

-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------

Eğer koşarsan q1 Komut, ilk bölünmeyi kapatacak. q2 ikinci bölünmeyi kapatacak ve tam tersi.

Çıkış komutundaki bölünmüş konumun sırası önemli değil. :2qveya :q2 ikinci bölünmeyi kapatacak.

Komuta ilettiğiniz bölünmüş konum, akım bölmelerinin sayısından büyükse, son bölünmeyi kapatacaktır.

Örneğin, q100 Sadece üç bölme olduğu yukarıdaki pencere kurulumunda, son bölmeyi kapatacaktır (Bölünmüş 3).


2
2018-02-12 23:41