Bagaimana cara menampilkan garis vertikal untuk membungkus garis di Vim?


116

Saya tertarik menemukan cara untuk menunjukkan garis vertikal pada kolom 80 di Vim (bukan GVim).

Saya sudah pernah menggunakannya set wrap, tapi saya hanya ingin menunjukkan garis vertikal sehingga saya bisa membungkus garis panjang itu sendiri.


Jawaban:


15

Edit: Untuk Vim> = 7.3 lihat jawaban di bawah ini .

Sayangnya vim tidak memiliki mekanisme untuk menampilkan garis vertikal setelah kolom seperti yang Anda inginkan (tidak seperti, katakanlah, TextMate). Namun, ada indikator visual alternatif yang dapat Anda gunakan untuk menunjukkan bahwa garis terlalu panjang.

Inilah yang saya gunakan (Anda dapat memasukkan ini ke dalam Anda .vimrc):

nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
 if !exists('w:longlinehl')
  let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
  echo "Long lines highlighted"
 else
  call matchdelete(w:longlinehl)
  unl w:longlinehl
  echo "Long lines unhighlighted"
 endif
endfunction

Jadi Anda dapat menggunakan <Leader>Huntuk mengubah kolom lebih dari 80 yang disorot.


Representasi skrip vim dari kunci pemimpin. Lihat Tampilkan pengaturan kunci <leader> saat ini
Batang

@Will , Learn Vimscript the Hard Way adalah sumber yang bagus untuk mempelajari tentang vim rabbit hole.
jazzabeanie

310

Baru di Vim 7.3:

'colorcolumn' adalah daftar kolom layar yang dipisahkan koma yang disorot dengan ColorColumn. Berguna untuk meratakan teks. Akan membuat layar menggambar ulang lebih lambat. Kolom layar dapat berupa angka absolut, atau angka yang diawali dengan '+' atau '-', yang ditambahkan atau dikurangi dari 'textwidth'.

Contoh dari dokumen:

:set colorcolumn=+1        " highlight column after 'textwidth'
:set colorcolumn=+1,+2,+3  " highlight three columns after 'textwidth'
:highlight ColorColumn ctermbg=lightgrey guibg=lightgrey

Anda juga dapat menggunakan angka absolut:

:set colorcolumn=80

4
Saya pikir ada baiknya untuk dicatat di sini warna secara otomatis ditentukan oleh warna sorotan Anda kecuali Anda mengaturnya secara manual seperti pada contoh.
Alex Hart

Perhatikan bahwa highlightpengaturan harus disetel setelahcolorscheme perintah apa pun karena itu akan menimpa warna sorotan Anda.
c4urself

7
Saya pergi dengan cerah, bakar-otak-merah ... karena Anda tahu ... panjang garis
Ron Dahlgren

Apakah Anda mengetahui cara untuk memiliki dua warna berbeda untuk kolom warna? Saya ingin memiliki dua: satu karakter biasa dengan 80 karakter untuk kode, dan yang sangat samar dengan 72 karakter untuk teks / komentar mengalir.
Alice

Akan lebih baik untuk menyebutkan bahwa itu textwidthjuga menyebabkan vim membungkus saat Anda mengetik.
anak ayam


6

Saya menggunakan match ErrorMsg '\%>80v.\+'yang akan menyoroti lebih dari 80 karakter dengan warna merah.

Saya meletakkan perintah itu di python.vim dan ruby.vim saya di bawah ~ / .vim / after / ftplugin /.


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.