VIM: cara menuju ke baris tepat di Ubuntu

87

Saya menggunakan vidi Ubuntu 12.10. Beberapa file cukup panjang jadi ketika saya ingin pergi ke tengah file, saya harus halaman ke bawah atau ke bawah.

Apakah ada pintasan VIM untuk menuju ke nomor baris yang tepat?

kevin
sumber
Pakar @vii. Apakah ini benar-benar khusus untuk Ubuntu- / bash- / Linux (sesuai dengan tag OP)? Saya tidak banyak menggunakan vim, tetapi untuk penggunaan saya, saya belum melihat perbedaan sedikit pun di Ubuntu / CentOS / Suse / Windows.
Alexander Malakhov

Jawaban:

146
:150

akan membawa Anda ke baris 150 di vi

:1500

akan membawa Anda ke baris 1500 di vi

Sesuai komentar yang mungkin ingin Anda coba

150G

untuk mencapai baris 150. yang merupakan penekanan tombol yang lebih sedikit daripada :150Enter jika Anda tidak yakin baris apa yang sedang Anda coba

 :set nu!

perhatikan:

jika Anda ingin selalu melihat baris, pertimbangkan untuk mengedit profil vim Anda. Paling sering

vi ~/.vimrc

dan tambahkan

:set nu! 

dan menulis dan berhenti

:wq
#or you could use :x

ini dapat dilakukan di luar vi. Misalnya, jika saya ingin menghapus baris 5000 dalam file teks, saya dapat menggunakan bahasa skrip. Misalnya, menggunakan sed adalah sebagai berikut

sed -i '5000d;' inputFile.txt

untuk menghapus baris 10 hingga 20 itu

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

perhatikan -i akan mengedit file di tempatnya. Tanpa -i itu akan kebagian stdout. Cobalah. Anda dapat mengarahkan stdout ke file

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

ini mungkin banyak yang terjadi di sini untuk Anda. ini menghapus baris 5001 menjadi $. Dengan $ menjadi akhir file. >> akan ditambahkan ke file. dimana> membuat file baru.

jika Anda penasaran berapa banyak baris dalam sebuah file yang mungkin ingin Anda ketik wc -l inputFile.txt

beberapa di antaranya mungkin tampak sangat sepele, tetapi jika Anda mencoba mengedit file dengan 50.000 baris, mungkin perlu beberapa menit untuk membuka dan melintasi. di mana jika Anda tahu Anda hanya ingin menghapus baris terakhir, Anda dapat menggunakan sed dan melakukannya dalam waktu singkat.

sed juga dapat mencari dan mengganti di dalam file. Tapi mungkin awk, perl, atau python juga bisa menjadi solusi yang layak.

tetapi secara keseluruhan, Anda mungkin ingin menemukan tutorial yang bagus tentang vi. ribuan ada. Saya akan berkonsultasi dengan google. Mungkin menemukan diri Anda sebagai Cheatsheat VIM.

korek api
sumber
Tidak masalah, saya memperluas jawaban saya sedikit tapi. Semoga berhasil
pertandingan baru
2
juga, di vim Anda dapat mengetik: n50% dan menuju ke tengah file.
Eric Fortis
1
Dalam mode normal, 150Glakukan hal yang sama seperti :150. Ini tidak lebih cepat tetapi mungkin lebih mudah diingat.
romainl
@romainl 150gg melakukan hal yang sama. Keduanya memang lebih cepat dari: 150 <cr>
Randy Morris
@Randy Morris - Ya, lebih cepat, saya lupa <CR>memperhitungkan.
romainl
14

Tip vim lainnya: dalam mode perintah

  • H pergi ke bagian atas layar
  • M pergi ke tengah layar
  • L pergi ke bagian bawah layar
  • gg pergi ke baris pertama
  • G pergi ke baris terakhir
glenn jackman
sumber
7

luangkan beberapa menit dan mulailah membaca dokumen ini . Ini memberi Anda imbalan dalam jangka panjang untuk efisiensi dalam mengedit terutama file konfigurasi.

Jasonw
sumber
Link sekarang sudah mati
Peter David Carter
6

Dari terminal yang terbuka, di bash shell, cukup edit file Anda dengan menjalankan:

$ vi +N yourfile

Dimana Nnomor barisnya.

Untuk melihat ( moreatau less;):

$ less +N yourfile
$ more +N yourfile

Tanda +berarti perintah untuk dijalankan saat memulai . Jadi jika perintah hanya berupa angka, maka vi, lessdan more, akan melompat ke ini sebagai nomor baris .

Tetapi Anda juga dapat menggunakan /regexuntuk menemukan kemunculan pertama dari string atau regex tertentu:

$ less +/Error logfile
$ less -i +/error logfile      # -i Causes less's searches to ignore case
$ vi +/open.*myfile myprog...
F. Hauri
sumber