it-swarm-id.com

Kode indent / format otomatis untuk Vim?

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 diindentasi 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?

36
chrisjlee

Untuk membuat indentasi seluruh file secara otomatis:

gg
=G

Dijelaskan:

  • gg - pergi ke awal file
  • G - pergi ke akhir file
  • = - indent
59
takeshin

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
  • Ctrl-d untuk membatalkan indentasi (AKA outdent) kode Anda
  • Tab atau spasi untuk indentasi - Saya pribadi menggunakan tab
  • :set tabwidth=4 (atau :set tw=4) akan mengontrol berapa spasi spasi yang harus dimasukkan dalam kode
  • >> perintah akan membuat indentasi baris saat ini. Jika Anda awalan dengan angka, ucapkan 4>> maka akan membuat indentasi 4 baris, dimulai dengan baris saat ini.
  • Demikian juga << perintah akan menghapus indentasi baris

Saya harap ini memberi Anda awal yang baik.

17
Hai Vu

Indentasi Otomatis *.sh

Cukup tambahkan baris berikut di ~/.vimrc

filetype indent on
set smartindent
autocmd BufRead,BufWritePre *.sh normal gg=G
4
Rahul Patil

Plugin ini memudahkan untuk melakukan pemformatan pada kode Anda. Ini mengintegrasikan formatters 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.

2
Chiel ten Brinke

Buat/edit ~/.vimrc file dan tambahkan baris berikut:

set autoindent
2

autoformat/indentasi vim bekerja cukup baik. Pertama, letakkan baris ini di ~/.vimrc Anda:

filetype plugin indent on

Kemudian buka file dalam vim dan ketik gg=G

(gg memindahkan kursor ke baris pertama. = menjalankan perintah indent. G memberi tahu perintah indentasi untuk menjalankan dari sini ke baris terakhir.)

Jika autoformat terlihat sangat buruk, seperti setiap baris dibiarkan terindentasi, jalankan :scriptnames Dan periksa apakah .../indent/html.vim (Atau bahasa apa pun yang Anda gunakan) ada dalam daftar. Jika tidak, pastikan ~/.vimrc Anda benar. Atau jika Anda menjalankan :filetype plugin indent on Dari baris perintah vim, Anda harus membuka kembali file :e

0
wisbucky

Dalam bash saya melakukan ini:

source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri| cut -c 5-|head --lines=-1|tail --lines=+3

ini menghilangkan komentar dan meng-reindents script "bash way". itu tidak akan berfungsi jika skrip berisi HEREDOCS tetapi jika Anda melakukan ini:

source <(echo "Zibri () {";cat script_to_be_reindented.sh; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3

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

0
Zibri