Копия и метка набора в Bash как в Emacs?

Для удаления первых n строк, GNU sed может использоваться. Например, если n = 2

sed -n '1,2!p' input-file

! средний "исключают этот интервал". Как можно предположить, более сложный результат может быть получен, например

sed -n '3,5p;7p'

это покажет строку 3,4,5,7. Больше питания прибывает из использования регулярных выражений вместо адресов.

Ограничение - то, что числа строк должны быть известны заранее.

16
04.09.2013, 18:42
2 ответа

Это не выделяет выбор, но иначе я думаю, что это хорошо работает.

Попытайтесь работать

$ bind -p | grep copy-region-as-kill

удостоверяться это C-x C-r на самом деле работавший.

Это должно сказать:

"\ew": copy-region-as-kill

После этого это должно хорошо работать.

Пример:

$ abc<C-Spc><C-a><M-w> def <C-y>

дает мне

$ abc def abc

Если Вы когда-нибудь хотите знать где mark просто сделайте C-x C-x.

Пример:

$ <C-Spc>abc<C-x><C-x>

отложит курсор туда, где Вы устанавливаете метку (запуск строки).

Кроме того, я не думаю, что необходимо добавить set-mark привязка. Я не сделал.

$ bind -p | grep set-mark
"\C-@": set-mark
"\e ": set-mark
# vi-set-mark (not bound)

(обратите внимание, что большинство терминалов отправляет C-@ когда C-Spc нажимается. Я предполагаю, что Ваш делает также.)

Если все это перестало работать:

  • выполняет в работе Ctrl+Space emacs -nw на том же терминале?
  • другие ярлыки Alt/Meta работают в ударе?
11
27.01.2020, 19:49
  • 1
    Спасибо! у меня был "M-w" вместо "\ew" в .inputrc. Отсутствие выделения также запутанного меня. Спасибо за указатель на связывать команду между прочим. Это теперь работает как очарование! –  Amelio Vazquez-Reina 25.04.2011, 00:35
  • 2
    Добро пожаловать! Да, необходимо записать \e или \M-. См. readline init синтаксис файла. –  Mikel 25.04.2011, 00:37
  • 3
    Какой большой ответ!Спасибо. Это разрешило подобные проблемы для меня :D –  ephsmith 14.07.2012, 03:48
  • 4
    и copy-region-as-kill работают тихо, я могу выделить регион (как в emacs)? –  mosh 22.08.2017, 08:28

Я также связываю C-w для уничтожать-региона. Здесь мой .inputrc:

# See http://lists.gnu.org/archive/html/bug-bash/2009-03/msg00033.html
set bind-tty-special-chars off

# Define my favorite Emacs key bindings.
"\C-@": set-mark
"\C-w": kill-region
"\M-w": copy-region-as-kill
"\M-/" dabbrev-expand
4
27.01.2020, 19:49

Теги

Похожие вопросы