2011-07-04 13 views
5

[अपडेट 06/2013: काम C-p और C-n कीस्ट्रोक्स हैं ओमनी पूरा होने (omnicompletion) नहीं, लेकिनकीवर्ड पूरा होने: जैसा कि उपयोगकर्ता DoubleDown मनाया, मैं शब्दावली गलत है। मुझे लगता है कि विम शब्दावली कुछ हद तक दुर्भाग्यपूर्ण है: omniप्रत्येक के लिए लैटिन है, जबकि कीवर्ड अधिक प्रतिबंधित चयन प्रतीत होता है। C-p और C-n डिफ़ॉल्ट रूप से काम करने के लिए गद्य के हर शब्द को पूरा करना है, केवल कीवर्ड ही नहीं। कौन सा बना दिया मुझे लगता है कि वे ओमनी पूरा होने ही नहीं, कीवर्ड पूरा होने होना चाहिए।]पर्ल फ़ाइलों के लिए Vim कीवर्ड (omni नहीं) को पूरा करने के लिए कैसे?

खैर ... :-) ... सिर्फ मेरे सवाल के शीर्षक में टाइपिंग, एक highly effective answer अप में बदल गया समान शीर्षक के साथ प्रश्नों की सूची। (जो यह दिखाने के लिए चला जाता है कि यह वेबसाइट कितनी अच्छी है!) मैं वैसे भी सवाल पूछने जा रहा हूं - शायद किसी को स्टोर में एक और अधिक पूरा जवाब मिल गया है ... तो यहां जाता है:

Vim keyword omni completion (by default bound to C-p and C-n in edit mode) एक गरीब व्यक्ति का इंटेलिजेंस है , कि मेरे अनुभव में लगभग उतना ही अच्छा है। यह स्ट्रिंग मिलान के लिए बफर की खोज करता है।

हालांकि, कुछ फ़ाइल टाइप स्क्रिप्ट कीवर्ड ओमनी पूरा करके शीर्ष पर जाते हैं, जिसमें शामिल फ़ाइलों की एक पुनरावर्ती खोज होती है। (अद्यतन: खोज फ़ाइलें शामिल हैं वास्तव में डिफ़ॉल्ट है, जैसा कि :help 'complete' द्वारा विम 7.3 के रूप में देखा जा सकता है; यह केवल कुछ फाइल प्रकारों के साथ, बहुत सी चीजें शामिल हो जाती हैं, जिसके परिणामस्वरूप धीमी गति से परिणामस्वरूप उप-एल्गोरिदम द्वारा बढ़ाया जाता है।) तो एक पर्ल स्क्रिप्ट के लिए, यह मॉड्यूल की सूची खोजना शुरू कर देगा। रिकर्सिवली। यह जल्दी से कुछ गंभीर स्कैनिंग में खराब हो सकता है, आपको पता है, डिस्क I/O और सभी बदसूरत सामान।

नतीजतन, मैं इस सुविधा का उपयोग करने से बचता हूं, क्योंकि मैं C-c का उपयोग करके खोज को बाधित करने के द्वारा समय और सुविधा खो देता हूं, जो आउटपुट में कुछ यादृच्छिक स्ट्रिंग छोड़ देता है जिसे मुझे हटा देना है ।

:set complete-=i # remedy 
:help 'complete' # documentation 

कोई भी चीज जो में जोड़ने के लिए:

तो सबसे अच्छा समाधान अब तक कह रही द्वारा डिफ़ॉल्ट पूरा होने में शामिल फ़ाइलों के उपयोग को अक्षम करने के लिए है?

+0

सी ++ और बूस्ट के साथ, tmpfs से सब कुछ चलाना भी धीमा है + = i ... मैं हमेशा पूर्ण- = i – sehe

+0

सुनिश्चित करता हूं कि आप जिस चीज के बारे में बात कर रहे हैं वह कीवर्ड पूर्णता है, जो omnicompletion से अलग है ('सीएक्स'' सीओ ')। मैंने अभी तक सर्वव्यापी पूर्णता को पूरी तरह से समझ नहीं लिया है, लेकिन अब तक जो डिफ़ॉल्ट वाक्य सिंटैक्स फाइलों को पार करता है, वह काफी असंतोषजनक साबित कर रहा है जो मुझे कहना चाहिए। – doubleDown

+0

@doubleDown: मैं जो बात कर रहा हूं वह omnicompletion (जो स्वयं ठीक है) शामिल फ़ाइलों की एक पुनरावर्ती खोज को ट्रिगर कर रहा है (जो डिस्क I/O के कारण आपको धीमा कर सकता है, जब बहुत सारी फाइलें खींची जाती हैं, जैसा कि हो सकता है पर्ल या सी ++ फाइलें, दूसरों के बीच)। मेरे प्रश्न और उत्तर के रूप में उस समस्या का समाधान। – Lumi

उत्तर

1

आप एक छोटे से अधिक शल्य होना चाहते हैं, तो आप उपयोग कर सकते हैं:

autocmd FileType perl set complete-=i 

ताकि आप पेर्ल कोड के व्यवहार को प्रभावित कर रहे हों।

2

आपको c9s द्वारा perlomni लेख का उपयोग करना चाहिए।

https://github.com/c9s/perlomni.vim

http://www.vim.org/scripts/script.php?script_id=2852

आप वीडियो कैसे उपयोग करने के लिए देख सकते हैं।

http://www.youtube.com/watch?v=hZ7871WcIv0

आसान तरीका के लिए

, विधि, प्रकार कुछ और पूरा करने के लिए "->", तो।

#!perl 
use strict; 
use warnings; 
use DateTime; 

my $dt = DateTime->new; 

$dt->ye # type <c-x><c-o>, you'll get $dt->year 
+0

धन्यवाद। यह मेरे इंस्टॉलेशन पर काम नहीं करता है: सिगम पर विम 7.3.3, ~ ~/.vim/bin में पाथ, फ़ाइल टाइप पहचान: प्लगइन पर: इंडेंट पर: ON'। विम स्टार्टअप के दौरान कोई त्रुटि नहीं, लेकिन रीडमे के अनुसार सीएक्स कंपनी का प्रयास करने पर, मुझे मिल रहा है: 'ओमनी-एर्गानज़ंग (^ ओ^एन^पी) मस्टर निचट जिफंडेन', जिसे 'ओमनी पूर्णता में अनुवाद करना चाहिए: पैटर्न नहीं मिला' । वैसे भी धन्यवाद, यह कुछ बहुत उपयोगी में विकसित हो सकता है। – Lumi

1

मैं वहाँ वास्तव में क्या मैं पहले से ही मेरे सवाल में कहा गया है की तुलना में इस मुद्दे पर ज्यादा कुछ नहीं लगता है:

:set complete-=i # remedy 
:help 'complete' # documentation 

बस इस अन्यथा अनावश्यक जवाब देने के लिए कुछ विम खबर को जोड़ने के लिए, मैं हाल ही में मसालेदार गया है मेरी विम विन्यास (ज्यादातर विंडोज पर जाँचने का प्रयोग करके) एक अच्छा टाइपफेस और कुछ महान प्लग इन के साथ:

  • Consolas font (or Inconsolata, or Anonymous Pro, or Droid)
  • CtrlP file searcher - (आप इसे सटीक मिलान करने के लिए ट्विक करना चाहते हैं, जो मैंने किया है, बस कोड की कुछ पंक्तियों को टिप्पणी करें जो "फ़ज़ी" से मेल खाते हैं, जो मैं नहीं चाहता हूं।)
  • Powerline, a fancy status bar
  • colorscheme evening मानक "मानक, मैं
  • set relativenumber लगता है कि" है, लेकिन मैं इसके बारे में सिर्फ पता नहीं था :)

GVim on Win7 with all of the above features

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