Oto, co mówi o tym dokumentacja Vima:
Edycja wirtualna oznacza, że kursor można ustawić w miejscu, w którym nie ma rzeczywistego znaku. Może to być w połowie zakładki lub poza końcem linii. Przydatne do wybierania prostokąta w trybie wizualnym i edytowania tabeli.
Wolałbym, żeby to zaimplementowano jako tryb podrzędny lub wbudowane ustawienie.
text-editing
vim-emulation
rectangle
niania
źródło
źródło
C-f
. Ale kiedy pociągniesz prostokąt po wykonaniu tej czynności, prostokąt pojawi się przy znaku zamiast w punkcie. Jeśli pojawiłby się w punkcie, to rozwiązałoby ten problem.Odpowiedzi:
extend-rectangle-to-end
Funkcji wrectangle-utils
pakiecie, co chcesz. To jest włączonemelpa
.Wstawia spacje, aby rozszerzyć bieżący wybór prostokąta, aby objąć najdłuższą linię w regionie.
Aby uzyskać takie zachowanie, mam to w swoim pliku init.el.
C-x r e
nie jest związany z niczym innym w emacsach waniliowychźródło
M-x extend-rectangle-to-end
a następnieC-x r M-w
lubC-x r k
.Inna odpowiedź: użyj
M-x picture-mode
. Możesz zabijać lub kopiować prostokąty pośrodku tabulatorów itp., Wysyłać je do rejestrów itp.źródło
extend-rectangle-to-end
ponieważ wybór prostokąta z tym zawsze będzie wynosił 30 x 2.picture-mode
jest stary i mało znany. Wśród innych mało znanych funkcji: exiting (C-c C-c
) usuwa końcowe białe znaki.rectangle-minor-mode
aby się „owinąć”picture-mode
? (rada, ponieważ nie widzę żadnych haczyków w źródlerectangle-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)