LINUX.ORG.RU

Кастомизация Emacs: выделение текста

 


0

2

Привет, Я новичок в Emacs, хочу сделать такую штуку.

Выделять строки по Alt+p и Alt+n, т.е. поведение такое же как и при навигации по строкам, только выделение этих строк. Для последующего копирования и удаления.

Подскажите как можно такое реализовать.

Перемещено tazhate из talks

имакс такое не умеет, ставь вим, как все нормальные люди.

Rastafarra ★★★★ ()

Конечно можно написать свои определения select-down и select-up через activate/deactivate-mark. Но по моему проще делать Control-Space и использовать обычную навигацию.

unlog1c ★★★ ()

Для последующего копирования и удаления.

Для этого их можно даже не выделять.

C-S-Backspace C-y и просто C-S-Backspace соответственно + возможность забиндить на свои сочетания клавиш.

raven_cler ★★ ()

Как-то так:

(defun select-up (&optional arg try-vscroll)
  (interactive "^p\np")
  (if mark-active
      (previous-line arg try-vscroll)
    (progn 
      (set-mark-command nil)
      (previous-line arg try-vscroll))))
provaton ★★★★★ ()

Выделить — C-a C-space C-e

Ну и смотреть в сторону клавиатурных макросов.

С их помощью можно любое действие запомнить и повторять сколько угодно раз.

raven_cler ★★ ()
Ответ на: комментарий от kamre

Есть функции mark-word mark-paragraph mark-sexp mark-defun mark-whole-buffer. Можно просто циклически их переключать. Не ручаюсь, правда, что эффект будет как на гифке.

provaton ★★★★★ ()
Ответ на: комментарий от provaton

Есть функции mark-word mark-paragraph mark-sexp mark-defun mark-whole-buffer.

Это что-то лисп специфичное судя по «mark-sexp mark-defun»? IntelliJ IDEA расширяет выделение на основе построенного AST. В Emacs такое можно добавить?

kamre ★★★ ()
Ответ на: комментарий от kamre

Терминология лисповская, но каждый режим сам определяет что у него sexp, а что у него defun. В мануале все описано. Правда, обычные режимы парсят регулярками, AST не строят. AST умеет строить cedet, но я его не пробовал толком, сказать не могу насколько он хорош.

provaton ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.