Notepad ++: เคอร์เซอร์ปลายสุดของบรรทัด / ช่องว่างเสมือน?


11

TL; DR - ฉันจะเปิดใช้งานช่องว่างเสมือนเพื่อเลื่อนเคอร์เซอร์ผ่านจุดสิ้นสุดของบรรทัดข้อความได้อย่างไร

Long version - ใน Notepad ++ เมื่อพยายามเลือก (ใช้เมาส์) ข้อความยาว ๆ ที่ขยายผ่านขอบด้านขวาของหน้าต่างทำให้เลื่อนไปตามแนวนอนในบางครั้งเมาส์ของฉันจะขึ้นหรือลงเล็กน้อยพอที่จะเลื่อนเคอร์เซอร์ ไปยังบรรทัดที่อยู่ติดกัน (มักสั้นกว่ามาก) ทำให้เคอร์เซอร์เลื่อนกลับไปทางซ้ายโดยที่บรรทัดที่อยู่ติดกันนั้นสิ้นสุด ซึ่งจะเลื่อนหน้าต่างในแนวนอนกลับไปทางซ้ายทำให้ยากต่อการปรับใหม่อย่างรวดเร็วและลากการเลือกของฉันออกไป

เครื่องมือแก้ไขข้อความ (แม้จะมีเพียงเล็กน้อยเท่านั้น) มีตัวเลือกสำหรับ "ช่องว่างเสมือน" หรือการแช่งผ่าน EOL เพื่อให้สามารถวางเมาส์ / ลูกศรได้ง่ายขึ้นโดยไม่ถูก จำกัด อยู่กับช่องว่างข้อความ / ช่องว่างที่มีอยู่

ฉันจะทำให้สิ่งนี้เกิดขึ้นได้ใน Notepad ++ (โดยไม่แฮ็กแหล่งข้อมูลด้วยตนเอง)


1
เริ่มต้นบรรทัดค้าง SHIFT + END มีการเลือกทั้งบรรทัดหรือไม่ ฉันรู้ว่ามันไม่เหมือนกับสิ่งที่คุณต้องการ แต่เป็นสิ่งที่ฉันทำ
Rob

1
ไม่ใช่สิ่งที่คุณถาม แต่ปัญหาจะหายไปเมื่อมีการพันบรรทัด
Eroen

@Rob: นี่เป็นปัญหาโดยทั่วไปเมื่อฉันพยายามที่จะเลือกรหัสยาว ๆ ของโค้ดที่ยาวมาก ๆ แต่บรรทัดนั้นจะถูกรวมเข้ากับบรรทัดที่สั้นกว่ามาก ฉันยังสามารถใช้ SHIFT + CTRL + RIGHTARROW เพื่อเลือกอย่างรวดเร็วจากจุดเริ่มต้นของฉันทีละคำ Notepad ++ ค่อนข้างดีในการตรวจจับตัวอักษรตัวแบ่งคำเช่นระยะเวลาวงเล็บ ฯลฯ เมื่อไม่มีการเว้นวรรคจริงคั่น คำ (เช่นในการอ้างอิงวัตถุที่มีความยาว) เช่น (javascript):someObjectName.subObject.property['index'](parameter)
acatalept

@Eroen: ดีใจที่คุณแนะนำสิ่งนี้ฉันไม่ได้ใช้ word-wrap ใน N ++ เป็นเวลานานเนื่องจากมันใช้เพื่อนำโปรแกรมมาที่หัวเข่าของมันด้วยไฟล์ขนาดใหญ่ ... แต่มันใช้งานได้ดีจริง ๆ แม้กระทั่ง 20k ที่ใหญ่กว่า ไฟล์บรรทัดและจัดเรียงเยื้องในบรรทัดที่ตัดคำ)
acatalept

คำตอบ:


14

เรียงแฮ็ค (ส่งข้อความหน้าต่างโดยตรงไปยังตัวควบคุมการแก้ไข Scintilla เมื่อเริ่มต้น) แต่ใช้งานได้ดี:

  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. คลิกปุ่มบันทึกที่ด้านล่างและตั้งชื่อสคริปต์

  5. ตอนนี้ไปที่ปลั๊กอิน -> NppExec -> ตัวเลือกขั้นสูง

  6. ทางด้านขวาใต้ "เรียกใช้สคริปต์นี้เมื่อเริ่มโปรแกรม Notepad ++" ให้เลือกชื่อสคริปต์ที่คุณเพิ่งบันทึก

  7. คลิกตกลงปิด / เปิดแผ่นจดบันทึก ++ อีกครั้งและเพลิดเพลินกับ;)


รหัสข้อความเช่น2596เอกสารสำหรับคำสั่ง scintilla อื่น ๆ อยู่ที่ไหน จิ้ม Scintilla.h เท่านั้น? ขณะนี้ที่tortoisesvn.googlecode.com/svn/trunk/ext/scintilla/include/ …?
n611x007

มีอะไร0ในSCI_SENDMSG 2596 3 0?
n611x007

@naxa: ดูเอกสารประกายรหัสข้อความเช่นscintilla.org/ScintillaDoc.html#SCI_SETVIRTUALSPACEOPTIONS (ผมเชื่อว่าพารามิเตอร์ที่ 3 ที่ไม่ได้ใช้สำหรับส่วนมากของเหล่านี้ แต่จะต้องมีการตั้งค่าเป็น 0 แทนที่จะละเว้น)
acatalept

"การเรียงลำดับของแฮ็ค" - แฮ็คหมายถึงการเข้าถึงบางสิ่งที่ซอฟต์แวร์ไม่ควรทำ ดูเหมือนว่าคุณสมบัติสำหรับฉัน
นาตาลีอดัมส์

@ นาธาน: ความหมายคือความสนุก;) ฉันหมายถึงการใช้ปลั๊กอิน NppExec ในการส่งข้อความหน้าต่างโดยตรงไปยังตัวควบคุมเป็นการเรียงลำดับของการแฮ็คไม่ใช่สิ่งที่ Notepad ++ ได้รับการออกแบบมาโดยเฉพาะเพื่อทำ ล้อ)
acatalept

0

หากไม่มีสิทธิ์ของผู้ดูแลระบบให้ติดตั้ง NppExec โดยดาวน์โหลด dll และติดตั้งลงในไดเรกทอรี / โฟลเดอร์ปลั๊กอินของ npp ปิด / เปิด npp อีกครั้ง

แก้ไข (+2 ปี): ฉันไม่ทราบว่าสิ่งนี้มีการเปลี่ยนแปลงหรือไม่ แต่ตอนนี้ (ถ้าไม่ใช่ตอนแรก) ใส่โฟลเดอร์ NppExec ลงในโฟลเดอร์ปลั๊กอินของ npp - ด้วย dll ในโฟลเดอร์ย่อย NppExec

ตรวจสอบให้แน่ใจว่ารุ่นตรงกัน (เตือนตัวเองว่าคุณอยู่ในรุ่น 32 บิตหรือ 64 บิต) และหากคุณมีรุ่นล่าสุด (2019) คุณอาจต้องใช้ NppExec เวอร์ชัน _PA

เหตุใดฉันจึงไม่สามารถติดตั้งปลั๊กอิน NppExec สำหรับ Notepad ++


มีการเปลี่ยนแปลงบางอย่างใน Notepad ++ ดำเนินการไม่ได้อยู่ที่นั่นอีกต่อไป มีการแก้ไขสิ่งนี้หรือไม่?
user215779
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.