Глобальный ключ набора Emacs к C-ВКЛАДКЕ

Вы можете сделать это тремя способами:


Использовать автоматическую красивую печать Python:

print [1, 2, 3]   # Prints [1, 2, 3]

Показывать то же самое с помощью переменной:

numberList = [1, 2]
numberList.append(3)
print numberList   # Prints [1, 2, 3]

Используйте «классические» подстановки строк (ala C's printf). Обратите внимание на различные значения здесь% в качестве спецификатора формата строки и%, чтобы применить список (фактически кортеж) к строке форматирования. (И обратите внимание, что% используется как оператор по модулю (остаток) для арифметических выражений.)

print "[%i, %i, %i]" % (1, 2, 3)

Обратите внимание, что если мы используем предопределенную переменную, нам нужно превратить ее в кортеж, чтобы сделать this:

print "[%i, %i, %i]" % tuple(numberList)

Использовать форматирование строки Python 3. Это все еще доступно в более ранних версиях (начиная с версии 2.6), но это «новый» способ сделать это в Py 3. Обратите внимание, что вы можете использовать позиционные (порядковые) аргументы или именованные аргументы (во всяком случае, я поставил) они в обратном порядке.

print "[{0}, {1}, {2}]".format(1, 2, 3)

Обратите внимание, что имена «один», «два» и «три» могут быть любыми.)

print "[{one}, {two}, {three}]".format(three=3, two=2, one=1)
38
задан Martin Cote 27 May 2009 в 16:43
поделиться

5 ответов

(global-set-key [C-tab] 'my-func)
43
ответ дан 27 November 2019 в 03:08
поделиться

В отличие от других, рекомендуется использовать kbd (или read-kbd-macro , что в основном одно и то же) на случай, если вы когда-нибудь захотите использовать те же файлы конфигурации в других версиях Emacs; kbd работает в нескольких версиях Emacs и XEmacs, где внутреннее представление последовательностей ключей отличается.

(global-set-key (kbd "<C-tab>") 'my-func)

Формат ввода, используемый read-kbd-macro , задокументирован в строке документации из edmacro-mode :

  • Специальные слова RET, SPC, TAB, DEL, LFD, ESC и NUL представляют специальные управляющие символы. Слова должны быть написаны в верхнем регистре.

  • Слово в угловых скобках, например, <возврат>, <вниз> или , обозначает функциональная клавиша. (Обратите внимание, что в стандартной конфигурации функциональная клавиша <возврат> и управляющая клавиша RET являются синонимами.) Вы можете использовать угловые скобки для слов RET, SPC и т. Д., Но они там не требуются.

Это написано несколько к сожалению; TAB, упомянутый в первом пункте, является символом ASCII для TAB, и добавление модификатора Control делает с ним что-то бессмысленное. Когда вы нажимаете Control-Tab, Emacs видит его (через вашу оконную систему; он не будет работать в текстовом терминале) как с модификатором Control, который вы можете представить как C- или .

51
ответ дан 27 November 2019 в 03:08
поделиться

Это потому, что вы неправильно используете read-kbd-macro . Когда вы видите, что связано с ключом:

C-h k C-TAB

Emacs сообщает вам:

<C-tab> is undefined.

Вам нужно включить <> в ваш вызов read-kbd-macro .

(global-set-key (read-kbd-macro "<C-tab>") 'my-func)

И я не Не знаю, как создать , но это не то же самое, что .

(equal (kbd "<C-TAB>") (kbd "<C-tab>"))
->
nil
11
ответ дан 27 November 2019 в 03:08
поделиться

Вместо использования read-kbd-macro попробуйте использовать более простой синтаксис?

;(global-set-key [(control tab)] 'my-func)

Может быть, более простой синтаксис будет иметь значение?

Подробнее о read-kbd-macro и global-set-key .

3
ответ дан 27 November 2019 в 03:08
поделиться

Обратите внимание, что вы также можете вызвать global-set-key интерактивно. Затем вы можете увидеть правильную команду привязки с помощью repeat-complex-command (см. Также KeybindingGuide ):

  1. Mx: global-set-key
  2. Введите комбинацию клавиш, которую вы want
  3. Используйте Cx ESC ESC ( repeat-complex-command ), чтобы увидеть команду apropiate. В вашем случае я получаю:

     (global-set-key (quote [C-tab]) (quote my-func))
    
6
ответ дан 27 November 2019 в 03:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: