Saya ingin mengonversi tab menjadi spasi di gVim. Saya menambahkan baris berikut ke _vimrc
:
set tabstop=2
Ini berfungsi untuk berhenti di dua spasi tetapi masih terlihat seperti satu tombol tab dimasukkan (saya mencoba menggunakan tombol h untuk menghitung spasi sesudahnya).
Saya tidak yakin apa yang harus saya lakukan untuk membuat tab konversi gVim ke spasi?
^I
yang berasal dariCtrl-v
saat ituTab
) akan berfungsi, misalnya jika tab Anda saat ini adalah 4 spasi::%s/ /^I/g
Jawaban:
IIRC, sesuatu seperti:
harus melakukan trik. Jika Anda sudah memiliki tab, ikuti dengan RE global yang bagus untuk menggantinya dengan spasi ganda.
sumber
Setelah Anda memperluas tab sesuai jawaban yang lain, cara yang sangat mudah untuk mengonversi file yang ada sesuai dengan pengaturan baru Anda adalah:
Ini akan bekerja pada buffer saat ini.
sumber
:%s/\t/ /g
selama bertahun-tahun sebelum melihat komentar Anda.:args retab | w
dapat melakukannya untuk semua file yang dibuka pada baris perintah, misalnyavim *.txt
,.Mencoba
untuk tab lunak.
Untuk memperbaiki tab yang sudah ada:
Saya menggunakan dua spasi karena Anda telah mengatur tabstop Anda menjadi 2 spasi.
sumber
set ts = 4
.Ini bekerja untuk saya:
Anda dapat melihat tab dengan terlebih dahulu melakukan ini:
kemudian untuk memungkinkan untuk mengganti tab kemudian lakukan ini:
kemudian
sekarang semua tab telah diganti dengan spasi, Anda dapat kembali ke tampilan normal seperti ini:
sumber
:set list
itu indah.gg=G
akan reindent seluruh file dan menghapus sebagian besar jika tidak semua tab yang saya dapatkan di file dari rekan kerja.sumber
gg
memindahkan kursor Anda ke awal buffer.=
adalah format, dan mengambil perintah gerakan.G
memindahkan kursor Anda ke ujung buffer, sehingga memberitahu vim untuk memformat dari awal hingga akhir buffer Anda saat ini.Tambahkan baris berikut ke .vimrc Anda
Buka file dalam vim dan tekan F2 Tab akan dikonversi ke 4 spasi dan file akan disimpan secara otomatis.
sumber
q
akan menutup buffer file saat ini juga. Ini mungkin atau mungkin tidak diinginkan.Jika Anda ingin tetap
\t
sama dengan 8 spasi maka pertimbangkan pengaturan:Ini akan memberi Anda dua spasi per
<TAB>
pers, tetapi\t
kode Anda yang sebenarnya masih akan dilihat sebagai 8 karakter.sumber
softtabstop
, salah satu fitur pembunuh, saya pikir.Ini membuatnya bekerja untuk saya:
sumber
pertama cari tab di file Anda: / ^ I: set expandtab: retab
akan bekerja.
sumber
Artikel ini memiliki skrip vimrc yang sangat baik untuk menangani tab + spasi, dan melakukan konversi di antaranya.
Sumber: http://vim.wikia.com/wiki/Super_retab#Script
Ini membantu saya sedikit lebih banyak daripada jawaban di sini ketika saya pertama kali mencari solusi.
sumber
expand
adalah utilitas unix untuk mengonversi tab menjadi spasi. Jika Anda tidak inginset
apa pun di vim, Anda dapat menggunakan perintah shell dari vim:sumber
:
. Sekarang baris perintah vim muncul:'<,'>
. Kemudian masukan!expand -t4
untuk tab ke 4 spasi. (Baris perintah yang dihasilkan adalah seperti:'<,'>!expand -t4
)