मैं C / C ++ फ़ंक्शन के दस्तावेज़ दिखाने के लिए विम कैसे प्राप्त कर सकता हूं?


17

अधिकांश संपादकों के पास एक विशेषता होती है जब आप किसी फ़ंक्शन पर कार्यवाहक रखकर कुछ कुंजी दबाते हैं, तो यह उस फ़ंक्शन के दस्तावेज़ को संख्या और प्रकार के तर्कों के साथ कार्य करता है जो कार्य करता है।

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


2
सुनिश्चित नहीं है कि यह वही है जो आप चाहते हैं, लेकिन यदि आप विकल्प को सही मान देते हैं 'keywordprg'(एक प्रोग्राम का नाम जो आप चाहते हैं कि भाषा के लिए दस्तावेज़ीकरण को संभाल सकता है), तो Kएक कीवर्ड पर हिट करके (जो नाम हो सकता है) एक फ़ंक्शन), आपको वह जानकारी मिलनी चाहिए जो आप चाहते हैं। उदाहरण के लिए, यदि आप स्थापित करते हैं cppman( github.com/aitjcize/cppman ) और अपने vimrc के अंदर एक ऑटोकैमड जोड़ें जैसे कि autocmd FileType cpp setlocal keywordprg=cppman, तो cppmanc ++ बफर के अंदर प्रलेखन को संभालना चाहिए। हालांकि परीक्षण नहीं किया गया।
सागिनॉ

2
@ सागिनॉव cppmanएक उत्कृष्ट सुझाव है, यदि आपके पास सी और सी ++ मेनपेज हैं ( manpages-posix-devऔर libstdc++-X.Y-docडेबियन-आधारित सिस्टम पर पैकेज) स्थापित हैं, तो सादे पुराने manकाम करना चाहिए।
मुरु

जवाबों:


8

यदि आप YouCompleteMe सेट कर सकते हैं , तो यह C, C ++, JavaScript, Go और कुछ अन्य भाषाओं का समर्थन करता है। यहाँ यह कार्रवाई में है:

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

यह स्थापित करने के लिए थोड़ा कष्टप्रद है , और एक बार स्थापित होने के बाद आपको इसे C और C ++ के लिए कॉन्फ़िगर करने की आवश्यकता है .ycm_extra_conf.py। मैंने इस रेपो से एक को उठाया , और यह प्रभाव मिला।


4
"टी थोड़ा परेशान करने के लिए स्थापित है," ... यह एक ख़ामोश है। फिर भी, यह बहुत अच्छा है। ^ _ ~
सरदारथियन -

4
क्या फ़ंक्शन पूर्ण होने के दौरान पूर्णता को पॉप-अप को खोलने के लिए बाध्य करने का कोई तरीका है? उदाहरण के लिए, जैसे ही आप पहले तर्क का पहला अक्षर लिखते हैं qsort(a, पॉप-अप विंडो गायब हो जाती है, जिससे अगले तर्कों को याद रखना मुश्किल हो जाता है।
थियागौफ़क्स

1
लेकिन यह सिर्फ फ़ंक्शन के प्रोटोटाइप को दिखाता है। इसे अपने डॉक्सीजन टिप्पणियों (जैसे ग्रहण javadocs के साथ क्या करता है) को दिखाने के लिए कैसे करें? मेरा मतलब है कि पैरामीटर, आउटपुट, नोट्स,
Refs

1
@ Zeta.Investigator मेरे द्वारा पायथन में एक चीज़ का अत्यधिक उपयोग किया जाता है YcmCompleter GoTo, जो आमतौर पर आपको फ़ंक्शन / वर्ग को कोड में परिभाषित करने के लिए भेजती है। यह डॉकस्ट्रिंग के ठीक ऊपर की रेखा है, जो आपके द्वारा मांगी गई हर चीज को सूचीबद्ध करती है। मुझे यकीन नहीं है कि इनलाइन टिप्पणी करना C / Java / C ++ में एक ही स्थान पर है।
user1717828

8

C के लिए, Kकीवर्ड पर दबाने से बिल्ट-इन मैनपेज सीधे खींच जाएगा। उदाहरण के लिए, printfकीवर्ड पर कर्सर रखें :

printf("Hello, %s!", foo);

अब VIM में दिखना चाहिए K(ऊपरी केस K) और मैनपेज के लिए प्रेस करें printf:

NAME
   printf - format and print data

SYNOPSIS
   printf FORMAT [ARGUMENT]...
   printf OPTION

DESCRIPTION
   Print ARGUMENT(s) according to FORMAT, or execute according to OPTION:

   --help display this help and exit

   --version
          output version information and exit

   FORMAT controls the output as in C printf.  Interpreted sequences are:

   \"     double quote
   \\     backslash

   ... It continues for quite a few scrollable pages

यह सभी डेबियन-व्युत्पन्न डिस्ट्रोस में बॉक्स से बाहर काम करने के लिए लगता है कि मैंने इस पर कोशिश की है, कोई विशिष्ट कॉन्फ़िगरेशन की आवश्यकता नहीं है।


1
यह फंक्शन का मेन्यू है printf(1), printf(3)फंक्शन का नहीं । किसी भी स्थिति में, C फ़ंक्शन मैनपेज से होता है manpages-dev, जो आमतौर पर डिफ़ॉल्ट रूप से स्थापित होता है, लेकिन हमेशा नहीं, और POSIX फ़ंक्शन ऐसे हैं manpages-posix-dev- आमतौर पर डिफ़ॉल्ट रूप से इंस्टॉल नहीं किए जाते हैं, न ही C ++ डॉक्यूमेंटेशन ( libstdc++-X.Y-doc) है।
मुरहू २४'१६ को

5

यदि आप उचित दस्तावेज चाहते हैं , तो सागिनेव की टिप्पणी में प्लगइन आपके सी ++ आवश्यकताओं को कवर करता है। मैं एक सामान्य के बारे में नहीं जानता, लेकिन आप शायद vim.org पर अन्य भाषाओं के लिए विकल्प पा सकते हैं।


अगर…

  • आपका कोड पहले से ही ctags के साथ अनुक्रमित है,
  • आपके सूचकांक में मानक पुस्तकालय भी शामिल है,
  • और आप चाहते हैं कि एक संकेत है ,

आप <C-w>}अपने कर्सर के तहत कीवर्ड की परिभाषा को पूर्वावलोकन विंडो में खोलने के लिए उपयोग कर सकते हैं। YMMV, बिल्कुल।

देखें :help preview-window, :help tagsऔर :help ctags


आप वीआईएम की "इन-सर्च" कार्यक्षमता का भी उपयोग कर सकते हैं: [iकमांड लाइन में कर्सर के नीचे शब्द के "हस्ताक्षर" को प्रिंट करने के लिए दबाएं :

[मैं

देखते हैं :help include-search


1
[iअजीब है। यह काम करता है stdlib.hऔर qsort, लेकिन नहीं cstdlibऔर std::qsortया सिर्फ qsort
मुरु

नामकरण के साथ अपरिचित लोगों के लिए जैसा कि मैं हूं / इसका <C-w>मतलब CTRL-Wहै कि :helpफाइलों में प्रयुक्त नामकरण कौन सा है । फिर आप :pcपूर्वावलोकन विंडो को बंद करने के लिए उपयोग कर सकते हैं।
danielson317

1

विम का C / C ++ फ़ाइल प्रकार एक सभ्य omnicompletion फ़ंक्शन के साथ आता है, जो "पूर्वावलोकन" कार्यक्षमता का समर्थन करता है। इसलिए अपने संपूर्ण विकल्प में "पूर्वावलोकन" जोड़ें और मोड पूरा होने पर एक फ़ंक्शन हस्ताक्षर देखें।

सामान्य मोड में, आप मैन्युअल रूप से पूर्वावलोकन विंडो में फ़ंक्शन घोषणा को खोलने के लिए CTRL + W} कर सकते हैं।


1

जैसा कि Kमैन पेज सर्च करके कीवर्ड काम करने का उल्लेख किया गया है। C ++ मैन पेज प्राप्त करने के लिए आप https://github.com/aitjcize/cppman (इसे cplusplus.com और cppreference.com से "मैन पेज" प्राप्त कर सकते हैं) की कोशिश कर सकते हैं ।


0

YouCompleteMe स्थापित करें। जब आप कर्सर को एक पहचानकर्ता के ऊपर रखते YcmCompleter GetDocहैं, तो नीचे की ओर थोड़ा पूर्वावलोकन विंडो में डॉक प्राप्त करने के लिए कमांड दर्ज करें । यह पायथन और c / c ++ जैसी कई भाषाओं में काम करता है।

Youcompleteme अपने स्वत: पूर्ण सुविधा के दौरान पूर्वावलोकन विंडो भी प्रदर्शित करता है। आप g:ycm_autoclose_preview_window_after_completionचर के साथ डॉक्टर पूर्वावलोकन के व्यवहार को अनुकूलित कर सकते हैं ।

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