Inilah yang dikatakan dokumentasi Vim tentangnya:
Pengeditan virtual berarti kursor dapat diposisikan di tempat yang tidak memiliki karakter sebenarnya. Ini bisa menjadi setengah tab atau di luar ujung garis. Berguna untuk memilih kotak dalam mode Visual dan mengedit tabel.
Saya lebih suka melihat ini diimplementasikan sebagai mode minor atau pengaturan bawaan.
text-editing
vim-emulation
rectangle
pengasuh
sumber
sumber
C-f
. Tetapi ketika Anda menarik persegi panjang setelah melakukan ini, persegi panjang muncul di tanda bukannya pada titik. Jika muncul pada titik, itu akan menyelesaikan masalah ini.Jawaban:
The
extend-rectangle-to-end
fungsi dalamrectangle-utils
paket adalah apa yang Anda inginkan. Sudah menyalamelpa
.Ini menyisipkan spasi untuk membuat pemilihan persegi panjang saat ini diperluas untuk mencakup garis terpanjang di wilayah tersebut.
Untuk mendapatkan perilaku ini, saya punya ini di init.el.
C-x r e
tidak terikat dengan hal lain dalam vanilla emacssumber
M-x extend-rectangle-to-end
dan kemudianC-x r M-w
atauC-x r k
.Jawaban lain: gunakan
M-x picture-mode
. Anda dapat membunuh atau menyalin persegi panjang di tengah-tengah karakter tab dll, mengirimnya ke register, dll.sumber
extend-rectangle-to-end
sebagai seleksi kotak dengan itu akan selalu menjadi 30x2.picture-mode
sudah tua dan tidak banyak diketahui. Di antara beberapa fitur lain yang kurang dikenal: exiting (C-c C-c
) menghapus spasi spasi tambahan.rectangle-minor-mode
agar "dibungkus"picture-mode
? (saran karena saya tidak melihat kait di sumberrectangle-minor-mode
).(defun rectangle-mark-mode-wrapped-in-picture-mode (orig-fun &rest args) (if rectangle-mark-mode (picture-mode) (and (eq major-mode 'picture-mode) (picture-mode-exit t))))
(advice-add 'rectangle-mark-mode :around #'rectangle-mark-mode-wrapped-in-picture-mode)