नोटपैड ++: लाइन / वर्चुअल स्पेस के कर्सर पिछले छोर?


11

TL, DR - मैं टेक्स्ट की एक पंक्ति के अंत में कर्सर को स्थानांतरित करने के लिए वर्चुअल स्पेस कैसे सक्षम कर सकता हूं?

लंबा संस्करण - नोटपैड ++ में, जब (माउस का उपयोग करके) पाठ की एक लंबी लाइन का चयन करने का प्रयास किया जाता है, जो खिड़की के दाहिने किनारे के पिछले हिस्से तक फैली होती है, जिससे यह क्षैतिज रूप से स्क्रॉल होती है, तो मेरा माउस कभी-कभी कर्सर को स्थानांतरित करने के लिए थोड़ा ऊपर या नीचे जाएगा। निकटवर्ती (आमतौर पर बहुत छोटी) रेखा, जिससे कर्सर बाईं ओर वापस स्नैप हो जाता है, जहां आसन्न रेखा समाप्त होती है; जो बदले में खिड़की को क्षैतिज रूप से पीछे की ओर स्क्रॉल करता है, जिससे यह जल्दी से पढ़ना मुश्किल हो जाता है और मेरे चयन को बाहर खींच लेता है।

कुछ (हालांकि बहुत कम) पाठ संपादकों के पास "वर्चुअल स्पेस" के लिए एक विकल्प है, या ईओएल से अतीत को समाहित करने के लिए, मौजूदा पाठ / व्हाट्सएप पर प्रतिबंधित किए बिना माउस / तीर के लिए इसे बहुत आसान बनाना है।

मैं नोटपैड ++ (स्रोत को हैक किए बिना) में यह कैसे कर सकता हूं?


1
लाइन की शुरुआत, SHIFT + END रखें, क्या पूरी लाइन चयनित है? मुझे पता है कि यह वैसा नहीं है जैसा आप चाहते थे, बल्कि यह वही है जो मैं करता हूं।
रोब

1
आप जो पूछते हैं वह नहीं है, लेकिन लाइन रैपिंग के साथ समस्या दूर हो जाएगी।
एरन

@ रब: यह आम तौर पर एक मुद्दा है जब मैं कोड की एक बहुत लंबी लाइन के एक विशिष्ट लंबे समय का चयन करने की कोशिश कर रहा हूं, लेकिन यह लाइन अन्य बहुत छोटी लाइनों के साथ परस्पर क्रिया कर रही है। मैं SHIFT + CTRL + RIGHTARROW का उपयोग एक समय में अपने शुरुआती बिंदु एक शब्द से जल्दी से सही का चयन करने के लिए भी कर सकता था, नोटपैड ++ पीरियड्स, कोष्ठक आदि जैसे शब्द-विराम वर्णों का पता लगाने में बहुत अच्छा है, जब कोई वास्तविक रिक्त स्थान अलग हो रहा हो। (इतने लंबे वस्तु संदर्भ के रूप में) जैसे (जावास्क्रिप्ट) शब्द:someObjectName.subObject.property['index'](parameter)
acatalept

@ ईरन: खुशी है कि आपने यह सुझाव दिया है, मैंने लंबे समय तक एन ++ में वर्ड-रैप का उपयोग नहीं किया है, क्योंकि यह प्रोग्राम को बड़ी फ़ाइलों के साथ अपने घुटनों पर लाता था ... लेकिन यह वास्तव में मेरे 20k के लिए भी बहुत अच्छी तरह से काम करता है लाइन फाइलें, और यहां तक ​​कि लिपटे लाइनों पर
संकेत भी देता है

जवाबों:


14

एक हैक की तरह (स्टार्टअप पर सीधे स्किनटिला संपादन नियंत्रण के लिए एक विंडो संदेश भेजता है), लेकिन महान काम करता है:

  1. NppExec प्लगइन स्थापित करें

  2. प्लगइन्स पर जाएं -> NppExec -> निष्पादित करें

  3. निम्नलिखित कोड दर्ज करें:

    // ensure console stays hidden
    NPP_CONSOLE 0
    
    // enable virtual spaces (cursor past end of line) outside column edit mode
    SCI_SENDMSG 2596 3 0
    
    // SCI_SENDMSG == send message to Scintilla edit control
    // 2596 == the message we're sending is SCI_SETVIRTUALSPACEOPTIONS
    // 3 == send the value (SCVS_RECTANGULARSELECTION | SCVS_USERACCESSIBLE)
    // the default value is 1 (just SCVS_RECTANGULARSELECTION) for
    //   virtual spaces in column select mode only
    // you can find these values by poking around the source code a bit, or
    // see http://www.scintilla.org/ScintillaDoc.html
    
  4. नीचे दिए गए Save बटन पर क्लिक करें , और स्क्रिप्ट को एक नाम दें

  5. अब Plugins -> NppExec -> Advanced Options पर जाएं

  6. दाईं ओर, "इस स्क्रिप्ट को निष्पादित करें जब नोटपैड ++ शुरू होता है" के तहत, उस स्क्रिप्ट का नाम चुनें जिसे आपने अभी बचाया था

  7. ठीक पर क्लिक करें, नोटपैड ++ को बंद करें और आनंद लें;)


2596अन्य scintilla आदेशों के लिए दस्तावेज जैसे संदेश कोड कहां हैं ? केवल Pint Scintilla.h? वर्तमान में tortoisesvn.googlecode.com/svn/trunk/ext/scintilla/include/… ?
n611x007 8

क्या है 0में SCI_SENDMSG 2596 3 0?
n611x007

@naxa: संदेश कोड के लिए सिंटिला प्रलेखन देखें, उदाहरण के लिए scintilla.org/ScintillaDoc.html#SCI_SETVIRTUALSPACEOPTIONS (मेरा मानना ​​है कि इनमें से अधिकांश के लिए तीसरा पैरामीटर अप्रयुक्त है, लेकिन लोप होने के बजाय 0 पर सेट होना चाहिए)
acatalept

"एक तरह का हैक" - एक हैक का मतलब है कि कुछ ऐसा करना जो सॉफ्टवेयर को नहीं करना चाहिए था। यह मेरे लिए एक विशेषता की तरह लग रहा है।
नताली एडम्स

@ नथन: शब्दार्थ मज़ेदार हैं;) मेरा अनिवार्य रूप से मतलब था कि सीधे नियंत्रण में विंडो संदेश भेजने के लिए NppExec प्लगइन का उपयोग करना एक हैक की तरह है, न कि कुछ ऐसा जिसे नोटपैड ++ विशेष रूप से करने के लिए डिज़ाइन किया गया था (एक तरफ सोच-समझकर एक प्लगइन रूपरेखा प्रदान करने के लिए। पहिए)
acatalept

0

कोई व्यवस्थापक अधिकार नहीं होने पर, Dll डाउनलोड करके और Npp के प्लगइन्स ओ / एस निर्देशिका / फ़ोल्डर में स्थापित करके NppExec स्थापित करें। बंद करो / फिर से खोलना।

संपादित करें (+2 वर्ष): मुझे नहीं पता कि यह बदल गया है, लेकिन हम अब (यदि मूल रूप से नहीं) NppExec फ़ोल्डर को npp के प्लग-इन फ़ोल्डर में डाल दें - NppExec उप-फ़ोल्डर में dll के साथ।

सुनिश्चित करें कि संस्करण मेल खाते हैं (अपने आप को याद दिलाएं कि आप 32 बिट या 64 पर हैं), और यदि आपके पास हाल ही में संस्करण (2019) है, तो आपको NppExec के _PA संस्करण की आवश्यकता हो सकती है।

मैं नोटपैड ++ के लिए NppExec प्लगइन स्थापित करने में असमर्थ क्यों हूं?


नोटपैड ++ में कुछ बदल गया है। एक्सक्यूट अब नहीं है। क्या इसमें सुधार हैं?
user215779
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.