Вопрос Emacs - хэш-ключ
У меня есть Mac-ноутбук, и я подключаюсь к серверу под управлением Linux. Поскольку Alt + 3 уже привязан к EMACS к команде, поэтому я не могу вставить символ хеша в файл.
Я пробовал следующее решение, которое я нашел в Интернете:
(global-unset-key (kbd "C-3"))
(global-set-key (kbd "C-3") '(lambda() (interactive) (insert-string
"#"))) //I know that C is for CTRL not Alt - I have tried with
M-3 instead as well
и некоторые другие, но никто, похоже, не работает. Можете ли вы мне рассказать
другим способом, в котором я мог бы ввести знак хэша (#) в
файл.
Асо попробовал (не работал):
(fset 'insertPound "#")
(global-set-key (kbd "M-3") 'insertPound)
Спасибо!
Ответы
Ответ 1
Я предполагаю, что у вас есть клавиатура Mac UK, поэтому Shift - 3 - £. На большинстве других клавиатур Shift - 3 есть #, как говорили другие.
Как я могу обойти это, чтобы изменить исходный источник на австралийский, разница в том, что Shift - 3 теперь # и Alt - 3 равна £ (или оставить в качестве привязки emacs)
Настройка источника входного сигнала
были системные настройки- > Язык и текст- > Входной источник
В более поздних версиях OSX (OSX 10.11 определенно, но было бы раньше). Настройка источника входного сигнала - это системные настройки- > Клавиатура- > Источник входного сигнала. По умолчанию это просто покажет британской клавиатуре, чтобы увидеть больше попавших + в нижней части списка и добавить Австралийский
Причина, по которой я предпочитаю это, а не добавление кода в emacs, заключается в том, что Shift - 3 равно # для всех приложений, например. в том числе Xcode/Eclipse, поэтому мне не нужно переключать ключ в соответствии с приложением или в соответствии с тем, что я нахожусь на американской клавиатуре или в Windows/Linux и т.д.
Ответ 2
От http://jimbarritt.com/non-random/2010/11/07/typing-the-pound-or-hash-key-in-emacs-on-uk-macbook
Набрав фунт или хеш (#) в emacs на UK Macbook:
Проблема с OS X и британской клавиатурой заключается в том, что у фунтового ключа на самом деле есть £. Чтобы получить "#", вы должны нажать Alt + 3
Конечно, в emacs ключ alt - это мета-ключ, который захватывается emacs. Простая функция, указанная в файле .emacs, должна правильно отображать ключи.
;; Allow hash to be entered
(global-set-key (kbd "M-3") '(lambda () (interactive) (insert "#")))
Ответ 3
Я знаю, что это немного поздно, и ответ был принят. Тем не менее, я только что перешел с Linux на MacOS с британской клавиатурой и имел ту же проблему.
Примечание. Я использую emacs отсюда: http://emacsformacosx.com/. Нижеследующие могут быть разными для Carbon Emacs/Aquamacs и т.д.
Метод global-set-key
выше подходит, если вам нужен знак #
, но что, если вам также нужно получить доступ к символу €
? (Что является Alt-3 на британской клавиатуре)
Решение для меня состояло в том, чтобы добавить это в мой файл инициализации:
(setq ns-right-alternate-modifier (quote none))
Это удаляет привязки emacs для правой клавиши alt/option.
Вы можете просмотреть все доступные опции с помощью
M-x customize-group RET ns RET
Кредит отправляется http://emacsformacosx.com/tips
Ответ 4
Мое решение (последовательность escape-последовательности):
;; Even though we may have set the Mac OS X Terminal Alt key as the emacs Meta key ...
;; ... we want to be able to insert a '#' using Alt-3 in emacs as we would in other programs
(fset 'insertPound "#")
(define-key global-map "\M-3" 'insertPound)
Ответ 5
Многие решения, приведенные здесь и в других местах, работают для ввода #
в нормальном буфере, но они не делают его работающим, как обычное нажатие клавиши; в частности, он прервет инкрементный поиск, что затрудняет запись макросов, связанных с комментариями Python, или C #include
s, например. Таким образом, лучше всего преобразовать ключ намного раньше, поэтому он просто действует как другое нажатие клавиши.
Я обнаружил, что добавление этой команды в вашу конфигурацию Emacs очень хорошо работает:
(define-key key-translation-map (kbd "M-3") (kbd "#"))
... и удалите все попытки (global-set-key...)
.
Если - как и я - вы меняете ключи модификатора, Opt ⌥ отображается на Hyper, поэтому я просто иду по поясу и привязке с помощью:
(define-key key-translation-map (kbd "M-3") (kbd "#"))
(define-key key-translation-map (kbd "M-£") (kbd "#"))
(define-key key-translation-map (kbd "H-3") (kbd "#"))
(define-key key-translation-map (kbd "H-£") (kbd "#"))
(define-key key-translation-map (kbd "S-3") (kbd "#"))
(define-key key-translation-map (kbd "S-£") (kbd "#"))
Ответ 6
Как сказал С.Лотт, S - 3 вставить знак числа (или хеш, фунт, октотроп).
Почему вы хотите использовать мета-модификатор для его вставки? Кроме того, что связано с M - 3 на вашей настройке? Вы можете получить его, выполнив C - h - k, а затем нажав комбинацию клавиш.
Предполагая, что вы правильно относитесь к Alt
и чтобы он установил бит модификации Meta, вы можете засунуть
(global-unset-key (kbd "M-3"))
в ваш .emacs
и eval его, чтобы отключить это от происходящего.
Все "обычные" клавиши привязаны к self-insert-command
. Модификатор сдвига просто увеличивает "ключ", который используется для вызова этой функции, поэтому вы получаете # вместо 3, когда вы делаете S-3.
Кроме того, я до сих пор не понимаю, почему вы используете Alt
, а не сдвигаете, чтобы отобразить символ #. Что вы делаете, когда хотите набрать @?