VIM: Ubuntu'da tam satıra nasıl gidilir


87

viUbuntu 12.10'da kullanıyorum . Bazı dosyalar oldukça uzun, bu yüzden dosyanın ortasına gitmek istediğimde, sayfayı aşağı kaydırmam veya aşağı kaydırmam gerekiyor.

Tam bir satır numarasına gitmek için bir VIM kısayolu var mı?


@vim uzmanları. Bu gerçekten Ubuntu- / bash- / Linux'a özel mi (OP etiketlerine göre)? Çok fazla vim kullanmıyorum, ancak kullanımlarım için Ubuntu / CentOS / Suse / Windows arasında en ufak bir fark görmedim.
Alexander Malakhov

Yanıtlar:


146
:150

sizi vi'deki 150. satıra götürecek

:1500

sizi vi'de 1500 numaralı hatta götürecek

Yorumlara göre denemek isteyebilirsiniz

150G

150. satıra ulaşmak için. bu daha az tuş vuruşudur, o zaman :150Enter hangi satırda olduğunuzdan emin değilseniz deneyin

 :set nu!

dikkat edin:

Her zaman çizgiyi görmek istiyorsanız, vim profilinizi düzenlemeyi düşünün. En sık

vi ~/.vimrc

ve Ekle

:set nu! 

ve yaz ve çık

:wq
#or you could use :x

bu vi dışında yapılabilir. Örneğin, bir metin dosyasında 5000 satırını silmek istersem, bir komut dosyası dili kullanabilirim. Örneğin, sed kullanmak aşağıdaki gibi olacaktır

sed -i '5000d;' inputFile.txt

10. satırdan 20. satıra kadar silmek

sed -i '10,20d;' inputFile.txt

-i'nin dosyayı yerinde düzenleyeceğine dikkat edin. -İ olmadan stdout olacaktır. Dene. stdout'u bir dosyaya yeniden yönlendirebilirsiniz

sed '5001,$d;' inputFile.txt >> appenedFile.txt

burada sizin için çok şey olabilir. bu satır 5001'den $ 'a siler. Dosyanın sonu $ olacak şekilde. >> bir dosyaya eklenecektir. burada as> yeni bir dosya oluşturur.

Bir dosyada kaç satır olduğunu merak ediyorsanız yazmak isteyebilirsiniz wc -l inputFile.txt

bunlardan bazıları çok önemsiz görünebilir, ancak 50.000 satırlık bir dosyayı düzenlemeye çalışıyorsanız, açıp geçiş yapmak biraz zaman alabilir. burada sadece son satırı silmek istediğinizi biliyorsanız, sed'i kullanabilir ve bunu çok daha kısa sürede yapabilirsiniz.

sed ayrıca bir dosyanın içinde arama yapabilir ve değiştirebilir. Ama belki awk, perl veya python da uygun bir çözüm olabilir.

ama genel olarak, vi'de iyi bir öğretici bulmak isteyebilirsiniz. binlerce var. Google'a danışırdım. Belki kendinize bir VIM Cheatsheat'ı bulun.


Sorun değil, cevabımı biraz genişlettim ama. İyi şanslar
Matchew

2
ayrıca, vim'de: n50% yazabilir ve dosyanın ortasına gidebilirsiniz.
Eric Fortis

1
Normal modda 150Gda aynısını yapar :150. Daha hızlı değil ama hatırlaması daha kolay olabilir.
romainl

@romainl 150gg aynı şeyi yapar. Her ikisi de gerçekten daha hızlı: 150 <cr>
Randy Morris

@Randy Morris - Evet, daha hızlı, <CR>hesaba katmayı unuttum .
romainl

14

Diğer vim ipuçları: komut modunda

  • H ekranın üstüne gider
  • M ekranın ortasına gider
  • L ekranın altına gider
  • gg ilk satıra gider
  • G son satıra gider

7

birkaç dakikanızı ayırın ve bu belgeyi okumaya başlayın . Uzun vadede özellikle yapılandırma dosyasını düzenlemede verimlilik için sizi ödüllendirir.


Bağlantı öldü
Peter David Carter

6

Açılmış bir terminalden, bir bash kabuğunda, dosyanızı çalıştırarak düzenleyin:

$ vi +N yourfile

NSatır numarası nerede .

Görüntülemek için ( moreveya less;):

$ less +N yourfile
$ more +N yourfile

İşaret , başlangıçta çalıştırma komutu+ anlamına gelir . Yani eğer komut sonra sadece bir sayıdır , ve , olacak şekilde bu atlar hat numarasıvilessmore .

Ancak /regex, belirli bir dizenin veya normal ifadenin ilk geçtiği yeri bulmak için de kullanabilirsiniz :

$ less +/Error logfile
$ less -i +/error logfile      # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...
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.