Ketika saya bekerja pada file dengan python, saya terkadang mengira tab untuk spasi dan sebaliknya. Apakah ada cara saya bisa membuat Vim menampilkan karakter untuk tab, bukan tab?
119
Ketika saya bekerja pada file dengan python, saya terkadang mengira tab untuk spasi dan sebaliknya. Apakah ada cara saya bisa membuat Vim menampilkan karakter untuk tab, bukan tab?
retab
setiap kali Anda menyimpan file.:h vim-faq
dan cari/invisible
. Tag yang sulit diingat adalah:h faq-19.8
.Jawaban:
Ya, gunakan listchars:
Jika Anda meletakkan dua baris ini di .vimrc Anda, tab akan ditampilkan
>
untuk posisi awal dan-
melalui sisa tab.(Sidenote: listchars juga dapat menampilkan spasi tambahan
trail:x
(gantix
dengan karakter yang ingin Anda gunakan untuk spasi tambahan), yang dapat berguna juga.)sumber
set listchars=tab:!·,trail:·
, IMHO·
jauh lebih jelas daripada-
... Anda memerlukan versi Vim yang cukup baru untuk ini berfungsi dengan baik (tidak yakin yang mana, saya pikir 7.3.x) ...▸
karena sedikit lebih kecil dari>
. Saat ini saya melihat spasi putih dengan menandai eol (meskipun saya dapat mencoba di atas). Pengaturan saya adalah:set listchars=eol:¬,tab:▸\
danJawaban dasarnya adalah
:set list
, yang menyebabkan tab ditampilkan sebagai^I
.Namun, saya sarankan lebih dari itu. Just
:set list
bermasalah karena gagal mempertahankan penyelarasan visual di layar. Sebagai contoh:tidak terlihat baik, terutama ketika Anda mengharapkan
g
darig++
muncul di bawah pertamap
daricpp
(asumsitabstop=8
).Oleh karena itu, saya sarankan
.vimrc
Anda memasukkan sesuatu:set listchars=tab:␉·
(Untuk lebih jelasnya, itu adalah karakter Unicode U + 2409 SIMBOL UNTUK TABULASI HORIZONTAL diikuti oleh U + 00B7 MIDDLE DOT .)Seperti dijelaskan dalam
:help listchars
, pengaturan dua karakter untuktab:xy
menyebabkan perataan visual dipertahankan:Contoh di atas akan muncul di layar sebagai:
Secara pribadi, saya habis-habisan dengan
listchars
:eol
, saya menggunakan U + 23CE RETURN SYMBOLtrail
, saya menggunakan U + 2420 SIMBOL UNTUK RUANGnbsp
, saya menggunakan U + 23B5 BOTTOM SQUARE BRACKETKarakter-karakter ini cukup khas sehingga jarang muncul secara harfiah dalam teks dokumen.
Untuk mengetikkan karakter khusus ini ke dalam Anda
vimrc
, ketikkan Ctrl-vu23CE
saat dalam Mode Sisipkan, seperti yang dijelaskan dalam:help utf-8-typing
.sumber
set lcs=tab:├─
Menyorot tab
TabSorotan sementara
Untuk penggunaan sesekali, seseorang cukup menyorot semua tab dalam dokumen menggunakan
/
perintah pencarian berikut :Untuk menghapus penyorotan, cukup ketik
:noh
yang merupakan kependekan dari:nohlsearch
—tidak ada pencahayaan yang tinggi.TabPenyorotan permanen
Lebih banyak sorotan
Untuk lebih banyak dari perintah penyorotan yang berguna ini - termasuk dikombinasikan dengan trailing spasi putih dan menjadikan ini permanen - lihat Vim wiki .
sumber
:match Error /\t/
untuk menyorot tab (atau pola lain apa pun) secara terpisah dari register pencarian dan hlsearch (ketik:match
untuk menghapusnya).Saya pribadi suka menggunakan plugin indentLine , yang menampilkan garis vertikal pada level indentasi.
Ini sangat membantu terutama dalam python, di mana lekukan itu penting.
Di antaranya, ia menyediakan perintah sakelar, yang dapat dipetakan ke kombinasi tombol, sehingga Anda dapat mematikannya, saat Anda tidak membutuhkannya.
sumber
Anda mungkin ingin menampilkan tab secara berbeda di terminal reguler dan gvim.
(Menambahkan untuk kelengkapan, seandainya orang lain merasa berguna).
sumber
Metode termudah adalah melakukan
:set list
, yang akan menampilkan tab as^I
dan end of line sebagai$
.Saya suka menggunakan pemetaan yang memanggil
untuk beralih antara tampilan biasa dan tampilan daftar.
Sebagai contoh:
Ini memungkinkan saya untuk dengan cepat memeriksa apakah ada masalah tab vs space dan kemudian kembali ke tampilan biasa.
sumber