Saat ini, saya memiliki dua metode serupa untuk mengganti seluruh buffer dengan beberapa teks lain (misalnya di clipboard).
Metode # 1:
menghapus semua baris:
:%d
.rekatkan teks: "+P(atau serupa
:put+
:).
Metode # 2:
visual pilih semua lini: ggVG.
menempelkan teks: "+P.
Namun sepertinya saya tidak bisa menemukan cara satu perintah api untuk melakukan itu. Yang paling dekat yang saya temukan adalah :change
perintah. Tetapi tampaknya tidak berfungsi dengan baik dengan register. Tentu saja saya dapat membuat beberapa fungsi dan / atau memetakan kunci untuk melakukan itu. Tetapi sebelum saya dapat membuat semua penyesuaian ini, saya ingin memastikan:
Apakah ada beberapa perintah bawaan untuk mengganti berbagai baris dengan beberapa teks lainnya? Seperti, Anda bisa
:%replace+
mengganti seluruh buffer dengan teks di clipboard?
sumber
1,$s/\_./\=@+
bukan solusi: P,:%d|put+
lebih dekat, tetapi tidak cukup di sana.1,$s/\_.*/\=@+
, di mana\_.
cocok dengan karakter apa pun termasuk baris baru.:%d|put+
cocok dengan tagihan. Ini pendek dan mudah diingat. Perintah lainnya terlalu misterius untuk diingat dan diketik dengan benar.Jawaban:
Anda dapat melakukannya
ggvG<CTRL-G>
untuk memilih seluruh buffer secara visual dan masukSelect-mode
. Ini adalah cara termudah untuk mengganti buffer dengan teks yang Anda rencanakan untuk diketik. Anda bahkan dapat membuatSelect-mode
pemetaan dengan:smap
itu memecahkan masalah Anda.sumber
Salah satu cara untuk mengganti seluruh buffer dengan clipboard Anda dapat melalui perintah eksternal, misalnya:
Lihat juga: berbagi clipboard Mac OS X
Atau dengan menggunakan substitusi:
Atau gunakan
:%d|put+
(seperti yang sudah disarankan dalam komentar).sumber