Подтвердить что ты не робот

Вопрос 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)

Спасибо!

4b9b3361

Ответ 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, а не сдвигаете, чтобы отобразить символ #. Что вы делаете, когда хотите набрать @?