Як діяти на прямокутники поза межами рядка?


16

Ось що має сказати про це документація Vim:

Віртуальне редагування означає, що курсор може бути розміщений там, де немає фактичного символу. Це може бути на півдорозі у вкладці або поза межами кінця рядка. Корисно для вибору прямокутника у візуальному режимі та редагування таблиці.

Я бажаю, щоб це реалізовувалося як другорядний режим або вбудований параметр.


Ви хочете, щоб це вибрати прямокутник? У такому випадку це типова версія в поточній розробній версії.
Малабарба

Ні, я більше думаю про те, як янг / заміна прямокутників. Я використовую режим позначки прямокутника, і хоча це приємна особливість, це не те, що я шукаю.
няня

Дійсно, що янг / заміна прямокутників, це було б природним супутником існуючої функціональності в режимі прямокутної позначки. Не впевнений, яким повинен бути інтерфейс користувача, тхо.
Стефан

Дякую за відповідь, Стефане. Ця функція була б найбільш корисною при роботі з прямокутниками, тому, можливо, перебуваючи в режимі позначки прямокутника, команда може переключити режим віртуального редагування. Зараз у режимі позначки прямокутника точка виглядає так, що знаходиться у режимі віртуального редагування: вона може просуватися повз кінця рядка C-f. Але коли ви виймаєте прямокутник після цього, прямокутник з’являється біля позначки замість точки. Якби воно з'явилося на місці, це вирішило б це питання.
няня

Відповіді:


10

extend-rectangle-to-endФункція в rectangle-utilsпакеті, що ви хочете. Це ввімкнено melpa.

Він вставляє пробіли, щоб зробити поточний вибір прямокутника розширеним, щоб охопити найдовшу лінію в регіоні.

Щоб отримати таку поведінку, я отримав це у своєму init.el. C-x r eне пов'язане ні з чим іншим у ванільних емаках

(require 'rectangle-utils)
(global-set-key (kbd "C-x r e") 'extend-rectangle-to-end)

1
Щоб уточнити, за допомогою цього пакета ви вибираєте регіон, потім робите M-x extend-rectangle-to-endі потім C-x r M-wабо C-x r k.
Каушал Моді

18

Ще одна відповідь: використання M-x picture-mode. Ви можете вбивати чи копіювати прямокутники через середину символів вкладок тощо, надсилати їх до регістрів тощо.


3
Однією з переваг використання цього методу є те, що ви можете точно контролювати, наскільки широкий ви хочете мати вибір прямокутника. Якщо у мене є рядок 1 з 30 символами та лінія 2 з 5 символами, я можу вибрати прямокутник, який повинен бути 15 символів у ширину та 2 лінії у висоту; не можна цього робити, extend-rectangle-to-endоскільки вибір прямокутника завжди буде 30x2.
Каушал Моді

1
picture-modeє старим і маловідомим. Серед інших маловідомих функцій, які вона має: вихід ( C-c C-c) видаляє пробіли пробілу.
Дрю

1
Це геніально, Дру! Питання: чи є якісь причини не порадитись rectangle-minor-mode"загортатись" picture-mode? (порада, оскільки я не бачу жодних гачків у джерелі rectangle-minor-mode).
rasmus

1
Ось моя порада, btw. Він не видаляє пробіли , так як це свого роду недоречна тут:(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)
Расмус
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.