Bagaimana cara menunjukkan kolom saat ini di bilah status di vim?


188

Saya ingin menunjukkan kolom saat ini di bilah status, seperti yang umum di banyak editor teks lainnya. Misalnya ada baiknya mengetahui apakah Anda berada di sekitar kolom 80 atau lebih.

Bagaimana cara menampilkan kolom saat ini di bilah status?


Jika Anda ingin menampilkan kolom kursor saat ini, ketik: echo col ('.').
SibiCoder

Jawaban:


219

Coba jika mengatur opsi 'penggaris' adalah apa yang Anda cari. Di komputer saya di kanan bawah menunjukkan garis dan kolom di mana saya memiliki kursor.

:set ruler

EDIT KE KOMENTAR :

Dari bantuan vim (perintah :help ruler):

Jika jumlah karakter yang ditampilkan berbeda dari jumlah byte dalam teks (misalnya, untuk TAB atau karakter multi-byte), kolom teks (nomor byte) dan kolom layar ditampilkan, dipisahkan dengan tanda hubung.

Anda dapat mencoba mengubahnya dengan rulerformatopsi, seperti:set rulerformat=%l,%v


Ya, agak. Tapi itu menunjukkan nilai yang aneh misalnya 23,62-6823 tampaknya menjadi garis. Bagaimana saya menafsirkan 62-68kolom?
Jonas

7
62 sedang menghitung tab sebagai satu karakter, 68 menghitung tab yang diperluas
RedGrittyBrick

1
Dari perintah ': help ruler': "Jika jumlah karakter yang ditampilkan berbeda dari jumlah byte dalam teks (mis., Untuk TAB atau karakter multi-byte), baik kolom teks (nomor byte) dan layar kolom ditampilkan, dipisahkan dengan tanda hubung. " Anda dapat mencoba mengubahnya dengan opsi 'rulerformat', seperti ': set rulerformat =% l,% v'
Birei

rulertidak bekerja dengan windows terpisah di Vim.
Mihai

@Jonas Tidak hanya tab, seperti yang dikatakan RedGrittyBrick, tetapi juga karakter versus byte. Ini sangat jelas dalam file UTF-8 di mana mesin terbang karakter tunggal memiliki titik kode multi-byte. Misalnya, Latin eñe (n dengan tilde di atasnya, diucapkan EN-ya) adalah mesin terbang karakter tunggal tetapi membutuhkan dua byte untuk mewakili titik kode (\ xC3B1), dan sepertiga (1/3) adalah mesin terbang karakter tunggal dengan titik kode tiga byte (\ xE28593).
Luv2code

27

Lihat :help statuslinebanyak opsi yang tersedia.

Saya memiliki ini di ~/.vimrcantara beberapa arahan saya:

set statusline+=col:\ %c,

output yang mana

col: 64

di status saya.

Saya tidak punya set ruler.


1
Ini tidak berhasil untuk saya. Saya mungkin perlu beberapa pengaturan lagi.
Jonas

3
Jonas, Anda mungkin harus menggunakan set laststatus=2di Anda .vimrcuntuk selalu menampilkan baris status. (0 -> tidak pernah menampilkan baris status, 1 -> hanya jika setidaknya ada dua jendela, 2 -> selalu menampilkan baris status).
pabuisson

Saya menggunakan yang berikut ini untuk memberikan ruang sebelum ini dan hal-hal sebelumnya pada baris status: set statusline + = \ col: \% c,
David Baucum

18

Cara lain untuk melakukan ini adalah dengan melakukan 'g Ctrl-G', yang mencetak posisi kursor saat ini dalam lima cara: Kolom, Baris, Kata, Karakter dan Byte. (dari http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G )


Solusi ini memiliki sesuatu yang rapi, yang membedakan Column dan VisibleColumn. Karakter yang tidak dapat dicetak ditampilkan 2 kolom, tetapi harus dihitung sebagai satu. Jika karakter non dicetak output terlihat seperti ini: RealColumn-VisibleColumn, Line, Word, Character and Byte.
mxlian

17

Atau, biarkan 'penggaris' tidak disetel, kenaikan kinerja, dan tekan CTRL-G saat Anda ingin melihat kolom saat ini.


3
Memukul Ctrl-Anything tidak terdengar seperti peningkatan kinerja. Kami sedang mengetik karakter. Tidak ada manusia yang memiliki jari dan mata yang terbang cukup cepat untuk melihat perbedaan kinerja semacam ini.
macetw

10

Saya akan didepresiasi menggunakan set penggaris karena saya percaya itu tidak kompatibel dengan opsi statusline, misalnya jika Anda mengatur statusline untuk menampilkan file penuh dalam kombinasi dengan set penggaris

set statusline+=%F

set ruler

Maka TIDAK menampilkan nomor kolom tetapi hanya file penuh di bilah status. Namun jika Anda memasukkan yang berikut ini di .vimrc Anda

set statusline+=%F\ %l\:%c

Ini akan menampilkan semuanya dengan benar, yaitu

[Nama file / nama file] [linenumber]: [nomor kolom]


2

Untuk orang lain yang mencari jawaban ini dan tidak terbiasa bekerja dengan VIm, secara pribadi jawaban paling sederhana yang saya temukan adalah menambahkan baris ini ke akhir file .vimrc Anda di direktori home Anda:

set ruler

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.