Vim: masukkan baris kosong di atas baris saat ini (tidak terbuka, yaitu tanpa masuk ke mode Insert)

21

apakah ada cara memasukkan baris baru di atas arus, tanpa membuka baris (jadi tanpa masuk ke mode Insert)? Yaitu, seperti "O", tetapi tanpa membuka.

tmadsen
sumber
2
Apa yang dimaksud dengan "membuka garis"?
Matteo Riva
"opening a line" artinya akan membentuk mode normal untuk menyisipkan mode, yang terjadi ketika Anda menekan "O" (oh).
tmadsen

Jawaban:

9

Saya menggunakan plugin Tim Pope yang tidak dihapus yang memiliki perintah khusus untuk tujuan ini:

[<space>

Dan jika Anda ingin menambahkan spasi setelah baris Anda berada di:

]<space>

Eric Mathison
sumber
29

Definisi permintaan Anda adalah O.

Logikanya ketika memasukkan baris baru di atas akan O.

Untuk memasukkan sebelum kursor: i
Setelah: a
Sebelum baris (rumah): I
Tambahkan di akhir baris:A

Yang paling dekat saya pikir Anda akan datang adalah Iyang akan meletakkan kursor di awal baris.

Josh K.
sumber
Mungkin saya tidak jelas. Skenarionya adalah ini: Saya dalam mode normal dan ingin memasukkan baris kosong di atas yang sedang saya pakai, sambil tetap dalam mode normal. Menekan "O" menempatkan saya dalam mode sisipkan. Mungkin tidak ada cara untuk melakukannya dan tidak apa-apa, hanya berpikir saya akan bertanya :)
tmadsen
3
Hanya petakan saja,m`O+Esc`
Josh K
1
Ide bagus, belum mempertimbangkan itu. Melakukan: noremap <leader> O O <ESC>
tmadsen
2tmadsen: Anda dapat memetakan <yourkey> O <ESC> ini
Dzung Nguyen
9
:h append()

Ini tidak akan menggerakkan kursor, itu akan membiarkan Anda memasukkan sebanyak mungkin baris (kosong atau tidak) seperti yang Anda inginkan, dan itu tidak akan mengubah tanda posisi sebelumnya.

call append(line('.')-1, '')
Luc Hermitte
sumber
yah, itu +1 rapi! / me mengubah vimrc
akira
Yah, itu punya beberapa keuntungan ketika datang ke scripting. Sedikit berlebihan untuk mengetik sebaliknya.
Luc Hermitte
+1 untuk solusi yang berfungsi terlepas dari bagaimana seseorang telah menetapkanformatoptions
Micah Smith
5

Anda dapat memetakan kunci atau urutan tombol apa pun yang Anda suka

m`O<ESC>``

ini menyisipkan baris kosong di atas yang sekarang menjaga Anda dalam mode normal dan tanpa mengubah posisi kursor.

Matteo Riva
sumber
jadi perintah untuk memetakan ini ke Alt-O adalah: map <Mo> m`O <ESC> ``
K Robinson
Itu benar.
Matteo Riva
2
:nmap <CR>_i<CR><ESC>
akira
sumber