vim

2013-03-08 8 views
7

के साथ autopep8 क्या autopep8 स्वचालित रूप से vim में संपादित फ़ाइल में लागू करने का कोई तरीका है? मेरे पास निम्नलिखित vimrc है।vim

अग्रिम धन्यवाद।

+0

मुझे आपका प्रश्न नहीं समझ रहा है। आप autopep8 स्थापित करना चाहते हैं? एक vimrc फ़ाइल में पायथन नियम लागू करें? – djs

+0

मैं इसे "easy_install -ZU autopep8 pep8" के साथ स्थापित करूंगा। हालांकि, अगर मैं प्रेस कर सकता हूं तो मैं पसंद करूंगा: wim में w और autopep8 सभी समस्याओं को ठीक करेगा या शायद इस समस्या के लिए QuickFix विंडो में कोई समस्या चुनना और ऑटोऑप 8 को आग लगाना संभव होगा। – user977828

उत्तर

3

आप autopep8 के माध्यम से वर्तमान फ़ाइल को चलाने के इस तरह कुछ करने के लिए सक्षम होना चाहिए:

:!autopep8 -i expand("%") 

आप हर अजगर फ़ाइल के लिए लिखने पर स्वचालित रूप से ऐसा करना चाहते हैं, तो आप अपने vimrc को यह जोड़ सकते हैं:

if has("autocmd") 
    autocmd BufWritePost *.py !autopep8 -i expand("%") 
endif 
+0

"test.py" 12 एल, 106 सी लिखा; :! autopep8 -i विस्तृत करें ("test.py") और मुझे E855 Autocommands से कम करने के लिए आदेश दिया गया है। क्यूं कर? – user977828

7

ऑटोपैप 8 python-mode में शामिल किया गया है।

कॉल: PymodeLintAuto या मैप:

" Automatically fix PEP8 errors in the current buffer: 
noremap <F8> :PymodeLintAuto<CR> 
+0

क्या मैं इसे 'gqq' के साथ चलाने के लिए भी मैप कर सकता हूं? मैंने 'autopep8' जैसे बाहरी कमांड के साथ 'formatprg' देखा लेकिन यह सुनिश्चित नहीं किया कि यह' PymodeLintAuto' –

14

autopep8 का उपयोग करने का सही तरीका सेटिंग्स "formatprg" vim पर भरोसा करने की है। अब जब आप अजगर में लाइनों का चयन और (जब तक आप इसे पुनः मानचित्रित डिफ़ॉल्ट मैपिंग) gq मारा

au FileType python setlocal formatprg=autopep8\ - 

: तो आप रेखा से नीचे vimrc में जोड़ें। यह autopep8 के माध्यम से लाइनों को फ़िल्टर करेगा और जगह पर अच्छी तरह से स्वरूपित संस्करण लिखता है।

उपर्युक्त सेटिंग इसे विम ऑब्जेक्ट्स और विम मोशन के साथ भी काम करती है, ताकि आप gqap का उपयोग कर पैराग्राफ (पाइथन कोड की अच्छी लाइनों के बीच कोई खाली रेखा न हो) को फिर से प्रस्तुत कर सकें। '-'

पूरी फ़ाइल तुम कर सकते हो gggqG

हाइफन ऐसा करने के लिए। आदेश के अंत में autopep8 में मानक से लाइनों को पढ़ने बनाने के लिए आवश्यक है

+2

+1 के साथ कैसे काम करेगा: मैं इसे विम तरीके के रूप में मानता हूं। इस पर ध्यान दिलाने के लिए धन्यवाद। मैं लिखने पर फ़ाइलों को स्वचालित रूप से autope8 लागू करने के पक्ष में नहीं हूं। यदि आप ज़ेड ज़ेड दबाते हैं, तो आप नहीं देखते कि क्या हो रहा है। आप एक गिट-प्री-प्रतिबद्ध हुक जोड़ सकते हैं जो आपके स्रोतफाइल पर पेप 8 चलाता है और शैली उल्लंघन का पता चला है तो प्रतिबद्धता को रोक दें। [यहां अविश्वास के उपयोग के लिए देखें] (https://github.com/githubbrowser/Pre-commit-hooks) – Hotschke

+0

इस समाधान के साथ समस्या यह है कि आप मानक स्वरूपप्रग का उपयोग नहीं कर सकते हैं जैसे कि स्वचालित रूप से लंबी टिप्पणी स्ट्रिंग को विभाजित करना लाइनों। क्या इस कार्यक्षमता तक पहुंचने का कोई तरीका है? –

+1

मुझे वास्तव में अभी पता चला है कि मैं अभी भी gw कमांड का उपयोग करके बिल्टिन का उपयोग कर सकता हूं –

3

प्लगइन नहीं था प्रश्न तब तक मौजूद है जब प्रश्न सबमिट किया गया है, लेकिन अब vim-autopep8 है।

https://github.com/tell-k/vim-autopep8

संबंधित मुद्दे