Saya mencoba menggunakan Vim lebih banyak dan lebih banyak lagi ketika saya bisa. Salah satu pegangan terbesar saya antara Vim dan IDE seperti Aptana adalah kemampuan untuk indentasi otomatis.
Apakah ada cara kode pemformatan otomatis (HTML, CSS, PHP) sehingga indentasi dengan benar?
Jika demikian, bagaimana Anda menginstal ini ke vim? Saya tidak terlalu mengerti plugin. Saya mencoba meninjau utas ini dan lebih membingungkan saya: Bagaimana cara mengubah perilaku indentasi vim?
Jawaban:
Untuk membuat indentasi seluruh file secara otomatis:
Dijelaskan:
gg
- pergi ke awal fileG
- pergi ke akhir file=
- indentasisumber
gg=G
dari shell tanpa membuka file?Saya tidak tahu tentang memformat otomatis kode yang ada, tetapi jika Anda menulis kode dan perlu indentasi otomatis:
:set autoindent
(atau:set ai
) akan mengaktifkan indentasi otomatis:set tabwidth=4
(atau:set tw=4
) akan mengontrol berapa spasi spasi yang harus dimasukkan dalam kode>>
perintah akan indent baris saat ini. Jika Anda4>>
awali dengan angka, ucapkan maka itu akan membuat indentasi 4 baris, dimulai dengan baris saat ini.<<
perintah akan menghapus indentasi barisSaya harap ini memberi Anda awal yang baik.
sumber
={motion}
dalam mode normal - mis.=G
Akan membuat indentasi semua kode dari baris saat ini ke akhir file.==
akan membuat indentasi baris saat ini.:filetype indent on
)Indentasi Otomatis
*.sh
Cukup tambahkan baris berikut di
~/.vimrc
sumber
~./vimrc
hanya berlaku untuk editor vim.Plugin ini memudahkan untuk melakukan pemformatan pada kode Anda. Ini mengintegrasikan pemformat eksternal, dan memiliki fungsi mundur pada indentasi vim.
https://github.com/Chiel92/vim-autoformat
Juga, perhatikan perbedaan antara pemformatan dan indentasi. Mengorentasi hanya mengoreksi spasi putih sebelum setiap baris, sementara memformat juga berurusan dengan hal lain, seperti spasi putih di sekitar operator dll.
sumber
Buat / edit
~/.vimrc
file dan tambahkan baris berikut:sumber
:set autoindent
yang memungkinkan indentasi otomatis hanya untuk file saat ini. Menambahkannya dalam.vimrc
file memungkinkan indentasi otomatis secara permanen.Dalam bash saya melakukan ini:
ini menghilangkan komentar dan meng-reindents script "bash way". itu tidak akan berfungsi jika skrip berisi HEREDOCS tetapi jika Anda melakukan ini:
ini akan bekerja dengan skrip apa pun tetapi keseluruhan skrip akan di-indentasi oleh 4 spasi. jangan ragu untuk memodifikasi tetapi mengutip nama saya di skrip Anda dan mempostingnya! : D
sumber
sed
jika Anda menginginkannya:cat script_to_be_reindented.sh | sed 's#^# #g'
(er, well, SO penurunan harga adalah mengganti spasi dengan tab, tetapi Anda mendapatkan intinya)Autoformat / indentasi vim bekerja cukup baik. Pertama, letakkan baris ini di
~/.vimrc
:Kemudian buka file dalam vim dan ketik
gg=G
(
gg
memindahkan kursor ke baris pertama.=
menjalankan perintah indent.G
memberi tahu perintah indent untuk berjalan dari sini ke baris terakhir.)Jika autoformat terlihat sangat buruk, seperti setiap baris dibiarkan menjorok ke dalam, kemudian jalankan
:scriptnames
dan periksa apakah.../indent/html.vim
(atau bahasa apa pun yang Anda gunakan) ada dalam daftar. Jika tidak, pastikan Anda~/.vimrc
benar. Atau jika Anda lari:filetype plugin indent on
dari baris perintah vim, Anda harus membuka kembali file:e
sumber