Ketika saya belajar memprogram, saya akan menekan kurung buka dan tutup / etc lalu tombol panah kiri kemudian masukkan teks. Jadi untuk dimasukkan, [hello]
saya akan mengetik []
, dan kemudian panah kiri sehingga lebih dari braket pertama ( [
).
Saya suka itu karena saya tahu saya selalu memiliki jumlah tanda kurung / etc yang tepat dan sebaliknya saya merasa tangan saya harus bergerak maju dan mundur ke braket / kunci dll
Tetapi, dengan tetap berpegang pada pola pikir Vim, saya tidak ingin terus-menerus meraih tombol panah. Apakah ada yang bisa saya lakukan yang tidak melibatkan menggunakan tombol panah atau harus terus-menerus beralih dari mode insert untuk hanya menekan h
dan masuk kembali?
sumber
[
,]
,<Esc>
(yang akan menempatkan kursor pada]
) dan akhirnyai
yang akan letakkan kursor di antara kurung dalam mode sisipkan.ctrl-o 2h
? Apakah ini lebih cepat daripada menggerakkan tangan Anda ke kursor? ;)h
atauj
dan kalau tidak saya akan menggunakan gerakan lain. Rasanya lebih cepat untuk saya, tapi saya memahami bahwa beberapa orang merasa itu dengan cara yang berbeda :)Ada banyak "pasang" plugin yang melakukan ini untuk Anda secara otomatis. Namun semuanya menggosok saya dengan cara yang salah. Saya cenderung menggunakan plugin surround.vim Tim Pope . Saya melakukan hal berikut:
<c-s>]
dalam mode memasukkan untuk memasukkan[]
dengan kursor di tengah kurung.sumber
Jika Anda hanya perlu memindahkan satu spasi, ctrl-odalam mode sisipkan membuat input Anda berikutnya menjadi perintah normal, jadi ctrl-o, hakan pindah satu. Modeline akan ditampilkan
--- (insert) ---
sampai Anda memasukkan perintah normal.sumber
lh-brackets menyediakan pemetaan mode insert dan normal untuk memasukkan sepasang bracket.
Catatan:
(
dalam mode visual akan mengelilingi (secara default), kita tidak perlu menekansi(
atau urutan yang sama.sumber
Jawaban sebelumnya sangat bagus. Tapi saya pikir Anda mungkin menginginkan sesuatu yang lebih mudah. Secara pribadi saya gunakan
h
j
k
l
untuk bergerak. Oleh karena itu, saya telah menambahkan .vimrc saya sebagai berikut:Hanya tip kecil. Anda mengatakan bahwa prosedur Anda
i
,[]
,<Esc>hi
.Ada Operator-Tertunda pemetaan, Yang berarti Anda bisa
ci[
ataudi[
atauii[
.sumber
Saya pribadi bukan penggemar berat penyisipan karakter otomatis; Anda dapat dengan mudah menentukan satu set pemetaan untuk menyisipkan teks & lebih banyak kursor ke tempat yang Anda inginkan:
Perhatikan bahwa plugin seperti ultisnips juga melakukan hal-hal seperti ini, tetapi lebih maju. Misalnya dalam Javascript saya bisa mengetik:
dan saya mendapatkan:
Anda dapat menambahkan cuplikan sederhana untuk melengkapi tanda kurung; ini adalah file .snippet khusus yang ada di
~/.vim/UltiSnips/all.snippets
:${0}
adalah posisi kursor.lihat
:help UltiSnips-adding-snippets
untuk informasi lebih lanjut.Perhatikan bahwa ultisnips membutuhkan Python; Plugin lain yang terkenal adalah vim-snipmate . Vim Wiki memiliki daftar lengkap plugin potongan .
sumber