Pertanyaan Tentukan ulang tab sebagai 4 spasi


Pengaturan saya saat ini mengasumsikan 8 spasi; bagaimana saya bisa mendefinisikannya kembali?


860
2017-12-10 06:18


asal


Jawaban:


Itu tergantung pada apa yang Anda maksud. Apakah Anda ingin karakter tab aktual dalam file Anda muncul 4 spasi lebar, atau dengan "tab" yang Anda maksud adalah inden, dihasilkan dengan menekan tombol tab, yang akan menghasilkan file yang secara harfiah berisi (hingga) 4 karakter spasi untuk setiap "tab" yang Anda ketik?

Tergantung pada jawaban Anda, salah satu dari set berikut pengaturan harus berfungsi untuk Anda:

  • Untuk karakter tab yang muncul 4 spasi:

    set tabstop=4
    

    Jika Anda menggunakan karakter tab aktual dalam kode sumber Anda, Anda mungkin juga menginginkan pengaturan ini (ini sebenarnya adalah default, tetapi Anda mungkin ingin mengaturnya secara defensif):

    set softtabstop=0 noexpandtab
    

    Akhirnya, jika Anda ingin inden sesuai dengan satu tab, Anda juga harus menggunakan:

    set shiftwidth=4
    
  • Untuk indentasi yang terdiri dari 4 karakter spasi tetapi dimasukkan dengan tombol tab:

    set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
    

Untuk membuat pengaturan di atas tambahkan permanen garis-garis ini ke Anda vimrc.

Jika Anda perlu melakukan penyesuaian, atau hanya ingin memahami apa arti semua opsi ini, berikut rincian apa arti setiap opsi:

tabstop

Lebar tabstop keras yang diukur dalam "spasi" - secara efektif lebar (maksimum) karakter tab yang sebenarnya.

shiftwidth

Ukuran "indent". Ini juga diukur dalam spasi, jadi jika basis kode Anda indentasi dengan karakter tab maka Anda inginkan shiftwidth untuk menyamai jumlah kali karakter tab tabstop. Ini juga digunakan oleh hal-hal seperti =, > dan < perintah.

softtabstop

Mengatur ini ke nilai bukan nol selain tabstop akan membuat kunci tab (dalam mode insert)   masukkan kombinasi spasi (dan mungkin tab) ke mensimulasikan tab berhenti pada lebar ini.

expandtab

Mengaktifkan ini akan membuat kunci tab (dalam mode insert) memasukkan spasi sebagai ganti   karakter tab. Ini juga mempengaruhi perilaku retab perintah.

smarttab

Mengaktifkan ini akan membuat kunci tab (dalam mode insert) menyisipkan spasi atau tab ke   pergi ke inden berikutnya   dari tabstop berikutnya ketika kursor berada di awal baris (yaitu   hanya karakter sebelumnya yang merupakan spasi putih).

Untuk detail lebih lanjut tentang ini lihat :help 'optionname' di vim (mis. :help 'tabstop')


1277
2017-12-10 06:19



Untuk menentukan ini secara permanen untuk pengguna saat ini, buat (atau edit) .vimrc mengajukan:

$ vim ~/.vimrc

Kemudian, tempelkan konfigurasi di bawah ini ke dalam file. Setelah vim dimulai kembali, pengaturan tab akan berlaku.

set tabstop=4       " The width of a TAB is set to 4.
                    " Still it is a \t. It is just that
                    " Vim will interpret it to be having
                    " a width of 4.

set shiftwidth=4    " Indents will have a width of 4

set softtabstop=4   " Sets the number of columns for a TAB

set expandtab       " Expand TABs to spaces

638
2017-12-10 06:20



atau singkatan untuk model vim:

vim :set ts=4 sw=4 sts=4 et :

44
2017-12-10 06:22



Saya menyalin dan menempel ini ke dalam file .vimrc saya:

" size of a hard tabstop
set tabstop=4

" always uses spaces instead of tab characters
set expandtab

" size of an "indent"
set shiftwidth=4

2 pengaturan pertama berarti ketika saya menekan Tab, saya mendapat 4 spasi. Pengaturan ketiga berarti ketika saya melakukannya V> (yaitu visual dan inden) Saya juga mendapat 4 spasi.

Tidak se-komprehensif jawaban yang diterima tetapi mungkin membantu orang yang hanya ingin sesuatu untuk disalin dan ditempel.


20
2018-06-28 10:49



Masukkan pengaturan yang Anda inginkan di ~ / .vimrc file - Lihat di bawah untuk beberapa pedoman dan praktik terbaik.

Ada empat cara utama untuk menggunakan tab di Vim:

  1. Selalu simpan 'tabstop' pada 8, atur 'softtabstop' dan 'shiftwidth' ke 4 (atau 3 atau apapun yang Anda inginkan) dan gunakan 'noexpandtab'. Kemudian Vim akan menggunakan campuran tab dan spasi, tetapi mengetik dan akan berperilaku seperti tab muncul setiap 4 (atau 3) karakter.

    catatan: Menyetel 'tabstop' ke nilai lain selain 8 dapat membuat file Anda tampak salah di banyak tempat (mis., Saat mencetaknya).

  2. Set 'tabstop' dan 'shiftwidth' ke apapun yang Anda inginkan dan gunakan 'expandtab'. Dengan cara ini Anda akan selalu memasukkan spasi. Format tidak akan pernah kacau saat 'tabstop' diubah.

  3. Set 'tabstop' dan 'shiftwidth' menjadi apa pun yang Anda inginkan dan gunakan | modeline | untuk menetapkan nilai-nilai ini ketika mengedit file lagi. Hanya berfungsi saat menggunakan Vim untuk mengedit file.

  4. Selalu atur 'tabstop' dan 'shiftwidth' ke nilai yang sama, dan 'noexpandtab'. Ini kemudian harus bekerja (hanya untuk indentasi awal) untuk pengaturan tabstop apa pun yang digunakan orang. Mungkin bagus untuk memiliki tab setelah non-blank pertama dimasukkan sebagai spasi jika Anda melakukan ini. Jika tidak, komentar yang disejajarkan akan salah ketika 'tabstop' berubah.

Sumber:


11
2018-05-07 01:45



Satu lagi, gunakan
:retab
untuk mengonversi yang ada tab untuk spaces http://vim.wikia.com/wiki/Converting_tabs_to_spaces


7
2017-11-10 14:40



Tambahkan baris
set ts=4
di
~/.vimrc file untuk per pengguna
atau
/etc/vimrc file untuk sistem yang luas


6
2017-07-19 14:12