Saya mencoba membuat indentasi vim otomatis dengan tab, dan menyelaraskan dengan spasi putih, tetapi sebenarnya, vim indentasi dengan tab dan mengisi perataan dengan tab + spasi putih.
Vim melakukannya:
(setiap blok adalah tab)
{
>--long a = 1,
>-->--..b = 2,
>-->--..c = 3;
}
Dapat melakukannya:
{
>--long a = 1,
>--.....b = 2,
>--.....c = 3;
}
Jadi, saya pikir ada banyak pertanyaan tentang subjek tab dan spasi, tetapi tidak satupun dari mereka memberikan beberapa solusi Just Works:
- /programming/8493705/vim-use-tabs-for-indentation-spaces-for-alignment-with-c-source-files
- /programming/29208431/vim-indent-with-tabs-align-with-spaces
- /programming/6504507/vim-indenting-and-alignment-combining-spaces-and-tabs
Sebenarnya saya menggunakan:
set ai
set cindent
set cinoptions=(0,:0,u0,U0,g0)
Saya mencoba plugin Smart Tab , yang sepertinya berfungsi dengan baik, tetapi ketika saya mencoba gg=G
saya mendapatkan beberapa kesalahan aneh:
Error detected while processing function CtabRedoIndent..<SNR>12_CheckAlign:
line 11:
E108: No such variable: "b:ctab_lastalign"
Press ENTER or type command to continue
Error detected while processing function CtabRedoIndent:
line 10:
E170: Missing :endwhile
Diskusi ini tampaknya sudah lama, jadi sekarang, 2015, ada solusi resmi untuk menghadapinya?
tab-characters
whitespace
tjbrn
sumber
sumber
Jawaban:
Melakukan ini benar-benar secara otomatis sulit. Vim tidak tahu apa itu "indentasi" dan apa itu "alignment"; dan beberapa orang mungkin tidak setuju tentang apa yang sebenarnya merupakan lekukan dan penyelarasan.
Yang sedang berkata, plugin Smart Tabs dirancang untuk melakukan apa yang Anda inginkan; Saya menemukan bahwa itu bekerja cukup baik untuk file C, tetapi memiliki sejumlah peringatan; itu memecah file Python, misalnya, dan melakukan beberapa hal yang tidak terduga (bagi saya, tetap) untuk file C di kali.
Melihat sumbernya, saya tidak dapat benar-benar mengetahui cara kerjanya dalam 5 menit, dan dikombinasikan dengan fakta bahwa itu merusak beberapa hal, harus memberitahu Anda untuk melanjutkan dengan hati-hati ...
sumber
Plug-in Smart Tabs yang Anda sebutkan hampir sebagus yang didapat. Saya awalnya mengalami kesalahan yang sama yang Anda lakukan dan menyerah tetapi akhirnya menghabiskan beberapa menit untuk memperbaikinya. Coba terapkan tambalan berikut:
Saya kemudian menemukan bahwa seseorang telah menyarankan perbaikan serupa di bagian wiki Smart Tabs . Sayangnya, belum ada rilis baru.
sumber
Lekukan dalam vim dilakukan hanya menggunakan skrip berikut
Script untuk melakukan indentasi satu file
sumber