5

Чтобы ускорить мой рабочий процесс по emacs, я пробую использовать emacs -nw вместо работы в режиме X-Windows.

Ctrl-HOME и Ctrl-END вообще не работают, и они пытались отредактировать файлы .keymap и следовать онлайн-советам, к сожалению, не принесло радости. Например

http://www.emacswiki.org/emacs/CuaMode

Я обычно включаю cua-режим для выбора смещения, и это также терпит неудачу при переходе по страницам вверх / вниз, например

Было бы здорово, если бы все это работало в режиме -nw, и я бы хотел получить совет от других пользователей emacs.

  • Установить = Linux Mint 9
  • Shell = Zsh

5 ответов5

4

К сожалению, разные терминалы посылают разные escape-последовательности для таких клавиш, как Ctrl+Home, и Emacs не знает обо всех из них. Вы можете объявить дополнительные escape-последовательности с помощью function-key-map (или local-function-key-map в Emacs 23). Это говорит Emacs, что эти escape-последовательности действительно являются кодировкой для одной функциональной клавиши.

Чтобы выяснить, какую escape-последовательность посылает клавиша, нажмите C-q а затем клавишу: здесь будет вставлен escape-символ, который буквально начинает последовательность клавиш, а затем другие символы, составляющие последовательность клавиш. Например, один терминал, который я использую, отправляет четыре символа ^[ , O , 5 , H когда я нажимаю Ctrl+Home , поэтому я бы включил следующую строку в мой .emacs:

(define-key function-key-map "\e05H" [C-home])

\e - самый читаемый способ написания escape-символа. Сделайте то же самое для других ключей, которые вы хотите поддерживать.

Если ключи не поддерживаются сразу после установки последней версией Emacs, было бы неплохо рассказать разработчикам о последовательностях клавиш, которые отправляет ваш терминал.

1

Я написал пакет Emacs, который может научить Emacs и терминалы правильно распознавать все комбинации клавиш на клавиатуре ПК и комбинации клавиш-модификаторов:

https://github.com/CyberShadow/term-keys

Для cua-mode и Shift-selection возможность использовать клавиши Ctrl + Shift + стрелка, безусловно, является улучшением.

1

Я почти всегда запускаю Emacs с -nw . Чтобы прокрутить файл до конца, я использую M-S-, и M-S-. чтобы вернуться к началу (возможно, легче запомнить как Alt-< и Alt->). Возможно, не так удобно, как C-Home и C-End , но я предпочитаю работать с терминала (на самом деле изнутри сессии tmux , для чего это стоит).

0

Вы можете попробовать другой терминал. В centos7, с emacs 25.3, ctrl-home не работает в mate-терминал, но работает с gnome-терминал. Он также работает внутри экрана (с gnome-терминал) вне темы: я только что обнаружил (xterm-mouse-mode 1), это здорово!

-2

Сделай себе одолжение и сделай урок :)

Emacs по умолчанию использует классические привязки редактора строк.

Ctrl a  << to start of line
Ctrl e  >> to end of line
Ctrl k  cut to end of line
Ctrl y  yank that back
alt y   roll back one more yank (repeat) try it out to get it.

Это те, которые я использую больше всего, и они также работают с readline (большинство оболочек)

Google или копаться в вашей системе для шпаргалок.

например

 /usr/share/emacs/23.4/etc/refcards/refcard.pdf

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .