Cara saya lakukan indikasi 80-kolom di Vim sepertinya tidak benar: set columns=80
. Kadang-kadang saya juga set textwidth
, tetapi saya ingin dapat melihat dan mengantisipasi garis meluap dengan set columns
alternatifnya.
Ini memiliki beberapa efek samping yang tidak menguntungkan :
- Saya tidak bisa
set number
karena takut memisahkan antara file yang memiliki urutan nomor baris yang berbeda; yaitu <100 file baris dan> = 100 file baris akan memerlukan duaset columns
nilai berbeda karena kolom tambahan yang digunakan untuk tampilan digit tambahan. - Saya juga memulai sesi baru (g) Vim alih-alih membelah jendela secara vertikal. Ini karena
vsplit
memaksa saya untukset columns
setiap kali saya membuka atau menutup panel, jadi memulai sesi baru tidak terlalu merepotkan.
Bagaimana Anda menangani indikasi 80 karakter saat Anda ingin set numbers
, membagi secara vertikal, dll.?
vim
coding-style
cdleary
sumber
sumber
Jawaban:
Saya sudah mengatur ini di .vimrc saya:
Ini menyoroti latar belakang dengan warna merah halus untuk teks yang melampaui batas 80 kolom (bagaimanapun juga dalam mode GUI - dalam mode terminal kurang begitu).
sumber
Pada vim 7.3, Anda dapat menggunakan
set colorcolumn=80
(set cc=80
singkatnya).Karena versi sebelumnya tidak mendukung ini, saya
.vimrc
menggunakan:Lihat juga dokumentasi online pada
colorcolumn
opsi .sumber
highlight ColorColumn ctermbg=7
Cara yang lebih pendek:
sumber
ErrorMsg
adalah ahighlight-group
. Ada banyak grup highlight default di Vim yang dapat Anda gunakan berdasarkan pengodean warna yang Anda inginkan untuk kasus ini.Saya lebih memilih:
sumber
Jawaban Simon Howard luar biasa. Tetapi
/\%81v.\+/
gagal untuk menyoroti tab yang melebihi kolom 81. Jadi saya melakukan sedikit penyesuaian, berdasarkan hal-hal yang saya temukan di VIM wiki dan pilihan warna HS di atas:Dan sekarang VIM akan menyorot apa pun yang melebihi kolom 80.
sumber
guifg=white
di ujung sana.Pendekatan minimalis, tidak berlebihan. Hanya karakter garis ke-79 yang terlalu panjang yang disorot. Ini mengatasi beberapa masalah umum: bekerja di jendela baru, kata-kata yang berlebihan disorot dengan benar.
Catatan: perhatikan
FileType scala,java
ini membatasi ini untuk file sumber Scala dan Java. Anda mungkin ingin menyesuaikan ini. Jika Anda menghilangkannya, itu akan berfungsi pada semua jenis file.sumber
FileType scala,java
? (tidak bekerja untuk saya)Anda juga dapat menggambar garis untuk melihat batas 80:
Hasil:
sumber
Cara yang bagus untuk menandai hanya karakter pertama yang keluar dari batas yang ditentukan:
Dari pembicaraan Damian Conway .
sumber
Versi vim yang lebih baru memungkinkan
:set numberwidth=x
nilai, yang menetapkan lebar tampilan nomor baris. Saya tidak benar-benar menggunakan lipat dll, jadi saya tidak akan tahu tentang itu. Menggambar garis vertikal tipis di luar kemampuan aplikasi konsol. GVim boleh mengizinkan ini (saya tidak menggunakannya, jadi tidak bisa berkomentar di sana).sumber
Saya khawatir Anda telah menempatkan kendala pada set solusi itu, well, meninggalkan Anda dengan set nol.
Menggunakan
:set textwidth=80
akan memperbaiki semua masalah yang Anda sebutkan kecuali bahwa Anda tidak dapat dengan mudah melihat batas garis yang muncul. Jika Anda:set ruler
, Anda akan mengaktifkan tampilan posisi x, y pada bilah status, yang dapat Anda gunakan untuk melihat kolom tempat Anda berada.Selain itu, saya tidak yakin harus mengatakan apa kepada Anda. Sayang kehilangan kolom angka, kolom lipat dan split hanya karena Anda harus
:set columns=80
.sumber
Anda dapat mencoba ini:
Itu akan mengatur dua sorotan di setiap buffer, satu untuk karakter di 8 kolom sebelum apa pun
&textwidth
yang diatur, dan satu untuk karakter di luar kolom itu. Dengan begitu Anda memiliki tingkat antisipasi. Tentu saja Anda dapat men-tweak untuk menggunakan lebar yang berbeda jika Anda ingin lebih atau kurang antisipasi (yang Anda bayar dalam bentuk hilangnya sintaks yang disorot di kolom tersebut).sumber
Nah, melihat pada: kolom bantuan, itu tidak benar-benar dibuat berantakan.
Di konsol, biasanya ditentukan oleh pengaturan konsol (yaitu terdeteksi secara otomatis); di GUI, ia menentukan (dan ditentukan oleh) lebar jendela gvim.
Jadi biasanya Anda hanya membiarkan konsol dan manajer jendela melakukan pekerjaan mereka dengan berkomentar
set columns
Saya tidak yakin apa yang Anda maksud dengan "melihat dan mengantisipasi garis meluap". Jika Anda ingin EOL dimasukkan kira-kira kolom 80, gunakan salah satu
set textwidth
atauset wrapmargin
; jika Anda hanya ingin soft wrap (yaitu garis dibungkus, tetapi tidak ada EOL yang sebenarnya), maka mainkan denganset linebreak
danset showbreak
.sumber
yang ini di luar bidang kiri tetapi ini adalah peta kecil yang bagus untuk mengubah ukuran pemisahan Anda saat ini menjadi 80 karakter jika Anda memiliki nomor baris di:
sumber
Anda dapat mencoba ini untuk mengatur ukuran jendela untuk memungkinkan 80 karakter teks yang sebenarnya. Ini masih tidak bekerja dengan pemisahan vertikal.
let &co=80 + &foldcolumn + (&number || &relativenumber ? &numberwidth : 0)
Ini membutuhkan vim 7+, 7.3 untuk jumlah yang relatif.
sumber