2012-10-20 13 views
5

की शुरुआत से एक विशिष्ट ऑफ़सेट पर लाइन के साथ (या बिना) वर्णों की खोज करें, मैं उन सभी लाइनों को ढूंढना चाहता हूं जहां कॉलम 78 (रेखा पर 78 वां चरित्र) एक स्थान नहीं है।विम - लाइन

आदर्श रूप से, मैं इसे सामान्य खोज की तरह उपयोग करना चाहता हूं।

+0

78 वें स्तंभ एक पंक्ति में 78 वें चरित्र के समान नहीं है। Vim में, कॉलम स्टार्टर्स के लिए, आपकी टैब चौड़ाई का एक फ़ंक्शन है। –

उत्तर

2

मैं यह पता लगा, एक उदाहरण के मामले में किसी को भविष्य में इस की कोशिश करता है के रूप में छोड़ रहा है:

मैं कॉलम "n" मैच के लिए चाहते हैं, मैं तो बस स्तंभ के कुछ भी मैच के लिए "n-1" और की जरूरत है फिर कॉलम एन के लिए मेरे मानदंड करें। निम्नलिखित अभिव्यक्ति उन सभी पंक्तियों को पाती है जिनमें कॉलम 35 स्पेस के बराबर नहीं है।

^.\{34}[^ ] 
+0

विम के साथ regexes के लिए खोज की तरह है ... शांत। – jahroy

9

आप इस पैटर्न का उपयोग कर सकते हैं:

\%78c\S 
  • \%78c मैचों column78 में स्थिति (वास्तव में, स्तंभ इस प्रकार बाइट संख्या यह बहु बाइट वर्णों के लिए बिल्कुल सही नहीं है)। वर्चुअल कॉलम से मेल खाने के लिए \%78v का उपयोग करें।
  • \S गैर अंतरिक्ष से मेल खाता है
+0

कुछ उत्पन्न पैटर्न (जहां '{number} 'उत्पन्न होता है) को छोड़कर कभी भी' \% {संख्या} सी' में आवश्यकता नहीं देखी गई। यहां कॉलम का अर्थ है "न्यूलाइन से बाइट ऑफसेट" और जब तक आपका टेक्स्ट ASCII या कुछ 8-बिट एन्कोडिंग में आपको बाइट ऑफसेट की परवाह नहीं है। – ZyX

+0

यह एकमात्र प्लगइन है जो मैं '\% {संख्या} सी' का उपयोग कर रहा हूं वह वह है जो कलर टेबल उत्पन्न कर रहा है, जहां मुझे पता है कि बाइट ऑफ़सेट, वर्चुअल कॉलम और कैरेक्टर गिनती के समान मूल्य (सभी वर्ण - रिक्त स्थान) हैं। – ZyX

+0

उदाहरण के लिए, मैं इन्हें कैसे जोड़ूं, कॉलम 78 एक गैर-स्थान है, और कॉलम 80 अक्षर 'ए' है। यह काम नहीं प्रतीत होता है: \% 78c \ S \% 80ca –

3

मैं तुम्हें नहीं की जरूरत है @kev या आप क्या सुझाव है कि लगता है: जब आप सही ढंग से 78'th चरित्र (चरित्र + एक के लिए गिनती विशेषक के साथ) खोजने के लिए और @kev सही ढंग से पाता है 78't बाइट ऐसा लगता है कि आप "78 कॉलम सीमा से परे पाठ" जैसे कुछ हल कर रहे हैं। यदि आपके काम के बारे में मेरी धारणा सच है तो आप

\%78v\S 

(\%{number}v मैचों आभासी (स्क्रीन) स्तंभ) का उपयोग करना चाहिए। यदि नहीं, तो आपके उत्तर का उपयोग करने के लिए बेहतर, मैंने कुछ उत्पन्न पैटर्न में छोड़कर \%{number}c का उपयोग करने की आवश्यकता कभी नहीं देखी।