Dalam Vim, apa perintah untuk memperbaiki indentasi semua baris?
Sering kali saya akan menyalin dan menempelkan kode ke terminal jarak jauh dan semuanya kacau. Saya ingin memperbaiki ini dalam satu gerakan.
vim
vi
indentation
mmcdole
sumber
sumber
Jawaban:
=
, perintah indent dapat mengambil gerakan. Jadi,gg
untuk memulai file,=
indentasi,G
hingga akhir filegg=G
,.sumber
''
(dua tanda kutip tunggal) membawa Anda kembali ke tempat Andagg=G''
semestinya jadi harus indentasi kemudian kembali.Sebelum menempel ke terminal, coba
:set paste
dan:set nopaste
setelah selesai. Ini akan mematikan indentasi otomatis, pembungkus baris, dan fitur lain yang mengacaukan tempel Anda.sunting: Juga, saya harus menunjukkan bahwa hasil yang jauh lebih baik daripada
=
indentasi biasanya dapat diperoleh dengan menggunakan program eksternal. Sebagai contoh, saya menjalankan:%!perltidy
semua waktu.astyle
,,cindent
dll. juga dapat digunakan. Dan, tentu saja, Anda dapat memetakannya ke stroke kunci, dan memetakan yang berbeda keystroke yang sama tergantung pada jenis file.sumber
equalprg
opsi di ftplugin untuk menggunakan filter eksternal untuk=
indentasi, daripada pengikatan tombol khusus.formatpgm
dengan rapi dan astyle dan kemudiangq
. Berikut adalah beberapa contoh dari saya.vimrc
:au FileType xml set fp=tidy\ -q\ -i\ -xml
danau FileType java set fp=/usr/local/bin/astyle\ --mode=java\ --indent=tab
Jika Anda ingin mengaktifkan kembali blok tempat Anda berada tanpa harus mengetik akord apa pun, Anda dapat melakukannya:
sumber
=aB
kursor yang tidak akan bergerak sama sekali.[[=]]
dibutuhkan 5 akor :(Tuan dari semua perintah adalah
gg=G
Ini indentasi seluruh file!
Dan di bawah ini adalah beberapa perintah sederhana dan elegan yang digunakan untuk membuat garis cepat di Vim atau gVim.
Untuk membuat indentasi semua baris di bawah baris saat ini
Untuk indentasi baris saat ini
Untuk membuat
n
garis di bawah garis saat iniMisalnya, untuk membuat indentasi 4 baris di bawah baris saat ini
Untuk membuat indentasi blok kode, buka salah satu kawat gigi dan gunakan perintah
sumber
Anda dapat menggunakan aplikasi / utilitas yang rapi untuk membuat indentasi file HTML & XML dan ini berfungsi cukup baik dalam indentasi file tersebut.
Prettify file XML
Prettify file HTML
sumber
tekan escape dan kemudian ketikkan kombinasi di bawah ini dengan cepat:
sumber
1G=G
. Itu harus membuat indentasi semua baris dalam file.1G
membawakan Anda baris pertama,=
akan memulai indentasi otomatis dan finalG
akan membawa Anda baris terakhir dalam file.sumber
1gg=G
:set paste
adalah teman Anda, saya menggunakan dempul dan akhirnya menyalin kode antar windows. Sebelum saya dihidupkan:set paste
(dan:set nopaste
) copy / paste memberi saya cocok karena alasan itu.sumber
Di Vim, gunakan
:insert
. Ini akan menjaga semua format Anda dan tidak melakukan indentifikasi otomatis. Untuk informasi lebih lanjuthelp :insert
.sumber
jika Anda tidak ingin menggunakan
:set paste
, klik tengahset nopaste
,, Anda juga dapat menempelkan isi clipboard:Dengan begitu Anda tidak harus meninggalkan mode normal. jika Anda harus menempelkan
+
atau*
bergantung pada cara Anda memilih teks, lihat:help quoteplus
.sumber
vim-autoformat memformat file sumber Anda menggunakan program eksternal khusus untuk bahasa Anda, mis. permata "rbeautify" untuk file Ruby, paket "js-beautify" npm untuk JavaScript.
sumber
Untuk file C ++ yang kompleks, vim tidak selalu mendapatkan pemformatan yang benar saat menggunakan
=
perintah filter vim . Jadi untuk situasi seperti itu, lebih baik menggunakan formatter C ++ eksternal seperti astyle (atau tidak bisa dipercaya ) misalnya:Fungsi Vim '=' menggunakan formatter internal secara default (yang tidak selalu membuat segalanya menjadi benar) tetapi kita juga dapat mengaturnya menggunakan formatter eksternal, seperti astyle, dengan mengaturnya dengan tepat seperti yang dibahas dalam pertanyaan ini .
sumber
Untuk file XML, saya menggunakan perintah ini
Anda perlu menginstal xmllint (package libxml2-utils)
(Sumber: http://ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html )
sumber
Anda dapat membuat pemetaan untuk melakukan ini untuk Anda.
Yang ini akan membuat indentasi keseluruhan file dan tetap menjaga kursor Anda di posisi Anda:
sumber
Untuk vi Editor, gunakan: masukkan. Ini akan menjaga semua pemformatan Anda dan tidak memasukkan indentasi otomatis. Setelah selesai tekan escape untuk melihat file yang diformat yang sebenarnya jika tidak, Anda akan melihat beberapa karakter sampah. seperti ^ I eg:
sumber
Masuk saja ke mode visual dalam vim, dan pilih dari atas ke bawah setelah memilih cukup tekan =, Semua baris yang dipilih akan indentasi.
sumber
ggvG=
kalau bisagg=G
. Apa gunanya membuat gerakan itu terlihat? Itu berlaku untuk semua tindakan yang mengambil gerakan.