Sering kali dalam vim saya ingin menghapus satu baris sepenuhnya, jadi saya menggunakan dd. Namun, saya kemudian perlu menempelkan garis itu ke posisi lain di dalam garis, tetapi ini menyisipkan baris baru sebelum ditempelkan, oleh karena itu, membuat saya sangat sulit untuk mendapatkan hasil yang diinginkan. Sebagai contoh,
while( pasteInHere )
{
cin >> n; // Delete this line completely with dd
}
ketika saya melakukan ini dengan kode di atas saya dapatkan:
while( pasteInHere )
cin >> n; // Delete this line completely with dd
{
}
yang sangat jauh dari hasil yang saya inginkan ... bagaimana saya bisa menekan perilaku baris baru ini, atau menggunakan metode lain yang melakukannya dengan sangat efisien? Saya pikir d $ tidak bagus karena saya tidak hanya harus pergi ke awal baris, tetapi jika saya ingin menghapus baris kosong juga saya perlu menghapusnya di register lain, saya merasa harus ada cara yang lebih mudah! Terima kasih.
sumber
0D
hapus baris kecuali putus baris. Dan daripadagJ
bergabung dengan garis. Sekarang Anda dapat meletakkan teks tanpa garis putus-putus dan tanpa garis kosong.Jawaban:
Anda dapat pergi ke mana saja di baris di atas garis yang ingin Anda hapus, lalu tekan
JD
dan tempel denganp
pada titik yang diinginkan.J
bergabung dengan dua baris dan memindahkan Anda di awal teks yang ingin Anda hapus. Ini menghapus karakter baris baru dan lekukan garis yang ingin Anda pindahkan.D
menghapus dari posisi kursor saat ini ke akhir baris tetapi mempertahankan karakter baris baru.Petunjuk: Anda dapat menggunakan
:pu
jika Anda menghapusD
atau menarik dengany$
dan Anda ingin menempel dengan baris baru.sumber
Tidak terlalu sederhana, tetapi sedikit lebih efisien, dan Anda juga dapat membuat peta mode normal untuk kedua urutan:
sumber
Anda dapat mencapai sesuatu yang bekerja dengan sangat baik dengan
imap
. Tambahkan yang berikut ke Andavimrc
:Ini akan membuat pemetaan untuk CTRL-aitu akan menempelkan teks yang terakhir dihapus (dengan
dd
atau serupa). Jika Anda mau, tentu saja Anda dapat menggunakan kunci yang berbeda untuk pemetaan.Referensi:
sumber
Ini juga muncul untuk saya, tidak pernah berpikir untuk mengoptimalkannya sebelumnya tetapi pemetaan ini berfungsi:
dil
adalah "delete sejalan", mirip dengandiw
,di"
, dllsumber
Rekatkan tanpa baris baru
Masukkan ini ke dalam file .vimrc Anda:
Contoh:
Sekarang Anda dapat mengetik
gp
untuk memasukkan#D51B3F
setelahcolor:
saat kursor saya berada:
dalam mode Normal.Tarik tanpa baris baru
Gunakan jawaban flukus:
sebagai akronim dari menghapus garis dalam . Ini juga menghilangkan lekukan utama.
sumber
Anda dapat memilih teks yang ingin Anda salin dengan menekan
v
dan kemudian membawanya ke buffer dengan menekany
lalu menempelkannya ke mana sajap
. Itu tidak memasukkan baris baru.sumber