Saya tahu banyak cara untuk menyalin sesuatu:
yiw
= menarik di kata saat ini
yaw
= menarik semua kata (termasuk spasi tambahan)
yy
= menarik baris saat ini
3yy
= menarik tiga baris mulai dari yang sekarang
yap
= menarik semua paragraf (termasuk mengikuti baris baru)
Saya juga dapat menghapus atau mengubah satu karakter:
x
= hapus karakter di bawah kursor
r
= ganti karakter di bawah kursor
Tetapi bagaimana di dunia Anda hanya menyalin satu karakter di bawah kursor?
Motivasi saya adalah saya sedang memprogram di Perl 6 dan beberapa operator adalah karakter Unicode. Saat ini saya menggunakan Perl 6 Config :: INI kode tadzik sebagai titik awal untuk parser kustom, misalnya, dan saya ingin menyalin satu karakter kutipan Prancis (operator hiper) dari baris ini :
my %hash = $<sections>».ast;
Saya bisa menggunakan versi dua karakter "Texas" dari operator hiper >>
, tapi saya pikir itu >»
terlihat lebih baik dan kurang ambigu daripada >>>
:
my %hash = $<sections>>>.ast;
sumber
yl
ytX
("y
ankt
ilX
") tampaknya berfungsi ketikaX
karakter tepat di sebelah kanan.conceal
fitur Vim ?»
karakter?Jawaban:
Menyusun operasi yank dengan begitu sering digunakan "satu karakter ke kanan" gerakan harus bekerja:
yl
.BTW (untuk mengomentari komentar OP), bagi saya
»
dapat disentak dengan cara ini, di gVim atau terminal Vim. Mungkin masalah pengkodean (file)?sumber
»
bekerja dengan baik untukku. Saya gunakanvy
untuk menarik satu karakter. Tidak yakin mengapa saya menggunakan itu daripadayl
, mungkin saya punya alasan sadar sekali tapi sekarang itu hanya refleks.y<space>
berpikir itu menyentak karakter di bawah kursor, dan saya akan menambahkannya sebagai jawaban tetapi setelah memeriksa bantuan saya menyadari<space>
danl
adalah hal yang sama.Biasanya saya tekan
vy
( visual yank ), kadang-kadangxu
( delete undo ) juga. Juga, jika Anda ingin menarik arang sebelum kursor Anda, alih-alihlvy
, Anda dapat menekanXu
, saya pikir itulah alasan mengapa saya menekanxu
untuk saat ini. :-)Perhatikan bahwa,
Xu
akan membuat kursor Anda bergerak ke char itu.sumber
hvy
. Saya mencoba mengeditnya, tetapi ternyata mengoreksi satu karakter dalam perintah vim bukanlah perubahan yang signifikan untuk dapat diterima.Cara paling sederhana yang saya tahu untuk melakukan ini adalah menggunakan
x
untuk menghapus karakter, yang juga meletakkannya di buffer, dan kemudianP
memasukkannya kembali. Anda kemudian dapat memindahkan kursor dan menempelkan karakter kembali ke mana pun Anda inginkan denganp
(setelah kursor) atauP
(sebelum kursor), selama Anda tidak mengubah buffer.sumber