Saya saat ini pengaturan mengasumsikan 8 ruang; bagaimana saya bisa mendefinisikan itu?
Itu tergantung pada apa yang anda maksud. Apakah anda ingin sebenarnya karakter tab di dalam file muncul 4 ruang yang luas, atau dengan "tab" apakah anda benar-benar berarti indent, yang dihasilkan dengan menekan tombol tab, yang akan menghasilkan file secara harfiah mengandung (up to) 4 karakter ruang untuk masing-masing "tab" anda mengetik?
Tergantung pada jawaban anda, salah satu dari yang berikut set pengaturan harus bekerja untuk anda:
set tabstop=4
Jika anda're sebenarnya menggunakan karakter tab dalam kode sumber anda, anda mungkin juga ingin pengaturan ini (ini yang benar-benar default, tetapi anda mungkin ingin mengatur mereka membela diri):
set softtabstop=0 noexpandtab
Akhirnya, jika anda ingin indent sesuai dengan satu tab, anda juga harus menggunakan:
set shiftwidth=4
set tabstop=8 softtabstop=0 expandtab shiftwidth=4 smarttab
Untuk membuat pengaturan di atas permanen tambahkan garis-garis ini untuk anda vimrc.
Dalam kasus anda perlu untuk melakukan penyesuaian, atau hanya ingin memahami apa pilihan ini semua berarti, di sini's rincian dari apa yang masing-masing berarti:
tabstop
lebar keras tabstop diukur dalam "ruang" -- efektif (maksimum) lebar dari yang sebenarnya karakter tab.
shiftwidth
ukuran "indent". It's juga diukur dalam ruang, jadi jika anda basis kode indentasi dengan karakter tab maka anda inginkan
shiftwidth
untuk sama dengan jumlah karakter tab kalitabstop
. Ini juga digunakan oleh hal-hal seperti,=
,>
dan<
perintah.
softtabstop
Pengaturan ini untuk non-nol nilai lain dari
tabstop
akan membuat tombol tab (insert mode) masukkan kombinasi ruang (dan mungkin tab) ke mensimulasikan tab berhenti pada lebar ini.
expandtab
Memungkinkan hal ini akan membuat tombol tab (insert mode) menyisipkan spasi bukan karakter tab. Hal ini juga mempengaruhi perilaku
retab
perintah.
smarttab
Memungkinkan hal ini akan membuat tombol tab (insert mode) menyisipkan spasi atau tab untuk pergi ke yang berikutnya indent berikutnya tabstop ketika kursor di awal baris (yaitu hanya sebelumnya karakter spasi).
Untuk rincian lebih lanjut tentang ini lihat :membantu 'optionname'
di vim (misalnya :membantu 'tabstop'
)
Untuk menentukan ini secara permanen untuk pengguna saat ini, membuat (atau mengedit) yang .vimrc
file:
$ vim ~/.vimrc
Kemudian, paste konfigurasi di bawah ini ke file. Setelah vim restart, tab pengaturan 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
Aku disalin dan disisipkan ke saya .vimrc file:
" size of a hard tabstop
set tabstop=4
" always uses spaces instead of tab characters
set expandtab
" size of an "indent"
set shiftwidth=4
Pertama 2 pengaturan berarti bahwa ketika saya tekan Tab saya mendapatkan 4 ruang.
Ketiga pengaturan berarti bahwa ketika saya melakukan V>
(yaitu visual dan indent) saya juga mendapatkan 4 ruang.
Tidak komprehensif sebagai jawaban yang diterima tetapi mungkin membantu orang-orang yang hanya ingin sesuatu untuk copy dan paste.
Ada beberapa pengaturan yang menentukan apakah akan menggunakan spasi atau tab.
Jadi di sini adalah fungsi praktis yang dapat didefinisikan dalam ~/.vimrc
file:
function! UseTabs()
set tabstop=4 " Size of a hard tabstop (ts).
set shiftwidth=4 " Size of an indentation (sw).
set noexpandtab " Always uses tabs instead of space characters (noet).
set autoindent " Copy indent from current line when starting a new line (ai).
endfunction
function! UseSpaces()
set tabstop=2 " Size of a hard tabstop (ts).
set shiftwidth=2 " Size of an indentation (sw).
set expandtab " Always uses spaces instead of tab characters (et).
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts).
set autoindent " Copy indent from current line when starting a new line.
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts).
endfunction
Penggunaan:
:call UseTabs()
:call UseSpaces()
Untuk menggunakannya per ekstensi file, sintaks berikut dapat digunakan (ditambahkan ke .vimrc
):
au! BufWrite,FileWritePre *.module,*.install call UseSpaces()
Lihat juga: Mengkonversi tab ke spasi.
Berikut ini adalah cuplikan dari Wikia yang dapat digunakan untuk beralih di antara tab dan spasi:
" virtual tabstops using spaces
set shiftwidth=4
set softtabstop=4
set expandtab
" allow toggling between local and default mode
function TabToggle()
if &expandtab
set shiftwidth=8
set softtabstop=0
set noexpandtab
else
set shiftwidth=4
set softtabstop=4
set expandtab
endif
endfunction
nmap <F9> mz:execute TabToggle()<CR>'z
Hal ini memungkinkan menggunakan 4 ruang untuk setiap tab dan pemetaan F9 untuk mengaktifkan pengaturan.
Menempatkan pengaturan yang anda inginkan dalam ~/.vimrc file-Lihat di bawah untuk beberapa pedoman dan praktik terbaik.
Ada empat cara utama untuk menggunakan tab di Vim:
Catatan: Pengaturan 'tabstop' untuk setiap nilai dari 8 dapat membuat file anda muncul salah di banyak tempat (misalnya, ketika pencetakan itu).
Set 'tabstop' dan 'shiftwidth' untuk apa pun yang anda sukai dan menggunakan 'expandtab'. Dengan cara ini anda akan selalu menyisipkan spasi. Format tidak akan pernah menjadi kacau ketika 'tabstop' berubah.
Set 'tabstop' dan 'shiftwidth' untuk apa pun yang anda sukai dan menggunakan |modeline| untuk mengatur nilai-nilai ini saat mengedit file lagi. Hanya bekerja ketika menggunakan Vim untuk mengedit file.
Selalu set 'tabstop' dan 'shiftwidth' untuk nilai yang sama, dan 'noexpandtab'. Ini kemudian harus bekerja (untuk awal indentasi hanya) untuk setiap tabstop pengaturan yang digunakan orang-orang. Mungkin akan bagus untuk memiliki tab setelah yang pertama non-kosong dimasukkan sebagai ruang jika anda melakukan hal ini sekalipun. Jika tidak selaras komentar akan menjadi salah ketika 'tabstop' ischanged.
Sumber:
:membantu tabstop
Satu hal lagi, gunakan
:retab
untuk mengkonversi ada tab
untuk ruang
http://vim.wikia.com/wiki/Converting_tabs_to_spaces
Tambahkan baris
set ts=4
di
~/.vimrc
file untuk per pengguna
atau
/etc/vimrc
file untuk sistem yang luas
:set sw=4
Lihat Menguasai editor VI
Dasar saya ~/.vimrc dengan komentar:
set number " show line number
set tabstop=2 " set display width of tab; 1 tab = x space with
set expandtab " transform tab to x space (x is tabstop)
set autoindent " auto indent; new line with number of space at the beginning same as previous
set shiftwidth=2 " number of space append to lines when type >>