Просто привыкнуть к paredit в emacs на OS X - почему C-) не работает? - PullRequest
7 голосов
/ 07 июня 2011

Я недавно установил среду программирования Common Lisp в Mac OS X Leopard.Один модуль emacs, который я нашел незаменимым, это paredit.Paredit вносит свой вклад, чтобы помочь мне легче справляться с кодом на Лиспе, но я столкнулся с небольшой ловушкой.

C-), привязанный к paredit-forward-slurp-sexp, не является ползучим сексом, а вместо этого повторяет число 0.Я использую Mac, чередуя iTerm и Terminal.Одна и та же проблема присутствует в обоих приложениях.

Я попробовал одну и ту же комбинацию клавиш в версии GUI GNU Emacs, и вот, это сработало.К сожалению, графическая версия Emacs не удовлетворяет моим потребностям;Я хотел бы продолжать использовать мою установку на основе iTerm.

Поэтому я прошу вас, stackoverflow: что мне нужно сделать, чтобы получить комбо C-) для регистрации в iTerm?

Ответы [ 5 ]

8 голосов
/ 21 января 2016

Для чего стоит, на моем Mac C- и C- связаны с Mission Control и перемещаются в правое и левое пространство.

Сказав, что, C-Shift- и C-Shift- , кажется, справляются с задачей, и я могу красиво ласкать и лаять на Emacs сparedit.

4 голосов
/ 07 июня 2011

IIRC, комбинация модификаторов Control и Shift не может быть отправлена ​​в Emacs через терминал. C-) требуется клавиша Shift, поэтому она выходит за пределы. Я не уверен, что любое количество настроек терминала изменит это.

Я полагаю, что paredit-forward-slurp-sexp также привязан к C-<right> по умолчанию, что должно нормально работать в терминале, так что, возможно, вы можете научить пальцы использовать эту клавишу вместо этого.

3 голосов
/ 18 сентября 2014

Основано на блоге Космина Я получил это для работы в iTerm2.

  1. Открыть Предпочтения> Профили> Ключи . (Вы можете скопировать профиль по умолчанию и изменить копию.)
  2. Нажмите + под сочетанием клавиш профиля: .
  3. Введите Ctrl+) (ctrl + shift + leftparen).
  4. Для Действие выберите Отправить Escape-символ и
  5. введите [1;5C в текстовое поле.
2 голосов
/ 30 октября 2013

Я столкнулся с такой же проблемой с альтернативным связыванием paredit C- , и обнаружил, что tmux вызывает у меня проблемы - в основном tmux включает C- ипросто передавая .

Я нашел решение в https://unix.stackexchange.com/a/34484,, и оно включало добавление

set-window-option -g xterm-keys on

к моему ~ / .tmux.conf.

2 голосов
/ 07 июня 2011

У меня есть подозрение, что ваши программы iTerm / Terminal на самом деле не могут отправлять C -) , потому что в ASCII такого символа нет, и я уверен, что для него нет последовательности на VT100.

Вы можете убедиться в этом сами.Запустите emacs в вашем эмуляторе терминала.Тип C -) .Затем введите Ch l ("просмотр-потеря").Это покажет вам последние несколько сотен клавиш, которые Emacs видел, как вы печатали.Попробуйте сделать то же самое после ввода неконтролируемого ) , чтобы увидеть, отличаются ли они.Если нет, вам не повезет, если вы не сможете настроить iTerm / Terminal для отправки их в Emacs разными способами.

При этом вы всегда можете связать какой-то другой ключ с paredit-forward-slurp-sexp.

...