Saya ingin tahu apakah saya dapat memasukkan baris baru tanpa meninggalkan mode normal. Misalnya, saya punya dua baris:
this is line one
this is line two
Dan kursor ada di baris satu. Sekarang saya ingin baris baru antara baris satu dan dua, seperti ini:
this is line one
this is line two
Saya tahu bahwa ketika saya dalam mode normal, saya cukup menekan o
. Tapi ini akan masuk ke mode insert.
Bagaimana saya bisa memasukkan baris baru seperti dan tetap dalam mode normal?
normal-mode
Alex
sumber
sumber
Jawaban:
Saya menggunakan pemetaan untuk itu:
Dengan cara ini Anda dapat memasukkan garis di bawah kursor Anda dengan
<Leader>o
dan satu di baris sebelumnya dengan<Leader>O
.Catatan: Seseorang dapat berargumen bahwa ini membutuhkan sebanyak mungkin penekanan tombol
o<Esc>
tetapi mudah-mudahan Anda memilih pemimpin Anda untuk membuat pemetaan seperti ini mudah. Juga saya benar-benar tidak yakin ada cara bawaan untuk melakukan ini.sumber
Solusi yang tidak melalui mode penyisipan, tidak menggerakkan kursor, dan memungkinkan Anda menggunakan penghitung untuk menambahkan beberapa baris sekaligus ( 3\odll.):
sumber
Saya pribadi merekomendasikan menggunakan plugin Tim Pope Unimpaired . Ini menyediakan banyak pemetaan tetapi yang akan Anda cari adalah
[<space>
dan]<space>
yang membuat garis-garis kosong di atas dan di bawah garis saat ini masing-masing. Unimpaired juga menyediakan pemetaan yang bagus untuk bergerak melalui daftar perbaikan cepat, daftar buffer, opsi beralih, dan banyak lainnya. Lihat:h unimpaired
lebih lanjut.Jika Anda tidak ingin menggunakan plugin yang tidak rusak tetapi seperti pemetaan di bawah ini adalah beberapa pemetaan cepat untuk dimasukkan ke dalam
~/.vimrc
file Anda :sumber
Jika Anda tidak ingin menambahkan pemetaan, Anda dapat menarik
yy
garis kosong dan kemudian menempelkan dip
bawah kursor dan diP
atas kursor.sumber
o
register dengan"oyy
dan tempel dari sana kapan pun diperlukan"op
.Pemetaan saya menggunakan
Shift-Enter
. Ini berbeda dari yang lain di mana kursor dikembalikan ke baris dan kolom yang sama menggunakan tanda o.sumber
<S-Enter>
tidak berfungsi di emulator terminal (hanya berfungsi di gVim). Jadi, Anda harus memilih kombinasi tombol yang berbeda untuk memetakannya ke ;-)Jawaban Maxim Kim ini mengubah hidup:
dan riff saya di atasnya:
Masukkan garis-garis itu di Anda
vimrc
. Lalu pergi ke awal baris kedua file Anda dan memukul Space, Enteratau pergi ke akhir baris pertama dan hit Shift+Space, Enter. Entah akan menambahkan baris kosong antara baris pertama dan kedua, dan membuat Anda dalam mode normal.Anda juga dapat menggunakan ini untuk satu tombol tunggal - tekan Spaceatau Shift+Spacediikuti oleh tombol yang Anda inginkan dan itu akan memasukkan atau menambahkannya, masing-masing.
sumber
Pemetaan ini akan melakukan apa yang Anda cari.
Ini memasukkan n sejumlah baris baru sebelum atau setelah kursor; menjaga kursor tepat di tempatnya, tanpa mengubah daftar lompatan.
Solusi lain adalah dengan hanya membuat jalan pintas yang mengisi register tanpa nama dengan baris baru. Kemudian Anda bisa menggunakan perintah put, p atau P untuk menyisipkan baris baru. Sebagai contoh:
sumber
Pemetaan saya untuk ini
Berbeda dari statox karena ini menjaga kursor di lokasi yang sama.
sumber
<silent>
artinya:h map-silent
.Solusi pribadi saya memasukkan karakter baris baru ke dalam register ekspresi dan menempelnya setelah baris saat ini, kemudian melompat kembali ke posisi semula:
sumber