Ответ 1
Взгляните на прямоугольник области в emacs.
Короче говоря, вы начинаете выбор, как обычно, с Control - Space, затем уничтожайте область с помощью Control - x r k и вставляйте (или yank) убитый блок с помощью Control - x r y.
Я хочу выделить или выделить блок в Emacs, не используя мышь, но делая это с клавиатуры, как VIM Visual Mode. Какой самый простой способ сделать это с клавиатуры?
Взгляните на прямоугольник области в emacs.
Короче говоря, вы начинаете выбор, как обычно, с Control - Space, затем уничтожайте область с помощью Control - x r k и вставляйте (или yank) убитый блок с помощью Control - x r y.
Если я правильно понял вопрос, это не касается первоначально прямоугольных областей.
C-Spc
помещает отметку в текущую позицию.
В любом месте, где находится ваш курсор, текст между последней меткой и текущей позицией "выбран" (вы можете выделить это, активировав transient-mark-mode
, но это также означает, что метки должны быть удалены, если вы не хотите выделить).
Вы можете работать в этом регионе с такими командами, как:
C-w
., Убить регион. Это удаляет и помещает регион в кольцо уничтожения.
C-y
., Вырезание. Это вставляет последний фрагмент из кольца уничтожения.
M-y
., Циклическое кольцо. Сразу после C-y
это заменяет дергаемую часть другими фрагментами в кольце уничтожения.
M-w
., Сохраните область в кольцо убийства. Как C-w
, но не удаляет.
Это просто основное использование. Знаки также используются в других целях. Я рекомендую учебник (C-h t
).
Emacs 24.4 теперь имеет режим прямоугольной метки. C-x для его вызова.
См. статью: "Работа с прямоугольными выделениями" , особенно раздел комментариев. См. Также раздел Документация режима CUA под названием "Поддержка прямоугольника CUA". Там также есть хорошее видео на vimeo.
Хотя C-SPC
является обычным способом начать что-то отмечать, где бы вы ни находились, часто бывают более быстрые/более простые способы, которые не предполагают явного перехода к начальной/конечной точке...
Mh
- важное средство для выделения абзаца. "Абзац" часто означает блок кода.
C-Mh
и [email protected]
- для обозначения sexps и defuns соответственно. Это работает для нескольких языков, а не только для шуток.
Удерживайте нажатой клавишу Shift - еще один приятный способ выделить во время движения. Например, MSf
выделяет вперед целое слово. Это shift-select-mode
, и он включен по умолчанию в Emacs 24+. На некоторых (не chiclet) клавиатурах вы сможете удерживать C-S-
одним мизинцем.
Вы можете нажать любую из них несколько раз, чтобы увеличить выбор.
(ПРИМЕЧАНИЕ: часто используйте C-g
для отмены маркировки во время экспериментов.)
Есть несколько дополнительных пакетов, которые улучшают выбор регионов и вещей. Все они прекрасно сочетаются друг с другом и подходят для разных вариантов использования. Используйте их всех!
Expand-Region: Expand region увеличивает выделенную область на семантические единицы. Просто продолжайте нажимать клавишу, пока она не выберет то, что вы хотите. C-=
рекомендуемое связывание для него. Нажмите несколько раз, чтобы получить то, что вам нужно.
Easy-Kill: используйте Mw
и мнемонику для выбора различных типов вещей, таких как слова, sexps, списки и т.д.
Zop-to-Char: Как и zap-to-char, но предоставляет хороший выбор и другие действия, управляемые меню.
diff-hl: выделение незафиксированных измененных регионов. Используйте diff-hl-mark-hunk
чтобы выбрать/пометить кусок.
Используйте Control - Space для установки метки и перемещения курсора.
transient-mark-mode
выделит для вас выбор. M - x transient-mark-mode
.
Вы можете настроить Emacs для включения этого режима по умолчанию с помощью настройки. M - x customize-option
RET transient-mark-mode
.
... и если вы используете Ubuntu и C-spc не работает для вас: вам нужно очистить клавиатуру IBus "следующий входной метод", как в
запустите
ibus-setup
и измените привязку клавиш для "следующий метод ввода" на что-то другое (или полностью удалить его нажав кнопку "...", а затем кнопку "Удалить" ).
Цитата из ответ на вопрос SO.
Чтобы расширить ответ Эдина Салковича, если вы используете режим CUA, вы можете использовать, чтобы начать выбор визуального блока. Существует множество ярлыков для управления выбором блока, описанным в документации по CUA.
В Emacs 25 просто нажмите C - Space, а затем переместите курсор туда, где вы хотите выделить/выбрать область текста, которая вас интересует. После этого вам могут понадобиться следующие команды: