Vim'de aramadan önceki yerime nasıl geri dönebilirim?


258

Vim'de programlama Genellikle bir şey ararım, çekerim, sonra bulunduğum yere geri döner, eklerim, değiştiririm.

Sorun şu ki, aradım ve bulduktan sonra, manuel olarak bulunduğum yere geri dönmem gerekiyor.

Son aramamı başlattığımda bulunduğum yere geri dönmenin otomatik bir yolu var mı?


Yanıtlar:


393

Ctrl+ Obeni bir önceki yere götürüyor. Aramadan önce konum hakkında bilmiyorum.

Düzenleme: Ayrıca, `.yaptığınız son değişikliğe götürür.


Ayrıca, CTRL + O tuşlarına yeterince basıldığında, daha önce açılan dosyaları geri almaya başlayacağınız da görülüyor.
Mark Biek

1
Ctrl + O da tercih ettiğim yöntem. Sürekli kullanıyorum ve diğer editörlerin davranışlarını tekrarlamasını diliyorum.
amrox

45
Evet, CTRL-O ve CTRL-Sizi bulunduğunuz yere geri götürüyorum, güzel.
Edward Tanguay

8
Ctrl + T sizi yalnızca bir etiket kullanarak oraya geri götürür. Etiketleri kullanmadan aradıysanız, Ctrl + T sizi son etiketinizi
aramadan

1
Ben Vía'yı atlamak eğer fark ettik :70sonra ve :100, pres ctrl+okez özgün konumuna geri gider değil :( hat 70.
WhyNotHugo

91

Kullanım ``size arandı önce bulundukları aynı konuma geri atlamak için / atladı, ya ''sen arandı önce bulunduğunuz satırın başlangıcına geri atlamak için / atladı.


4
Sadece ilk maçta çalışıyorsanız, nsonraki maçlara -ing başladığınız yere geri atlamamanız anlamına gelir.
Kris

Arama yapıp değişiklik yaptıysanız ne olur?
Costa

1
Ayrıca kullanabilirsiniz g;ve g,önceki / sonraki değişikliğin konumuna gider.
21'de goetzc

39

Her zaman bir işaret koyarak yaptım.

  1. Komut modunda m[harf] tuşuna basın . Örneğin , işaret tanımlayıcısı olarak ama kullanarak geçerli satıra bir işaret koyar.

  2. İşaretine geri dönmek için '[harf] tuşuna basın . Örneğin, 'asizi 1. adımda ayarlanan satır işaretine götürür. Satırı işaretlediğiniz satırın sütun konumuna geri dönmek için `a( geri işaretini [harf] ) kullanın.

Şu anda ayarlanmış olan tüm işaretleri görmek için yazın :marks.


Biraz ilgisiz bir notta, işaretler hakkında başka şık bir şey keşfettim.

Diyelim ki yaparak b işaretine atlıyorsunuz mb. Vim, b' işaretine geçmeden önce işareti otomatik olarak (tek bir alıntıdır) hangi çizgi üzerinde olduğunuza göre ayarlar .

Bu 'b, o işarete atlamak için yapabileceğiniz, ardından ''daha önce bulunduğunuz yere geri dönmek için (2 tek tırnak) yapabileceğiniz anlamına gelir .

Bunu yanlışlıkla :markstüm işaretlerin bir listesini gösteren komutu kullanarak keşfettim .


6
Neyse ki bir işaret genellikle gereksizdir, çünkü vim bazı pozisyonları özel olarak takip eder ve onlara ``, ^ O, vb. ile
erişmenizi sağlar

işaret beni sadece üzerine konulduğu çizginin başına götürüyor gibi görünüyor. ):
Fzs2

1
@HermannIngjaldsson Şimdiye kadar bunu çözmüş olabilirsiniz, ancak 'işaretli çizgiye götürürken' sizi tam olarak doğru konuma götürecektir.
azmr

38

:help jumplistTüm bunları çok iyi açıkladığını gerçekten okumalısınız .


Bu yanıtı en iyi şekilde beğeniyorum, içinde çok fazla bilgi var: çoğu insanın bilmediği yardım (ve yakın zamana kadar bilmiyordum)
Christian Stewart

1
Ne harika bir okuma! Bu süper faydalı. Son zamanlarda bulunduğunuz yerler arasında gezinmek için <Co> ve <Ci>. Varsayılan olarak arabelleklerde çalışır
Costa


7

En basit yol, bir işaret koymaktır m[letter], daha sonra'[letter]


Vim ipuçlarını aradığımda seni görmek bir zevk. Ben ctrl-o ctrl-i ile birlikte daha fazla kullanıyorum çünkü daha kolay ve daha otomatik olarak ileri geri adım atıyor.
MattK

7

Bunu kullanıyorum:

nnoremap / ms/
nnoremap ? ms?

Sonra /veya tuşunu kullanarak bir şey ?ararsam çabucak geri dönebilirim `s. Mektubu sistediğiniz herhangi bir harfe değiştirebilirsiniz .


Burada sadece uyarı mişaretinden başka bir şey olarak tanımlanmış NerdTree gibi bir pencerede arama sonları , NerdTree durumunda menüdür.
Kris
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.