2016-11-10 13 views
5

मैं एक परियोजना निर्देशिका में सभी मिला (सभी परिणाम लगता है) और मैं निम्नलिखित परिणाम मिला:उदात्त 3: लाइन नंबर के बिना पाठ का चयन करना

/home/yusuf/Downloads/concept/concept/css/style.css: 
    234 position: relative; 
    235 } 
    236: .scrolled .fh5co-nav { 
    237 background: #fff; 
    238 padding: 10px 0; 
    ... 
    241 box-shadow: 0px 5px 7px -7px rgba(0, 0, 0, 0.15); 
    242 } 
    243: .scrolled .fh5co-nav a { 
    244 color: #000; 
    245 } 

मैं लाइन नंबर के बिना पाठ कैसे चुनें? क्या खोज परिणामों में लाइन नंबर छिपाने का कोई तरीका है? मैं कोड का चयन करना चाहता हूं और इसे कहीं और पेस्ट करना चाहता हूं।

उत्तर

3

कोई (दस्तावेज) विकल्प फाइलों में खोजने में लाइन नंबर छिपाने के लिए नहीं है परिणाम है। लाइन नंबरों की प्रतिलिपि बनाने के लिए आपको या तो सभी लाइनों की प्रतिलिपि बनाने और संख्याओं को छोड़ने के लिए सावधानीपूर्वक एकाधिक चयन का उपयोग करने की आवश्यकता होगी, या अपने उत्तर में वर्णित डैनिल के रूप में ढूंढने और प्रतिस्थापित करने के लिए उपयोग करना होगा।

हालांकि प्लगइन कोड के साथ आप अपने लिए भारी उठाने के बाद दोनों दुनिया के सर्वश्रेष्ठ प्राप्त कर सकते हैं।

उदाहरण के लिए, मेनू से Tools > Developer > New Plugin... चुनें और बफर की सामग्री को निम्न पायथन कोड से प्रतिस्थापित करें, फिर इसे उदाहरण के रूप में सहेजें find_results_copy.py। यह आपके User पैकेज में होना चाहिए (नाम कोई फर्क नहीं पड़ता, केवल एक्सटेंशन करता है), लेकिन अगर आप स्टब प्लगइन बनाने के लिए मेनू प्रविष्टि का उपयोग करते हैं तो सब्लिमेम को स्वचालित रूप से इसका ख्याल रखना चाहिए।

[संपादित करें] प्लगइन कोड एक एकल रेगेक्स ऑपरेशन का उपयोग करने के लिए संशोधित किया गया है, जो (देर रात मस्तिष्क के फार्ट के कारण) मूल रूप से इसके बजाय दो संचालन के माध्यम से लागू किया गया था। [/ संपादित करें]

import sublime 
import sublime_plugin 
import re 

class FindResultsCopyCommand(sublime_plugin.ApplicationCommand): 
    def run(self): 
     sublime.active_window().run_command ("copy") 
     sublime.set_clipboard (re.sub (r"^\s*[0-9]+.", "", 
      sublime.get_clipboard(), flags=re.MULTILINE)) 

यह एक नया find_results_copy कि पहली डिफ़ॉल्ट copy आदेश चलाता है, और फिर एक नियमित अभिव्यक्ति प्रतिस्थापन के साथ क्लिपबोर्ड की सामग्री को संशोधित लाइन नंबर फेंक नामित आदेश लागू करता है।

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

यह उदाहरण विंडोज/लिनक्स के लिए कीबोर्ड कमांड का उपयोग करता है; यदि आप मैक पर हैं तो उस प्लेटफॉर्म के लिए मानक कुंजी पर मैप करने के बजाय super+c का उपयोग करें।

{"keys": ["ctrl+c"], "command": "find_results_copy", "context": 
    [ 
     { "key": "selector", 
      "operator": "equal", 
      "operand": "text.find-in-files", 
      "match_all": true 
     }, 
    ] 
}, 

इस के बाद से डिफ़ॉल्ट प्रतिलिपि आदेश का उपयोग करता है, अगर आप copy_with_empty_selection चालू किया हुआ है, तो यह आपके लिए कुछ भी चयन करने के लिए, यदि आप उस तरह से काम करने के लिए इस्तेमाल कर रहे हैं बिना एक लाइन नंबर के बिना वर्तमान पंक्ति कॉपी कर देंगे।

अगर वांछित, आप भी इस आदेश को नकल कर सकते हैं (आप एक ही फाइल में यह स्टोर कर सकते हैं) और यह भी पाठ में कटौती करने की क्षमता हासिल करने के लिए (बाध्यकारी एक उपयुक्त कुंजी के साथ) FindResultsCutCommand को वर्ग और आदेश cut को मार डाला नाम बदलने और यदि आपको उस तरह की चीज की ज़रूरत है तो लाइन नंबरों को हटा दें।

5

सरल समाधान खोलने के लिए "& बदलें खोजें" है (एफ ओएस एक्स पर, Ctrlएच विंडोज़/लिनक्स पर) और निम्न विकल्पों में प्रवेश (रेगुलर एक्सप्रेशन से मोड, लगता है ^\s+[0-9]+ , खाली की जगह)

Sublime Text screenshot

+0

@ सिडबिफी ने किया;) –

2

खोज परिणामों में से मूल फ़ाइल को खोलने के लिए परिणामी फ़ाइल पथ या किसी भी txt स्ट्रिंग को डबल क्लिक करें।

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