Вы можете сделать это тремя способами:
Использовать автоматическую красивую печать 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)
В отличие от других, рекомендуется использовать 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-
или
.
Это потому, что вы неправильно используете 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
Вместо использования read-kbd-macro
попробуйте использовать более простой синтаксис?
;(global-set-key [(control tab)] 'my-func)
Может быть, более простой синтаксис будет иметь значение?
Подробнее о read-kbd-macro и global-set-key .
Обратите внимание, что вы также можете вызвать global-set-key
интерактивно. Затем вы можете увидеть правильную команду привязки с помощью repeat-complex-command
(см. Также KeybindingGuide ):
Mx: global-set-key
Используйте Cx ESC ESC
( repeat-complex-command
), чтобы увидеть команду apropiate. В вашем случае я получаю:
(global-set-key (quote [C-tab]) (quote my-func))