emacs - [control shift up] не работает - PullRequest
2 голосов
/ 07 января 2011

Я попытался определить горячую клавишу следующим образом

(global-set-key [(control shift up)] 'other-window)

но это не работает (без ошибок, просто не работает), также не работает

(global-set-key [(control shift down)] 'other-window)

Но

(global-set-key [(control shift right)] 'other-window) 

и

(global-set-key [(control shift left)] 'other-window)

работа!

Но поскольку последние две комбинации клавиш используются emacs (по умолчанию), я не хочу менять их для других функций.

Так, как я мог заставить control-shift-up и control-shift-down работать?

Я гуглил "(control shift up)", кажется, что control-shift-up используется другими людьми (но не очень мало результатов)

Ответы [ 3 ]

6 голосов
/ 08 января 2011

Причина этого не в Emacs, а в том, что ваш терминал не может создать последовательность клавиш для CS-up.

Вы можете проверить это очень легко.Откройте терминал и введите:

Control-v Control-Shift-right

Часть Control-v заставит последовательность управления для следующего ключа дословно вставить в вашу оболочку.В нашем случае он вставит последовательность для Control-Shift вправо, и это будет выглядеть примерно так:

^[[1;6C

Теперь попробуйте то же самое для CS-up:

Control-v Control-Shift-up

Вы увидите, что последовательность ввода не введена, что намекает на тот факт, что когда вы нажимаете CS-up в Emacs, он фактически никогда ничего не получит, потому что терминал не может выдать что-либо для передачи Emacs.

Мы можем проверить это дважды, если вы просто запустите новый emacs -nw и наберете C-h k, чтобы вызвать функцию Emacs 'describe-key.В минибуфере вас попросят ввести ключ, чтобы узнать, к какой функции он привязан.Если вы сейчас набираете CS-up, то ничего не происходит - конечно, нет, поскольку терминал, на котором работает ваш Emacs, ничего не производит.

Однако, если вы просто ищете неиспользованную комбинацию клавиш, како просто Shift-Up (или даже Shift-right) без контроля?Это должно работать как в терминальном emacs, так и в оконной версии.

4 голосов
/ 10 января 2011

Наконец, с помощью grawity на superuser.com, я заработал.Пожалуйста, эту тему

https://superuser.com/questions/230852/get-ubuntu-terminal-to-send-an-escape-sequence-controlshiftup

0 голосов
/ 07 января 2011

Это может быть дубликатом:
Связывание M- / M- в emacs 23.1.1

Если это так, то ответ Жиля должен разобраться с вами (хотя, несомненно, с другими escape-последовательностями.)

изменить (для лучшей видимости - см. ответ ниже):

Оказалось, что терминал gnome не передает эти комбинации клавиш, поэтому решение основано на следующем: https://superuser.com/questions/230852/get-ubuntu-terminal-to-send-an-escape-sequence-controlshiftup

...