Itu seharusnya sepele, dan bahkan mungkin bisa membantu, tapi saya tidak tahu bagaimana menavigasi itu. Bagaimana cara indentasi beberapa baris dengan cepat di vi?
sumber
Itu seharusnya sepele, dan bahkan mungkin bisa membantu, tapi saya tidak tahu bagaimana menavigasi itu. Bagaimana cara indentasi beberapa baris dengan cepat di vi?
Gunakan >perintah. Untuk indentasi lima baris 5>>,. Untuk menandai blok garis dan membuat indentasi, Vjj>untuk indentasi tiga baris (hanya Vim). Untuk membuat indentasi blok kurung kurawal, letakkan kursor Anda di salah satu kurung kurawal dan gunakan >%atau dari mana pun di dalam blok yang digunakan >iB.
Jika Anda menyalin blok teks di sekitar dan perlu menyelaraskan indentasi blok di lokasi yang baru, gunakan ]pbukan hanya p. Ini menyelaraskan blok yang ditempelkan dengan teks di sekitarnya.
Selain itu, shiftwidth
pengaturan ini memungkinkan Anda untuk mengontrol berapa banyak ruang untuk inden.
shiftwidth
pengaturan cara untuk mengubahnya.Jawaban ini merangkum jawaban dan komentar lain dari pertanyaan ini, dan menambahkan informasi tambahan berdasarkan dokumentasi Vim dan wiki Vim . Untuk keringkasan, jawaban ini tidak membedakan antara perintah khusus Vi dan Vim.
Pada perintah di bawah ini, "indentasi ulang" berarti "baris indentasi sesuai dengan pengaturan indentasi Anda ."
shiftwidth
adalah variabel utama yang mengontrol indentasi.Perintah Umum
Anda dapat mengganti
{
dengan}
atauB
, misalnya=iB
perintah indentasi blok yang valid. Lihatlah "Indent a Code Block" untuk contoh yang bagus untuk mencoba perintah ini.Juga, ingat itu
, jadi perintah indentasi dapat dengan mudah dan nyaman diulang.
Mengindentifikasi kembali file yang lengkap
Situasi umum lainnya adalah membutuhkan lekukan untuk diperbaiki di seluruh file sumber:
Anda dapat memperluas gagasan ini ke banyak file:
Atau beberapa buffer:
Dalam Mode Visual
Dalam mode sisipkan
Perintah ini berlaku untuk baris saat ini:
Mantan perintah
Ini berguna ketika Anda ingin membuat indentasi rentang garis tertentu, tanpa menggerakkan kursor Anda.
Indentasi menggunakan spidol
Pendekatan lain adalah melalui spidol :
... pindahkan kursor ke akhir lokasi
Variabel yang mengatur lekukan
Anda dapat mengatur ini di file .vimrc Anda .
Vim memiliki indentasi cerdas berdasarkan filetype. Coba tambahkan ini ke .vimrc Anda:
Referensi
:help =
sumber
>}
. Terima kasih banyakPilihan besar adalah:
Ini sangat cepat, dan semuanya mendapat indentasi ;-)
sumber
gg=G
hanya menempatkan setiap baris mulai dari posisi 1. Semua spasi putih telah dihapus. Apakah ada hal lain yang spesifik untuk XML?set cindent
harus di vimrc atau harus dijalankan:set cindent
sebelum menjalankan perintah ituCoba juga ini untuk indentasi C-indentasi . Lakukan
:help =
untuk informasi lebih lanjut:={
Itu akan membuat inden inden pada blok kode Anda saat ini.
Atau hanya:
==
untuk indentasi otomatis pada baris saat ini.
sumber
Penekanan kunci untuk lebih banyak orang visual:
Masuk ke Mode Perintah:
Escape
Bergerak ke awal area untuk indentasi:
hjkl↑↓←→
Mulai blok:
v
Bergeraklah ke ujung area untuk indentasi:
hjkl↑↓←→
(Opsional) Ketikkan jumlah level indentasi yang Anda inginkan
0..9
Jalankan indentasi pada blok:
>
sumber
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 indentasi baris saat ini
==
Untuk membuat indentasi semua baris di bawah baris saat ini
=G
Untuk membuat
n
garis di bawah garis saat inin==
Misalnya, untuk membuat indentasi 4 baris di bawah baris saat ini
4==
Untuk membuat indentasi blok kode, buka salah satu kawat gigi dan gunakan perintah
=%
Ini adalah perintah paling sederhana, namun kuat untuk membuat indentasi beberapa baris.
sumber
vim
, bukanvi
.vim
yang ditautkanvi
?Selain jawaban yang telah diberikan dan diterima, dimungkinkan juga untuk menempatkan penanda dan kemudian memasukkan segala sesuatu dari kursor saat ini ke penanda tersebut.
Dengan demikian, masukkan di
ma
mana Anda ingin bagian atas blok indentasi Anda, kursor ke bawah sejauh yang Anda butuhkan dan kemudian ketik>'a
(perhatikan bahwa "a
" dapat diganti dengan nama penanda yang valid). Ini terkadang lebih mudah daripada5>>
atauvjjj>
.sumber
Pergi ke awal teks
sumber
Serta solusi yang ditawarkan, saya suka melakukan hal-hal paragraf sekaligus
>}
sumber
Ketika Anda memilih blok dan digunakan >untuk indentasi, itu indentasi kemudian kembali ke mode normal. Saya memilikinya di file .vimrc saya:
Ini memungkinkan Anda indentasi pilihan Anda sebanyak yang Anda inginkan.
sumber
Misalkan Anda menggunakan 2 spasi untuk membuat indentasi kode Anda. Tipe:
Kemudian:
Anda mendapatkan idenya.
( Baris kosong tidak akan mendapatkan indentasi, yang menurut saya agak baik. )
Saya menemukan jawabannya dalam dokumentasi (g) vim untuk indentasi blok:
:'<,'>le4
untuk memasukkan spasi. Terima kasih!:set number
untuk mengganti nomor baris (mereka dinonaktifkan secara default), atau memasukkanset number
vimrc Anda.vim-prettier
alih-alih mesin indentasi default). Dengan menggunakan cara>
lain akan secara meremehkan pemformatan yang dilakukan oleh Prettier.Keindahan UI Vim adalah konsistensinya. Perintah pengeditan terdiri dari perintah dan gerakan kursor. Gerakan kursor selalu sama:
'
.Jadi, untuk menggunakan vim Anda harus belajar untuk memindahkan kursor dan mengingat repertoar perintah seperti, misalnya, >untuk indentasi (dan< "outdent").
Jadi, untuk indentasi garis-garis dari posisi kursor ke bagian atas layar yang Anda lakukan >H, >Guntuk indentasi ke bagian bawah file.
Jika, alih-alih mengetik >H, Anda mengetik dHmaka Anda menghapus blok garis yang sama, cHuntuk menggantinya, dll.
Beberapa gerakan kursor lebih cocok dengan perintah tertentu. Secara khusus, %perintah ini berguna untuk membuat indentasi seluruh blok HTML atau XML. Jika file memiliki sintaks yang disorot (
:syn on
) maka atur kursor dalam teks tag (seperti, dalam "i" dari <div> dan memasukkan>% akan hingga tag </div> penutup.Ini adalah cara kerja Vim: kita harus mengingat hanya gerakan kursor dan perintah, dan bagaimana mencampurnya. Jadi jawaban saya untuk pertanyaan ini adalah "pergi ke salah satu ujung blok baris yang ingin Anda indentasi, dan kemudian ketik >perintah dan gerakan ke ujung lain dari blok" jika indent diartikan sebagai menggeser garis, =jika indentasi ditafsirkan sebagai dalam pencetakan cantik.
sumber
Melakukan hal ini:
Dan tambahkan baris ini:
Ini hanya untuk file cpp. Anda dapat melakukan ini untuk jenis file lain, juga hanya dengan memodifikasi jenis file ...
sumber
Anda dapat menggunakan
norm i
perintah untuk menyisipkan teks yang diberikan di awal baris. Untuk memasukkan 10 spasi sebelum baris 2-10:Ingatlah bahwa harus ada karakter spasi di akhir perintah - ini akan menjadi karakter yang ingin kita masukkan. Kami juga dapat membuat indentasi baris dengan teks lain, misalnya untuk indentasi setiap baris dalam file dengan lima karakter garis bawah:
Atau sesuatu yang lebih mewah:
Contoh yang lebih praktis adalah mengomentari kode Bash / Python / etc dengan karakter #:
Untuk menggunakan kembali indentasi xalih-alih i. Misalnya, untuk menghapus 5 karakter pertama dari setiap baris:
sumber
Cara cepat untuk melakukan ini menggunakan
VISUAL MODE
proses yang sama dengan mengomentari blok kode.Ini berguna jika Anda memilih untuk tidak mengubah
shiftwidth
atau menggunakanset
arahan apa pun dan cukup fleksibel untuk bekerja dengan TABS atau SPACES atau karakter lainnya.-- VISUAL MODE --
:
untuk beralih ke promptMengganti dengan 3 spasi utama:
:'<,'>s/^/ /g
Atau ganti dengan tab terkemuka:
:'<,'>s/^/\t/g
Penjelasan singkat:
'<,'>
- Dalam Rentang Terpilih Secara Visuals/^/ /g
- Masukkan 3 spasi di awal setiap baris dalam seluruh rentang(atau)
s/^/\t/g
- MasukkanTab
di awal setiap baris dalam seluruh rentangsumber
>}
atau>{
inden dari baris saat ini hingga paragraf berikutnya<}
atau<{
tidak-indentasi yang samasumber
Saya suka menandai teks untuk indentasi:
PS: Anda dapat menggunakan :'a,'zteknik untuk menandai rentang untuk operasi apa pun (d, y, s ///, dll.) Di mana Anda dapat menggunakan garis, angka, atau %.
sumber
:help left
Di
ex mode
Anda dapat menggunakan:left
atau:le
untuk menyelaraskan garis jumlah yang ditentukan. Secara khusus, Kiri:left
akan menyelaraskan garis dalam [kisaran]. Ini mengatur indent pada baris ke [indent] (default 0).:%le3
atau:%le 3
atau:%left3
atau:%left 3
akan menyelaraskan seluruh file dengan melapisi dengan tiga spasi.:5,7 le 3
akan menyelaraskan garis 5 hingga 7 dengan melapisinya dengan tiga ruang.:le
tanpa nilai atau:le 0
akan dibariskan rata dengan bantalan 0.Ini berfungsi di Vim dan gVim.
sumber
:'<,'>le4
untuk memasukkan spasi. Terima kasih!Bagi saya, solusi MacVim (Visual) adalah, pilih dengan mouse dan tekan ">", tetapi setelah meletakkan baris berikut di "~ / .vimrc" karena saya lebih suka spasi daripada tab:
Juga berguna untuk dapat memanggil MacVim dari command-line (Terminal.app), jadi karena saya memiliki direktori pembantu berikut "~ / bin", tempat saya meletakkan skrip yang disebut "macvim":
Dan tentu saja di "~ / .bashrc":
MacPorts sering mengacaukan "~ / .profile", sehingga variabel lingkungan PATH bisa menjadi cukup lama.
sumber
5==
akan membuat indentasi lima baris dari posisi kursor saat ini.Jadi, Anda dapat mengetikkan nomor apa pun sebelumnya
==
. Ini akan membuat indentasi jumlah baris. Ini dalam mode perintah.gg=G
akan membuat indentasi seluruh file dari atas ke bawah.sumber
Saya tidak menemukan metode yang saya gunakan di komentar, jadi saya akan membagikannya (saya pikir hanya Vim):
Ini berguna ketika Anda tidak ingin mengubah pengaturan lekukan / tab
vimrc
atau mengingatnya untuk mengubahnya saat mengedit.Untuk melepas saya menggunakan Ctrl+ Vblok yang sama pilih untuk memilih spasi dan menghapusnya dengan D.
sumber
Saya tidak tahu mengapa sangat sulit untuk menemukan jawaban sederhana seperti ini ...
Saya sendiri harus banyak berjuang untuk mengetahui hal ini. Ini sangat sederhana:
.vimrc
file Anda di bawah direktori home.Tambahkan baris ini
di file Anda di mana Anda ingin indentasi dengan benar.
Dalam tipe mode normal / perintah
sumber
Sebagai contoh,
Tambah simbol '>' untuk tab lainnya.
Sebagai contoh,
sumber
:set number
untuk mengganti nomor baris (mereka dinonaktifkan secara default), atau memasukkanset number
vimrc Anda.Menggunakan banyak Python, saya merasa perlu sering perlu menggeser blok oleh lebih dari satu indent. Anda dapat melakukan ini dengan menggunakan salah satu metode pemilihan blok, dan kemudian cukup masukkan jumlah indentasi yang ingin Anda lompati tepat sebelum
>
Misalnya,
V5j3>
akan membuat indentasi lima baris tiga kali - yaitu 12 spasi jika Anda menggunakan empat spasi untuk indentasi.sumber
Untuk membuat indentasi setiap baris dalam jenis file, Esclalu G=gg.
sumber
Cara indentasi kode yang disorot di vi segera oleh sejumlah spasi:
Opsi 1: Indentasi blok kode di vi ke tiga spasi dengan mode Visual Block:
Pilih blok kode yang ingin Anda indentasi. Lakukan ini menggunakan Ctrl+Vdalam mode normal dan panah ke bawah untuk memilih teks. Saat itu dipilih, masukkan
:
untuk memberikan perintah ke blok teks yang dipilih.Berikut ini akan muncul di baris perintah:
:'<,'>
Untuk mengatur indent ke tiga spasi, ketik
le 3
dan tekan enter. Inilah yang muncul::'<,'>le 3
Teks yang dipilih segera dimasukkan ke dalam tiga spasi.
Opsi 2: Indentasi blok kode di vi ke tiga spasi dengan mode Visual Line:
Berada dalam mode normal dan tekan tombol berikut:
Interpretasi atas apa yang Anda lakukan:
V
berarti mulai memilih teks.jjjj
panah empat baris, menyoroti empat garis.:
memberitahu vi Anda akan memasukkan instruksi untuk teks yang disorot.le 3
berarti indent teks yang disorot tiga baris.Kode yang dipilih segera ditingkatkan atau dikurangi menjadi lekukan tiga spasi.
Opsi 3: gunakan mode Blok Visual dan mode sisipan khusus untuk meningkatkan indentasi:
Berada dalam mode normal tekan tombol-tombol berikut:
Ctrl+V
(tekan bilah spasi lima kali)
Esc Shift+i
Semua teks yang disorot diberi indentasi lima ruang tambahan.
sumber
Saya menggunakan pemilihan visual mode blok:
I
( Shift+I ) untuk masuk ke mode insert.Ini bukan uni-tasker. Berhasil:
c
bukanI
).sumber
vim-prettier
alih-alih mesin indentasi default). Dengan menggunakan cara>
lain akan secara meremehkan pemformatan yang dilakukan oleh Prettier.Untuk satu blok kode, {}: =+%
Untuk saluran yang dipilih: Shift+ vpilih menggunakan tombol panah atas / bawah, dan kemudian tekan =.
Untuk seluruh file: gg+ =+G
Catatan: 'gg' berarti pergi ke baris 1, '=' adalah perintah indent, dan 'G' memindahkan kursor ke akhir file .
sumber
Untuk membuat indentasi semua file dengan empat:
sumber
Sumber: https://www.fir3net.com/UNIX/General/how-do-i-tab-multiple-lines-within-vi.html
sumber