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:
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,
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.
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]
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:
Jawaban:
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.
EDIT KE KOMENTAR :
Dari bantuan vim (perintah
:help ruler
):Anda dapat mencoba mengubahnya dengan
rulerformat
opsi, seperti:set rulerformat=%l,%v
sumber
23,62-68
23 tampaknya menjadi garis. Bagaimana saya menafsirkan62-68
kolom?ruler
tidak bekerja dengan windows terpisah di Vim.Lihat
:help statusline
banyak opsi yang tersedia.Saya memiliki ini di
~/.vimrc
antara beberapa arahan saya:output yang mana
di status saya.
Saya tidak punya
set ruler
.sumber
set laststatus=2
di Anda.vimrc
untuk selalu menampilkan baris status. (0 -> tidak pernah menampilkan baris status, 1 -> hanya jika setidaknya ada dua jendela, 2 -> selalu menampilkan baris status).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 )
sumber
RealColumn-VisibleColumn, Line, Word, Character and Byte
.Atau, biarkan 'penggaris' tidak disetel, kenaikan kinerja, dan tekan CTRL-G saat Anda ingin melihat kolom saat ini.
sumber
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]
sumber
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
sumber