Cara melompat langsung ke nomor kolom di Vim

234

Kadang-kadang untuk keperluan debugging saya harus melakukan pekerjaan yang mengasyikkan melalui kode javascript yang diperkecil. Garis-garisnya mencapai 600 kolom. Pustaka pelaporan pengecualian cukup baik untuk memberikan saya koordinat kerusakan yang tepat dalam bentuk nomor baris dan nomor kolom. Namun saya tidak dapat menemukan cara untuk langsung melompat ke nomor kolom, meskipun saya dapat melompat ke garis dengan mudah.

Bagaimana saya bisa melakukannya?

Jayesh
sumber
Kedengarannya seperti ini alat yang perlu diciptakan. "Deminifikasi js saya, dan saat Anda berada di sana melompat ke tempat yang diidentifikasi oleh nomor kolom ini."
dnellis74
2
@ dnellis74 Alat itu ada. Ini disebut "peta sumber";)
Burgi
//, @Burgi, dapatkah ringkasan & tautan 3 kata?
Nathan Basanese

Jawaban:

333

The |perintah melakukan apa yang Anda inginkan, seperti dalam 30|akan membawa Anda ke kolom 30.

                                                        bar
|                       To screen column [count] in the current line.
                        exclusive motion.  Ceci n'est pas une pipe.

http://vimdoc.sourceforge.net/htmldoc/motion.html#bar

AB
sumber
41
Perlu diketahui, untuk penggunaan umum, bahwa ini adalah kolom layar , bukan kolom nyata . Ini berarti bahwa <Tab>karakter akan mendapatkan hasil yang berbeda. Jika karakter ini akan berada di sana, Anda malah akan ingin |30lhatau |29latau 029latau sesuatu seperti itu.
Chris Morgan
25
Anda juga dapat melewati angka sebelum berbagai perintah gerakan, mis. 50hAkan memindahkan 50 karakter ke kiri.
AB
7
:set nowrapjuga dapat membantu mengurangi kebingungan antara garis layar dan garis file.
David Pope
4
@ Davidvidope: perhatikan bahwa dalam hal ini "kolom layar" berarti bahwa itu masih relatif terhadap awal baris. g0mencapai "mulai dari garis layar saat ini".
Chris Morgan
10
Dokumentasi vim lucu: "Ceci n'est pas une pipe" :-)
Avinash Meetoo
45

Anda dapat menggunakan cursorfungsi ini. Misalnya, untuk melompat ke kolom 25 dari baris 15, Anda dapat menggunakan :call cursor(15,25).

Ravikant Mane
sumber
2
Ini memang memberikan jawaban untuk pertanyaan dan nyaman memiliki alternatif perintah Ex untuk skrip. Perhatikan bahwa jika nomor baris adalah nol, kursor akan tetap di baris saat ini.
Giles Gardam
Ini sangat baik untuk membuka Vim dari alat lain, karena panggilan ini dapat dilakukan pada command-line:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves
5

Jawaban alternatif yang berfungsi untuk saya di Mac OS adalah menggunakan perintah yang menggerakkan kursor ke kanan (yaitu l). Jadi jika kursor Anda ada di kolom pertama, dan Anda ingin meletakkan kursor di kolom 50 dari baris Anda saat ini, gunakan perintah:

49l
entpnerd
sumber