तो मैं इस सरल कार्य से खुश हूं जो मुझे पहले से ही बार-बार आंदोलनों को बचाता है। जब मैं my-python-import-add
फोन:
- मैं क्या मॉड्यूल आयात करने के लिए कहा रहा हूँ
- यह या तो एक
import xxx
बयान या from …
आपके द्वारा लिखे गए सम्मिलित करता है (मैं os, sys, from foo import bar, re
की तरह एक अल्पविराम द्वारा पृथक सूची दे सकते हैं)।
- आयात को क्रमबद्ध किया जाता है।
- बिंदु (निश्चित रूप से) नहीं चला था।
उदाहरण के लिए
तो: M-x my-python-import-add
आरईटी os, sys, from foo import bar, requests
मुझे देता है:
import os
import sys
import requests
from foo import bar
पुनश्च: पाया एक चेतावनी: यदि आप पहले से ही एक import
बयान की आवश्यकता है।
हम isort
अजगर पैकेज पर भरोसा करते हैं:
pip install isort
और py-isort
package (Melpa में) पर,
इतना पढ़ा उनके छँटाई सुविधा अनुकूलित करने के लिए इसकी जांच करने का मदद करता है। मैं अपने आप को लाइन द्वारा एक भी आयात तो मैं
(setq py-isort-options '("--force_single_line_imports"))
setted चाहते समारोह:
संपादित: मैं डाल यह in a gitlab repo
अद्यतन: अब शीघ्र शब्द बिंदु पर से पता चलता है डिफ़ॉल्ट
(require 's) ;; melpa
(require 'dash) ;; melpa
(require 'py-isort) ;; melpa
(defun my-insert-import (to_insert)
(newline)
(if (s-starts-with? "from" (s-trim to_insert)) (insert (s-trim to_insert))
(insert "import " to_insert))
)
(setq py-isort-options '("--force_single_line_imports"))
(defun python-import-add (to_import)
"Adds an import statement for every given module. Can give a comma-separated list of modules, like:
M-x my-python-import-add RET os, sys, from foo import bar, re RET"
(interactive "swhat to import ? ")
(beginning-of-buffer)
(save-excursion
(search-forward-regexp "\\(^from \\)?.*import [a-z]+") ;; if not found ?
(end-of-line)
;; split the arguments by spaces:
(setq to_insert (s-split "," to_import))
;; insert each elt of the list:
(-map 'my-insert-import to_insert)
;; sort the imports: (set your py-isort options. See isort -h)
(py-isort)
)
)
मैं अब क्या करूँगा ई बात-पर-बिंदु (जैसे sys.argv
) और इसे डिफ़ॉल्ट के रूप में सुझाव दें।=> किया
मुझे विश्वास है कि हम Emacs में एक उपयोगी और पूर्ण ऑटो-आयात सुविधा प्राप्त कर सकते हैं।
http://stackoverflow.com/questions/3825073/is-there-a-plugin-for-vim-to-auto-import-python- पुस्तकालय – atomocopter
शायद आपको अपने प्रश्न को वीआई के emacs तक सीमित करना चाहिए लेकिन दोनों नहीं , क्योंकि जवाब बहुत अलग होंगे। –
जहां तक मुझे पता है, emacs के लिए ऐसी कोई बात नहीं है। हालांकि, यदि आप अक्सर समान निर्भरताओं का उपयोग करते हैं, तो आप अपनी महत्वपूर्ण निर्भरताओं वाली "खाली" पायथन फ़ाइल उत्पन्न करने के लिए Emacs टेम्पलेट्स (http://emacs-template.sourceforge.net/) का उपयोग कर सकते हैं। – phimuemue