vim - फ़ाइल और गोटो लाइन नंबर का उपयोग करके <filename>: <line nbr>:


21

कई उपकरण जैसे कि grep, py.testआदि ... <FileName>:<line number>:त्रुटियों को इंगित करने के लिए पैटर्न का उपयोग करते हैं। उदाहरण के लिए:

; grep -Hn Common setup.cfg
setup.cfg:11:    Common

मैं विम और जीवीएम को कैसे संशोधित कर सकता हूं ताकि मैं उन्हें इस तरह से आमंत्रित कर सकूं:

gvim setup.cfg:11:

के बजाय

gvim setup.cfg +11

मुझे पता है कि मैं एक छोटी सी शेल स्क्रिप्ट लिख सकता हूं जो चीजों को पार्स कर देगा लेकिन मुझे आश्चर्य है कि अगर कोई आसान तरीका है।


2
यह बिल्कुल अनुरूप नहीं है, लेकिन vim में grep से आउटपुट लोड करने की सुविधा है (या उदाहरण के लिए) कंपाइलर त्रुटियों से बनाते हैं, और उनके बीच नेविगेट करते हैं। :help quickfixअधिक जानकारी के लिए देखें ।
रैंडम 832

जवाबों:


16

आप यहां उपलब्ध फ़ाइल: लाइन प्लगइन का उपयोग कर सकते हैं , जो वास्तव में आपको क्या चाहिए ...


1
यह यकीन है कि करता है और अतिरिक्त बोनस के साथ आप उपयोग कर सकते हैं कि vundle इसे स्थापित करने के लिए।
सरदारथियन - मोनिका

1
संदर्भ फ़ाइल-लाइन प्लगइन में कुछ समस्याएं हैं, जिसमें टैब पृष्ठ उपयोग में होने पर टूटना शामिल है। vim-fetch फाइल-लाइन क्या करता है, लेकिन बेहतर है।
लेकेनस्टीन

9

कोई रास्ता नहीं है, और मुझे लगता है कि एक स्क्रिप्ट ही एकमात्र रास्ता है। इसका कारण यह है कि अगर आपके पास setup.cfg: 11 नामक फाइल है और इसे संपादित करना चाहते हैं?

यहाँ एक त्वरित स्क्रिप्ट है जो आपको एक ऑनलाइनर के रूप में क्या चाहिए ...

editline() { vim ${1%%:*} +${1##*:}; }

क्षमा करें यह सटीक नहीं है: यदि आपके पास कोई फ़ाइल थी, तो क्या होगा +11? आप निश्चित रूप से, इसके लिए उपयोग कर सकते हैं --
सरदारथियन -

2
आप v
जूलियन

3

Vundle.vim के साथ , इसे अपने में जोड़ें .vimrc:

Plugin 'bogado/file-line'

@ सरदारथियन: आपके पास कौन से मुद्दे हैं?
डोरियन

मैं neovim में चला गया और बहुत सारे मुद्दे हैं जो अन्य मॉड्यूल (या जो कुछ भी neovim उन्हें कॉल करते हैं) को असंगत के रूप में चिह्नित करते हैं।
सरदारथियन - मोनिका

0

आप ऐसे उपनाम का उपयोग भी कर सकते हैं:

alias gd 'set number=`echo \!:1 | perl -pe "s/([0-9]*:)?(.+)[,:]([0-9]+).*/\3/"`; set file=`echo \!:1 | perl -pe "s/([0-9]*:)?(.+)[,:]([0-9]+).*/\2/"`; eval "if ($number == $file) then \\
   gvim $file \\
else \\
   gvim $file +$number \\
endif"'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.