Jawaban terpadu:
Jika Anda menggunakan tab
Saya akan mencoba menggunakan listchars:
:set listchars=tab:\|\
:set list
Catatan: ada spasi setelah yang terakhir di \
atas.
Metode ini bagus karena menggunakan dukungan bawaan Vim untuk menunjukkan hal semacam ini.
Contoh output:
| if (1) {
| | func();
| }
Namun, ini tidak berfungsi untuk memimpin ruang. Seperti yang ditunjukkan oleh @Josh Petrie, ada tambalan yang berfungsi untuk spasi , tetapi Anda harus mengkompilasi ulang Vim, yang berada di luar cakupan jawaban ini.
Jika Anda menggunakan spasi, dan tidak keberatan menggunakan plugin
Vaibhav Sagar menunjukkan plugin indentLine melakukan fungsi ini.
Instal dengan cara normal (lihat menginstal Plugin ) dan tampaknya secara ajaib hanya berfungsi tanpa input lebih lanjut. Jika Anda tidak keberatan dengan bilah ASCII, Anda tidak perlu melakukan apa pun dengan font Anda. Contoh output dari contoh Anda setelah pengaturan pengaturan lekukan Anda dan berjalan:IndentLinesReset
45 ¦ var move = function(direction) {
46 ¦ ¦ if(!initialized) { initialize(); }
47
48 ¦ ¦ if(shiftBoard(direction)) {
49 ¦ ¦ ¦ setTimeout(addRandomPiece, 100);
50 ¦ ¦ }
51 ¦ };
Plugin ini membutuhkan Vim 7.3 atau lebih baru, dan memanfaatkan fitur tersembunyi dari versi tersebut. Alih-alih menyembunyikan teks, teks menggantikan teks dengan bilah di tampilan, tetapi bukan buffer yang sebenarnya. Hasilnya adalah Anda melihat bilah tetapi tidak disimpan ke dalam file (karena sebenarnya spasi)
Peringatan
Kedua metode ini menganggap kode indentasi "benar". Mereka tidak menempatkan garis indentasi pada tingkat indentasi ketika "blok" dibuka (yang tampaknya dilakukan oleh sublim) tetapi menempatkan garis pada interval teratur berdasarkan pada pengaturan indentasi Anda. Selain itu, ini hanya menunjukkan bar pada garis di mana sebenarnya ada ruang (itulah sebabnya garis dalam output vim di bawah yang pertama if
tidak memiliki bar, membuat kesenjangan visual)