मैं फजी कोड पूरा कैसे कर सकता हूं


27

Visual Studio प्रतीकों में ReSharper का उपयोग करते समय उपसर्ग मिलान के बजाय फजी मिलान का उपयोग करके ऑटो-पूरा किया जा सकता है। उदाहरण के लिए यदि मैं एक फ़ंक्शन की तलाश कर रहा हूं जिसका नाम DoSomethingAmazingमैं लिख सकता हूं DoSoAmऔर यह सभी प्रतीकों से मेल खाने के लिए मेरी क्वेरी का विस्तार करने की कोशिश करेगा Do, Soऔर Amकहीं न कहीं उनके नाम में भी।

एक अन्य उदाहरण नीचे gif में पाया जा सकता है। आप कई विस्तार देख सकते हैं जहां गैर-उपसर्गों का तार सही प्रतीक तक विस्तारित है। (स्निपेट विस्तार पर ध्यान न दें क्योंकि इस प्रश्न में मैं केवल फजी मिलान से संबंधित हूं)।कार्रवाई में फजी मिलान के कई उदाहरण दिखाते हुए एक जिफ

एक अन्य उदाहरण विम के लिए YouCompleteMe प्लगइन में देखा जा सकता है: व्यंग्य में कार्रवाई में फजी मिलान के अधिक उदाहरण दिखाने वाला एक जिफ

स्वत: पूर्ण और कंपनी मोड दोनों में उपसर्ग मिलान लगता है, लेकिन मुझे फजी मिलान सक्षम करने का कोई तरीका नहीं मिल रहा है।

आदर्श रूप से समाधान भाषा अज्ञेय होगा और मैं जो भी प्रतीक पैकेज का उपयोग कर रहा हूं उस पर लागू होगा लेकिन मैं भाषा-विशिष्ट समाधानों में भी दिलचस्पी रखता हूं। मैंने हेल्म को देखा है, लेकिन इसे कोड पूरा करने के लिए लागू करने का कोई तरीका नहीं मिला है।

मैंने ऐसे विकल्पों पर विचार किया है जैसे कि हेल्म बफर का उपयोग करके सिंबल पूरा करने के लिए कीबाइंडिंग करना, लेकिन मैं उम्मीद कर रहा हूं कि पॉपअप-स्टाइल पूर्णता का उपयोग करके ऐसा करने का एक तरीका है।

मैं प्रति भाषा के आधार पर मैन्युअल कॉन्फ़िगरेशन करने के लिए भी तैयार हूं क्योंकि कुछ भाषाएं डैश के साथ अलग-अलग प्रतीकों को दिखाती हैं जबकि अन्य अंडरस्कोर या डैश का उपयोग करते हैं जो मुझे लगता है कि मिलान को कैसे प्रभावित करेगा।


जवाबों:


19

Emacs की पूर्णता पूर्ण कार्यक्षमता समान फजी मिलान (डिफ़ॉल्ट रूप से इसका उपयोग "Do-so-am" के बजाय "DoSoAm" के लिए किया जाता है) और IIUC कंपनी-मोड के हाल के संस्करणों में कम से कम कुछ मामलों में इसका उपयोग करते हैं।

उदाहरण के लिए, यदि आप Emacs-24.4 और नवीनतम कंपनी-मोड का उपयोग करके एक Elisp बफर खोलते हैं, यदि आप टाइप करते हैं तो (wi-syकंपनी एक पूरा मेनू दिखाएगा window-system, window-system-for-displayऔर with-syntax-table


2
Emacs 24.4 company-modeसमर्थन के साथ completion-styles, यह पोस्ट इसे आज़माने के लिए एक संभावित सेटिंग का सुझाव देता है।
मोमसा

24.4 स्थापित करने के बाद मैंने पाया कि यह वही है जो मैं देख रहा था। दुर्भाग्य से यह भाषा विशिष्ट लगती है और इसे अन्य भाषाओं के लिए काम करने के लिए कंपनी के बैकेंड में बदलाव की आवश्यकता होगी। हालाँकि उत्तर में से यह मेरे निकटतम है और उम्मीद है कि अधिक समय के साथ यह अधिक भाषाओं पर लागू होगा। धन्यवाद!
जेक वुड्स

company-ycmdएक और बैकएंड है जो फजी पूरा होने का समर्थन करता है।
दिमित्री

9

इसके साथ company-mode, आप C-sउपलब्ध उम्मीदवारों से खोज करने के लिए उपयोग कर सकते हैं जो इसे प्रदर्शित करते हैं। मॉडल में खोज क्वेरी प्रदर्शित की जाती है (वास्तव में यह आसान नहीं है, मुझे पता है। मैंने यहां एक मुद्दा दायर किया है )।

यदि आप पूर्णता के लिए Helm का उपयोग करना चाहते हैं, तो helm-company या ac-helm का उपयोग करने पर विचार करें । के साथ की कोशिश नहीं की है ac-helm, लेकिन के साथ helm-company, आप सीधे इसे एक कुंजी को बाँध सकते हैं, के मानक इंटरफ़ेस को बदलने के लिए company-complete


यह वह चीज थी जो मैं ढूंढ रहा था। मैं एक कीप को लागू किए बिना पूरा होने की उम्मीद कर रहा था, लेकिन मैंने पाया है कि उपसर्ग मिलान के साथ संयोजन में इसका उपयोग करना एक उपयुक्त विकल्प प्रस्तुत करता है। धन्यवाद!
जेक वुड्स

यदि आप company-modeUI का उपयोग करते हैं , तो आप अपने C-sलिए companyप्रस्तुत उम्मीदवारों की सूची से एक उम्मीदवार की खोज करने के लिए दबा सकते हैं।
Tu Do

हां, मैं समझता हूं कि और जैसा कि मैंने उपरोक्त टिप्पणी में कहा था कि मैं जो देख रहा था, उसके करीब हूं। आदर्श समाधान (मेरे लिए) को Cs की आवश्यकता नहीं होगी और मैं पॉपअप विंडो में उम्मीदवारों के लिए खोज करूंगा जैसे ही मैं टाइप करता हूं। लेकिन Cs दृष्टिकोण निश्चित रूप से दिलचस्प है और मैं इसे अपने वर्कफ़्लो में एकीकृत करने का इरादा रखता हूं।
जेक वुड्स

कंपनी का उपयोग करते समय, मुझे लगता है C-M-sकि इससे बेहतर तरीका है C-s। मेटा के साथ, यह केवल खोज के बजाय उम्मीदवारों को फ़िल्टर करेगा।
नानी

@ ज्ञानी को यह जानकर बहुत अच्छा लगा।
Tu Do

5

जैसा कि पहले एक टिप्पणी में उल्लेख किया गया था, ycmdफजी मिलान का समर्थन करता है। आप इसके माध्यम से उपयोग कर सकते हैं company-ycmd। ठीक से कॉन्फ़िगर किया गया, आप भाषा-विशिष्ट पूर्णता के साथ-साथ सरल पहचानकर्ता-आधारित पूर्ण अनुभव प्राप्त कर सकते हैं।


यहां "ठीक से" का मतलब दिखाना अच्छा होगा।
जेसन हू

2

ऐसे कई पैकेज हैं जो एक तरह या किसी अन्य के पूर्ण होने की पेशकश करते हैं। मैं कल्पना करता हूं कि हेल्म करता है, उदाहरण के लिए (चूंकि आप इसका उल्लेख करते हैं)।

यदि आप लाइब्रेरी आइकनों का उपयोग करते हैं, तो आप कई फ़ज़ी-पूरा करने के तरीकों में से (मक्खी पर) चुन सकते हैं - जितना मैंने कहीं और देखा है, उससे अधिक विकल्प। (मैं विशेष रूप से फजी पूरा होने का प्रशंसक नहीं हूं, खुद, लेकिन मैं इसे प्रस्तुत करता हूं।)

आइकन्स पूरा होना (इसलिए फजी पूरा होने पर, यदि आप चुनते हैं कि) हर जगह बहुत अधिक लागू होता है, लेकिन आइकल्स -स्पेशल कोड -कंप्लीशन सुविधाओं की एक पूरी बहुत कुछ नहीं है। इस तरह के बफर-पाठ पूरा होने के बारे में आइकल्स डॉक्टर का यह पृष्ठ बोलता है।


इकास के साथ , Emacs लिस्प मोड में पूरा करने के स्टीफन के उदाहरण का उपयोग कर (wi-sy:

  1. साथ Icicles vanillaपूरा होने (क्या Emacs, प्रदान करता है का सम्मान completion-styles), आप एक ही प्रतीकों मिलता है कि स्टीफन का उल्लेख है।

  2. साथ Icicles स्वांक फजी प्रतीक पूरा होने (पुस्तकालय से el-swank-fuzzy.el) मौजूदा टैब पूरा होने के तरीके के रूप में, आप इन पूरा करने वाले सुझाव मिलता है:

    खिड़की-प्रणाली                
    साथ-वाक्य रचना की मेज
    खिड़की प्रणाली के लिए प्रदर्शन
    विजेट-कोडिंग प्रणाली कार्रवाई
    विजेट-प्रतीक-शीघ्र-आंतरिक
    विजेट-कोडिंग प्रणाली-शीघ्र-मूल्य
    साथ-swfy-struct
    विजेट-निर्दिष्ट-डॉक
    साथ-swfy-टाइम आउट
    विजेट-निर्दिष्ट मैदान
    विजेट-निर्दिष्ट सक्रिय
    विजेट-निर्दिष्ट बटन
    विजेट-निर्दिष्ट डालें
    विजेट-निर्दिष्ट नमूना
    विजेट-निर्दिष्ट गुप्त
    विजेट-निर्दिष्ट-निष्क्रिय
    खिड़की-सुरक्षित रूप से संकुचित करने योग्य-p
    विजेट-प्रकार कॉपी
    खिड़की-आकार से लागू
    खिड़की - आकार-रूट विंडो-खड़ी
    खिड़की-प्रदर्शन-टेबल
    खिड़की - प्रदर्शन-बफर
    खिड़की - आकार बदलने से लागू-p
    खिड़की-आकार से लागू-कुल
    widgetp-प्रदर्शन-प्राप्तियां
    खिड़की-पुन: प्रदर्शित अंत-ट्रिगर
    साथ-दिखाया गया-बफर खिड़की
    विजेट दृश्यता-मान-बनाने
    विजेट-Emacs-पुस्तकालय लिंक कार्रवाई
    विजेट संपादन योग्य-सूची प्रविष्टि बनाने
    विजेट-Emacs-कमेंटरी-लिंक-एक्शन

पहले 3 उम्मीदवार फिर से हैं, जो कि स्टीफन का उल्लेख करते हैं।

  1. सादे फजी-मैच पूरा होने (पुस्तकालय fuzzy-match.el) के साथ, एकमात्र उम्मीदवार है with-syntax-table

  2. साथ Icicles बिखराव फजी पूरा होने , आप उम्मीदवारों की सब मिल कि स्वांक फजी पूरा होने के प्रस्तावों के अलावा निम्नलिखित:

    Ange-एफ़टीपी-प्रतीक्षा-नहीं-व्यस्त
    dired-में-निर्देशिका-साथ-सिमलिंक
    ediff-चुनें खिड़की-सेटअप-समारोह-स्वचालित रूप से
    ediff-मेक-चौड़े प्रदर्शन
    ediff-टॉगल-चौड़े प्रदर्शन
    ediff खिड़की-प्रदर्शन-p
    ediff खिड़की-ठीक के लिए प्रदर्शन
    ediff-साथ-वाक्य रचना की मेज
    लगता है-new-बफ़र-फ़ाइल-कोडिंग-प्रणाली
    gnus फ्रेम या खिड़की-प्रदर्शन-नाम
    मदद खिड़की-प्रदर्शन-संदेश
    हिमलंब चुनें खिड़की के लिए बफर-प्रदर्शन
    वापस लाएं-बफ़र-साथ-कोडिंग प्रणाली
    सेट W32-प्रणाली-कोडिंग प्रणाली
    सेट खिड़की-प्रदर्शन-टेबल
    सेट खिड़की-पुन: प्रदर्शित अंत-ट्रिगर
    खोल-लिखने-इतिहास-ऑन-बाहर निकलें
    विभाजित खिड़की-समझदारी
    पेड़ विजेट - का पता लगाने-सब-निर्देशिका
    W32-खोज-फ़ाइल-नहीं-पाया-सेट बफ़र-फ़ाइल-कोडिंग-प्रणाली
    W32 आरंभ कर खिड़की-प्रणाली
  1. साथ Icicles Levenshtein (1) फजी सबस्ट्रिंग पूरा होने (1 की Levenshtein दूरी), आप केवल इन पूर्ण करने मिलती है:
    मदद-अनुवर्ती प्रतीक
    संदेश की जांच-खबर-वाक्य रचना
    w32-initialize- विंडो-सिस्टम विंडो-सिस्टम
    खिड़की प्रणाली के लिए प्रदर्शन
  1. 1 के बजाय 2 की लेवेन्शेटिन दूरी के साथ, 300 से अधिक पूर्ण उम्मीदवार हैं।

  2. साथ सख्त Levenshtein (1 या 2) पूरा कर रहे हैं कोई उम्मीदवारों। इसी तरह, आइकॉल्स यारो-विंकलर फजी पूरा होने के लिए


1
मैं मानता हूं कि फजी पूरा होने के लिए कुछ संभावित एपीआई ओवरलैप है, लेकिन कोड पूरा होने के लिए आमतौर पर मोड विशिष्ट संकलित या रनटाइम निरीक्षण की आवश्यकता होती है। जैसा कि आप अपने आप से कहते हैं, आइकल्स कोड-पूर्ण सुविधाओं के रूप में बहुत कम प्रदान करता है, इसलिए यह प्रश्न के लिए प्रासंगिक नहीं लगता है।
dgtized

@dgtized: खैर, मैं असहमत हूं। क्या आपने कोशिश की है completion.el? (इसी तरह, dabbrevऔर hippie-expand- सभी 3 GNU Emacs में शामिल हैं।) कोड पूरा होने के साथ ये चीजें काफी मददगार हैं, फिर भी, जैसा कि आप सुझाव देते हैं, उन्हें कोई कोड-विशिष्ट ज्ञान नहीं है। आपको आश्चर्य हो सकता है कि वे कितने उपयोगी हो सकते हैं (फजी मिलान के साथ या बिना)। और इनकी तरह, कोई भी कोड-विशिष्ट पूर्णता जो मिनीबियर का उपयोग करने के लिए पूरा करती है जब कई उम्मीदवार स्वचालित रूप से आइकल्स फजी पूरा होने से लाभ उठाते हैं ।
ड्रू

2

यदि आप उपयोग करते हैं ivy, तो हालिया अपडेट ivyमें ओवरले में बिंदु कार्यक्षमता को पूरा करने का समर्थन करता है। आइवी की मदद से फजी मैचिंग का समर्थन करता है flxइस वीडियो पर चेकआउट करें कि यह कैसे काम करता है :)

आपको बस इतना करना है कि कुंजी बंधन को दबाएं complete-symbolजिसके लिए डिफ़ॉल्ट रूप से बाध्य है C-M-iऔर एक ओवरले पॉप जाएगा और आप पूर्ण उम्मीदवार को प्राप्त करने के लिए फजी मिलान का उपयोग करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.