अजगर ब्लॉक गति का अंत


13

मुझे एक गति की आवश्यकता है जो एक अजगर ब्लॉक के अंत / शुरुआत के लिए चलती है, और मुझे एक और गति की आवश्यकता है जो पिछले / अगली विधि / वर्ग (सभी संयोजनों) के भीख / अंत तक चलती है।

मैंने vim-indent-object, python-mode, chapa, vim-python-object आदि की कोशिश की है, उनमें से कोई भी ब्लॉक के अंत का समर्थन नहीं करता है, और उनमें से कोई भी उपरोक्त गतियों के सभी संयोजनों का समर्थन नहीं करता है।

मुझे याद है एक बार एक समय पर मुझे लगता है कि प्रदान की एक प्लगइन था ]], [[, ][और []शुरुआत पिछली / अगली विधि / वर्ग के / अंत के लिए गति है, लेकिन मैं इसे अपने खामियों को दूर निर्देशिका में नहीं मिल सकता है (खोज "] [" और "[]" मेरी प्लग-इन निर्देशिका में और सभी घटनाओं का विश्लेषण किया, लेकिन ऐसा कुछ भी नहीं पाया जो "] [" या "[]") को परिभाषित करता हो।

क्या आप मेरे द्वारा उपयोग किए जाने वाले प्लगइन को जानते हैं? क्या आप किसी ऐसे प्लगइन को जानते हैं जो यह कार्यक्षमता प्रदान करता है?



3
[[और ]], डिफ़ॉल्ट अजगर ftplugin द्वारा प्रदान की जाती हैं।
रोमेल

1
जानकारी के लिए @romainl धन्यवाद, मुझे पता है के बारे में [[, ]], (, ), {और }[[और ]]कुछ मामलों में उपयोगी होते हैं, लेकिन मेरी मुख्य समस्या मुझे ज़रूरत है []और ][ऐसा कुछ है, जो अगले / पिछले विधि / वर्ग के अंत में कूदता है।
सासन

1
@ मेरी धन्यवाद, ]eमेरी समस्याओं का सबसे हल करता है, हालांकि इस प्लगइन में कुछ मैपिंग की तरह टूट गया है ]vया ]>मैं उन्हें एक कांटा में ठीक करने और इसे प्रकाशित करने की कोशिश करूँगा। हालांकि मुझे अभी भी आश्चर्य है कि प्रदान किया गया प्लगइन क्या था ][और []यह वास्तव में उपयोगी था।
सासन

जवाबों:


11

$VIMRUNTIME/ftplugin/python.vimनिम्न-विशिष्ट गतियों के हालिया अपडेट (नोव 2017) के साथ अब अजगर भाषा के लिए उपलब्ध हैं

  • [[ वर्तमान / पिछले टॉपवेल की शुरुआत करने के लिए पीछे की ओर कूदें
  • [] पिछले टॉपवेल के अंत में पीछे की ओर कूदें
  • ][ वर्तमान toplevel के अंत में आगे की ओर कूदें
  • ]] अगले टॉपवेल की शुरुआत के लिए आगे की ओर कूदें
  • [m वर्तमान / पिछले विधि / दायरे की शुरुआत करने के लिए पीछे की ओर कूदें
  • [M पिछली पद्धति / दायरे के अंत में पीछे की ओर कूदें
  • ]M वर्तमान / अगली विधि / गुंजाइश के अंत के लिए आगे की ओर कूदें
  • ]m अगली विधि / कार्यक्षेत्र शुरू करने के लिए आगे की ओर कूदें

उदाहरण अजगर फ़ाइल

class previous:             # [[[[

    def method_first:
        pass
    # ...

    def method_last:
        pass                # []

class current:              # [[ or [m...[m[m

    def method_first:       # [[]m or [m...[m
        pass                # [[]M or [M...[M
    # ...

    def method_previous:    # [m[m
        pass                # [M

    def method_current:     # [m
        # CURSOR <---------------------------
        pass                # ]M

    def method_next:        # ]m
        pass                # ]M]M
    # ...

    def method_last:        # ][[m or ]m...]m
        pass                # ][   or ]M...]M

class previous:             # ]]   or ]m...]m]m

    def method_first:
        pass
    # ...

def global_func:            # ]]]]
    pass

यदि आपका विम पैच स्तर कम से कम है, तो इस अपडेट को शामिल किया जाना चाहिए 8.0.1256

यदि आप अपडेट नहीं कर सकते, लेकिन इस कार्यक्षमता का उपयोग करना चाहते हैं, तो आप ~/.vimनिर्देशिका में सबसे हाल का संस्करण स्थापित कर सकते हैं :

$ curl https://raw.githubusercontent.com/vim/vim/master/runtime/ftplugin/python.vim --create-dirs -o ~/.vim/ftplugin/python.vim

प्‍लगिन पायथनस

यह प्लगइन समान गति प्रदान करता है लेकिन थोड़ा संशोधित होता है:

स्टॉक विम 8.0 "वर्ग" गतियों (" ]]", " [[", आदि), पहले स्तंभ पर शुरू होने वाले ब्लॉकों को ढूंढें, भले ही ये वर्ग या फ़ंक्शन ब्लॉक हों या नहीं, जबकि इसकी विधि / फ़ंक्शन गति (" [m") " ]m", आदि) किसी भी इंडेंट में सभी ब्लॉक पाते हैं चाहे वे क्लास या फंक्शन ब्लॉक हों या न हों। इसके विपरीत, "पायथनस" श्रेणी की गतियां सभी और केवल वर्ग परिभाषाओं को खोजने पर काम करती हैं, चाहे उनके इंडेंट स्तर की परवाह किए बिना, जबकि इसकी विधि / कार्य की गति सभी इंडेंट और केवल विधि / फ़ंक्शन परिभाषाओं को खोजने पर काम करती है, भले ही उनके इंडेंट स्तर की परवाह किए बिना।

सभी विवरण और उदाहरण https://github.com/jeetsukumaran/vim-pythonsense#stock-vim-vs-pythonsense-motions पर दिए गए हैं ।


मुझे तब तक इंतजार करना चाहिए जब तक कि नवम इस पैच को नहीं लाता।
सासन S ’

1
मुझे लगता है कि समय के लिए आप इसे मैन्युअल रूप से स्थापित कर सकते हैं curl https://raw.githubusercontent.com/vim/vim/master/runtime/ftplugin/python.vim --create-dirs -o ~/.config/nvim/ftplugin/python.vim
होट्सके
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.