Emacs - завершение табуляции локальных переменных Python - PullRequest
28 голосов
/ 15 апреля 2009

Есть ли хороший режим emacs, который позволит завершать табуляцию локальных переменных python? Я настроил ipython.el, но он будет только дополнять вкладку в объеме интерпретатора. Я ищу что-то, что позволит мне заполнить табуляцией токены в локальном пространстве имен функции или файла.

Ответы [ 6 ]

16 голосов
/ 15 апреля 2009

M- / запускает команду dabbrev-expand. Это завершит локальные имена в любом режиме. Также я связываю meta f1 с хиппи-экспандом из всех открытых буферов Это очень полезно для меня.

;; Bind hippie-expand
(global-set-key [(meta f1)] (make-hippie-expand-function
                               '(try-expand-dabbrev-visible
                                 try-expand-dabbrev
                                 try-expand-dabbrev-all-buffers) t))

Надеюсь, это полезно.

13 голосов
/ 19 апреля 2009

Я использую emacs-autocomplete.el (версия 0.2.0) вместе с yasnippet. Работает нормально для меня, хотя это не полная среда автозаполнения, как eclipse + java. Но достаточно для обычного хакера Emacs, такого как я:)

1) Загрузите автозаполнение с здесь (первая ссылка) и поместите его в каталог пути загрузки. Также скачайте расширения, которые вы хотите использовать (Внимание: расширениям Ruby и etags нужны дополнительные материалы). Поместите их также в каталог load-path.

2) Загрузите yasnippet и установите его, как сказано в инструкции на этой странице (включая часть (require ...)).

3) Поместите эти строки в свой файл .emacs и отредактируйте их для своих нужд (как и все расширения, которые вы хотите использовать):

(require 'auto-complete)
(global-auto-complete-mode t)

(when (require 'auto-complete nil t)
  (require 'auto-complete-yasnippet)
  (require 'auto-complete-python)
  (require 'auto-complete-css) 
  (require 'auto-complete-cpp)  
  (require 'auto-complete-emacs-lisp)  
  (require 'auto-complete-semantic)  
  (require 'auto-complete-gtags)

  (global-auto-complete-mode t)
  (setq ac-auto-start 3)
  (setq ac-dwim t)
  (set-default 'ac-sources '(ac-source-yasnippet ac-source-abbrev ac-source-words-in-buffer ac-source-files-in-current-dir ac-source-symbols))

Для получения дополнительной информации о параметрах см. Файл auto-complete.el.

4) Перезапустите emacs или загрузите файл M-x с вашим файлом .emacs. Напишите некоторый код и нажмите TAB для автоматического завершения.

10 голосов
/ 15 апреля 2009

Сообщение в блоге, описывающее желаемое завершение вкладки, можно найти по адресу Завершение кода Python в Emacs . Есть немного инсталляционных пакетов, pymacs, AutoComplete , Rope, Ropemacs, Rope Mode, Yasnippet и настройка, но в конце я надеюсь, что это окупится.

5 голосов
/ 10 января 2013

Использование Джедай !

Он действительно понимает Python лучше, чем любая другая библиотека автозаполнения:

  • 1008 * встроенные команды *
  • несколько возвратов или выходов
  • присваивание кортежей / индексация массивов / индексация словаря
  • с оператором / обработка исключений
  • * args / ** kwargs
  • декораторы / лямбды / затворы
  • генераторы / итераторы
  • некоторые дескрипторы: свойство / staticmethod / classmethod
  • некоторые магические методы: __call__, __iter__, __next__, __get__, __getitem__, __init__
  • list.append (), set.add (), list.extend () и т. Д.
  • (вложенные) списки / троичные выражения
  • относительный импорт
  • getattr () / __getattr__ / __getattribute__
  • простые / обычные модификации sys.path
  • isinstance проверяет, если / while / assert
4 голосов
/ 15 апреля 2009

Я думаю, что вы можете искать что-то вроде этого . Он использует Pymacs и python-mode , чтобы делать то, что вы ищете.

Дайте нам знать, как это работает для вас?

3 голосов
/ 08 июня 2011

Если вы просто хотите запустить его с минимальными усилиями, попробуйте пакет emacs-for-python .

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...