Эта проблема запускается, когда я использую emacs (с - СЗ опция). Позвольте мне сначала объяснить это. Я пытался определить горячую клавишу (для emacs) как после
(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 используется другими людьми, (но не очень немного результатов).
На форуме Переполнения стека Gille ответил мне как следующему:
Ctrl+Shift+Up действительно отправляет сигнал на Ваш компьютер, но Ваш эмулятор терминала, по-видимому, не передает escape-последовательности для него. Таким образом, Ваша проблема находится в двух частях. Сначала необходимо заставить эмулятор терминала отправлять escape-последовательность, которая зависит от эмулятора терминала и является материалом Суперпользователя или Unix. SE, если Вы используете систему Unix. Затем необходимо объявить escape-последовательность в Emacs, и мой ответ объясняет ту часть
Таким образом, я приезжаю сюда для этого вопроса:
Как я получаю свой терминал (я использую человечность 10.04 и встроенный терминал) отправить escape-последовательность за Control+Shift+Up Control+Shift+down
Ubuntu использует GNOME и gnome-terminal
. Согласно его документации (в версии 2.30), CtrlShiftUp и CtrlShiftDown используются для навигации по буферу scrollback, и, кажется, нет никакого способа повернуть эту "функцию" прочь (кроме изменения исходного кода vte
, терминальная библиотека).
Исправить vte на Ubuntu 10.04:
Восстановить vte
, библиотека эмуляции терминала:
Программное обеспечение установки потребовало для компиляции:
sudo apt-get install git-core fakeroot
sudo apt-get build-dep vte
Скачать vte
исходный код и применяет патч:
cd /tmp
git clone git://gist.github.com/771667.git patches
apt-get source vte
cd vte-0.23.5
patch -p1 < ../patches/vte-0.23.5.patch
Сделайте пакет Debian и установите его:
dpkg-buildpackage -us -uc
sudo dpkg -i ../libvte9_0.23.5-*.deb
Закройте все gnome-terminal
процессы.
vte
обновление...Патч для 0,23:
diff -ur vte-0.23.5/src/vte.c vte-0.23.5+patched/src/vte.c
--- vte-0.23.5/src/vte.c 2010-01-14 02:46:18.000000000 +0200
+++ vte-0.23.5+patched/src/vte.c 2011-01-09 15:19:01.000000000 +0200
@@ -4948,26 +4948,6 @@
}
break;
/* Keypad/motion keys. */
- case GDK_KP_Up:
- case GDK_Up:
- if (modifiers & GDK_CONTROL_MASK
- && modifiers & GDK_SHIFT_MASK) {
- vte_terminal_scroll_lines(terminal, -1);
- scrolled = TRUE;
- handled = TRUE;
- suppress_meta_esc = TRUE;
- }
- break;
- case GDK_KP_Down:
- case GDK_Down:
- if (modifiers & GDK_CONTROL_MASK
- && modifiers & GDK_SHIFT_MASK) {
- vte_terminal_scroll_lines(terminal, 1);
- scrolled = TRUE;
- handled = TRUE;
- suppress_meta_esc = TRUE;
- }
- break;
case GDK_KP_Page_Up:
case GDK_Page_Up:
if (modifiers & GDK_SHIFT_MASK) {
Патч для 0,26:
diff -ur vte-0.26.2/src/vte.c vte-0.26.2+patched/src/vte.c
--- vte-0.26.2/src/vte.c 2010-11-13 14:18:41.000000000 +0200
+++ vte-0.26.2+patched/src/vte.c 2011-01-09 15:06:54.870000002 +0200
@@ -5153,26 +5153,6 @@
}
break;
/* Keypad/motion keys. */
- case GDK_KEY (KP_Up):
- case GDK_KEY (Up):
- if (modifiers & GDK_CONTROL_MASK
- && modifiers & GDK_SHIFT_MASK) {
- vte_terminal_scroll_lines(terminal, -1);
- scrolled = TRUE;
- handled = TRUE;
- suppress_meta_esc = TRUE;
- }
- break;
- case GDK_KEY (KP_Down):
- case GDK_KEY (Down):
- if (modifiers & GDK_CONTROL_MASK
- && modifiers & GDK_SHIFT_MASK) {
- vte_terminal_scroll_lines(terminal, 1);
- scrolled = TRUE;
- handled = TRUE;
- suppress_meta_esc = TRUE;
- }
- break;
case GDK_KEY (KP_Page_Up):
case GDK_KEY (Page_Up):
if (modifiers & GDK_SHIFT_MASK) {