2014-09-13 6 views
5

मैं emacs का एक बड़ा उपयोगकर्ता हूं और मैं पूरी तरह से इस तथ्य से प्यार करता हूं कि आप माउस का उपयोग किये बिना सब कुछ कर सकते हैं। मुझे लगता है कि सुविधा emacs वास्तव में कुशल बनाते हैं।उत्कृष्ट पाठ एकाधिक कर्सर शॉर्टकट

मैं लिनक्स पर सब्लिमे टेक्स्ट का भी बड़ा प्रशंसक हूं। मुझे एकाधिक कर्सर सुविधा पसंद है जिसे आप Ctrl+left_mouse_clik के साथ सक्षम करते हैं। मैंने यह भी पाया कि आप Shift+alt+arrow_up_or_down पर क्लिक कर सकते हैं जो उपरोक्त या नीचे पंक्ति पर एक नया कर्सर बनाते हैं। इसलिए मैं सोच रहा था कि माउस का उपयोग किए बिना आप जहां भी चाहें एकाधिक कर्सर बनाने के लिए शानदार पाठ में कोई तरीका था।

उत्तर

5

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

एक दूसरा समाधान प्लगइन का उपयोग करना है। मैंने कुछ समय पहले लिखा था। वास्तव में यह नहीं कह सकता कि यह कितना अच्छा काम करता है, क्योंकि मुझे याद नहीं है। इसके साथ एक त्वरित परीक्षण मुझे विश्वास दिलाता है कि यह ठीक काम करता है।

import sublime 
import sublime_plugin 


class MultiCursorCommand(sublime_plugin.TextCommand): 
    def run(self, edit, action="add"): 
     self.key = "multi_cursor" 
     cursors = self.view.sel() 
     saved_cursors = self.view.get_regions(self.key) 
     if action == "add": 
      self.view.add_regions(self.key, list(cursors) + saved_cursors, "keyword", "", sublime.DRAW_EMPTY) 
     elif action == "show": 
      cursors.add_all(saved_cursors) 
      self.view.add_regions(self.key, []) 
     elif action == "show_begin": 
      saved_cursors += list(cursors) 
      cursors.clear() 
      cursors.add_all([c.begin() for c in saved_cursors]) 
      self.view.add_regions(self.key, []) 
     elif action == "show_end": 
      saved_cursors += list(cursors) 
      cursors.clear() 
      cursors.add_all([c.end() for c in saved_cursors]) 
      self.view.add_regions(self.key, []) 
     elif action == "show_visible": 
      pass 
     elif action == "clear": 
      self.view.add_regions(self.key, []) 
     elif action == "remove": 
      for cursor in cursors: 
       if cursor in saved_cursors: 
        saved_cursors.remove(cursor) 
      self.view.add_regions(self.key, saved_cursors, "keyword", "", sublime.DRAW_EMPTY) 


class RemoveCursorCommand(sublime_plugin.TextCommand): 
    def is_enabled(self): 
     return len(self.view.sel()) > 1 

    def run(self, edit, forward=True): 
     self.view.sel().subtract(self.view.sel()[0 if forward else -1]) 

कुंजी बाइंडिंग संभवतः वाले प्लग इन लोगों ने लिखा है कि पैकेज नियंत्रण पर हैं कि एक ही बात कर रहे हैं की तरह

{ "keys": ["alt+a"], "command": "multi_cursor", "args": {"action": "add"} }, 
{ "keys": ["alt+s"], "command": "multi_cursor", "args": {"action": "show"} } 

कुछ ऐसी दिखाई देगी, मैं सिर्फ उन्हें के बारे में पता नहीं कर रहा हूँ।

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