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.


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>


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.


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, '')

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.


jadi perintah untuk memetakan ini ke Alt-O adalah: map <Mo> m`O <ESC> ``
K Robinson

Itu benar.
Matteo Riva

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.