Notepad ++ การแก้ไขหลายรายการ


112

ฉันจะมีเคอร์เซอร์หลายตัวใน Notepad ++ ได้อย่างไร?

ฉันจะมีค่าที่คั่นด้วยแท็บสองสามค่า ฉันต้องเขียนแบบสอบถามสำหรับค่าทั้งหมดนี้ ตัวอย่างเช่นหากฉันได้รับไฟล์ Excel ที่มีค่าดังนี้:

1234 xyz pqr
2345 sdf kkk
...

ฉันต้องการคัดลอกข้อมูลทั้งหมดนี้ลงใน Notepad ++ และเขียนแบบสอบถามแทรกค่าทั้งหมดพร้อมกัน

แบบนี้:

Insert into tbl (1234, xyz) where clm = 'pqr'
Insert into tbl (2345, sdf) where clm = 'kkk'
...

ฉันเคยทำกับโปรแกรมแก้ไขข้อความก่อนหน้านี้อย่าง Ultraedit สามารถทำได้โดยใช้ Notepad ++ หรือไม่?


2
เอ่อ ... ใช้ SublimeText :)
Praveen Kumar Purushothaman

ฉันทำสิ่งนี้ตลอดเวลาด้วย Notepad ++ แต่ติดงาน UltraEdit อยู่ ... ฉันจะทำสิ่งนี้กับ UltraEdit ได้อย่างไร :)
Ron Jensen - เราทุกคนคือโมนิกา

คำตอบ:


166

ใช่: เพียงแค่กดปุ่มค้างไว้Altคลิกและลากเพื่อเลือกบรรทัดที่มีคอลัมน์ที่คุณต้องการแก้ไขและเริ่มพิมพ์

คุณยังสามารถไปที่การตั้งค่า> การตั้งค่า ...และในแท็บการแก้ไขให้เปิดการแก้ไขหลายรายการเพื่อเปิดใช้งานการเลือกภูมิภาคหรือคอลัมน์ของข้อความที่แยกจากกันหลายรายการเพื่อแก้ไขพร้อมกัน

ใช้งานง่ายกว่ามากเนื่องจากคุณสามารถเห็นการแก้ไขของคุณขณะพิมพ์


2013 ที่นี่ v5.2: ไม่มีแท็บการแก้ไข (อีกต่อไป) หรือตัวเลือกการแก้ไขหลายรายการ
Wouter

@ เราเตอร์: ยังคงมีสำหรับฉันใน v6.2 ... หากไม่มีอยู่ใน v5.2 อาจมีบางอย่างผิดปกติ แต่ฉันไม่สามารถแสดงความคิดเห็นเพิ่มเติมได้
BoltClock

@BoltClock: เจ๋ง! บางแห่งระหว่างเวอร์ชัน v5.2 และ v6.2 จะต้องมีการเพิ่มคุณสมบัตินั้น หรืออาจจะหายไปสักครู่ก่อนหน้านั้น :)
Wouter

1
การสาธิตสามารถมองเห็นได้ที่นี่: notepad-plus-plus.org/features/multi-editing.html ดูเหมือนเวอร์ชั่นเก่า แต่ฉันลองใช้ใน v6.4.5 แล้วมันก็ใช้ได้ดี
brazilianldsjaguar

11
alt+up/downไม่ได้ผลสำหรับฉัน ฉันต้องใช้alt+shift+up/downแทน v6.9.1
AXO

51

ในตำแหน่งที่คุณต้องการเพิ่มข้อความให้ทำ:

Shift+ Alt+down arrow

และเลือกเส้นที่คุณต้องการ จากนั้นพิมพ์ ข้อความที่คุณพิมพ์จะถูกแทรกในทุกบรรทัดที่คุณเลือก


1
คำตอบที่ดีที่สุดอย่างแท้จริงที่นี่
Etienne Gautier

นี่คือคำตอบที่ดีกว่า! อย่าลืมใช้ shift + alt สำหรับการดำเนินการใด ๆ เช่นตัดคัดลอก!
Gaurav

ฉันค้นหาฟีเจอร์นี้มานานแล้วขอบคุณ!
michal.hubczyk

46

คุณสามารถเพิ่ม / แก้ไขเนื้อหาได้หลายบรรทัดโดยใช้ปุ่มควบคุม นี่คือคุณสมบัติการแก้ไขหลายรายการใน Notepad ++ เราจำเป็นต้องเปิดใช้งานจากการตั้งค่า กดปุ่มควบคุมค้างไว้เลือกตำแหน่งที่คุณต้องการป้อนข้อความปล่อยปุ่มควบคุมและเริ่มพิมพ์ซึ่งจะอัปเดตข้อความในทุกตำแหน่งที่เลือกไว้ก่อนหน้านี้

ใส่คำอธิบายภาพที่นี่

อ้างอิง: http://notepad-plus-plus.org/features/multi-editing.html


1
ฉันชอบ gif ที่คุณทำ ขอบคุณสำหรับสิ่งนี้.
Julien

นี่คือสิ่งที่ฉันต้องการอย่างแม่นยำ ขอบคุณ.
โซล

23

Notepad ++ ยังจัดการกับเคอร์เซอร์หลายตัวในขณะนี้

ไปที่การตั้งค่า => ค่ากำหนด => การแก้ไขและเลือก "เปิดใช้งาน" ใน "การตั้งค่าการแก้ไขหลายรายการ" จากนั้นใช้ Ctrl + คลิกเพื่อใช้เคอร์เซอร์หลายตัว

แสดงการสาธิตบนเว็บไซต์ทางการที่นี่ : https://notepad-plus-plus.org/features/multi-editing.html


คำตอบที่ไร้ที่ติ 2
Gaurav

22

คุณสามารถใช้Edit > Column Editor...เพื่อแทรกข้อความในบรรทัดปัจจุบันและบรรทัดต่อไปนี้ ทางลัดคือAlt + C.


8

Notepad ++ มีเอนจิ้น regex ที่ทรงพลังซึ่งสามารถค้นหาและแทนที่รูปแบบได้ตามต้องการ

ในสถานการณ์ของคุณ:

  1. คลิกรายการเมนู Search \ Replace ...

  2. กรอกข้อมูลในช่อง 'Find what' ด้วยรูปแบบการค้นหา:

    ^(\d{4})\s+(\w{3})\s+(\w{3})$
    
  3. เติมรูปแบบการแทนที่:

    Insert into tbl (\1, \2) where clm = \3
    
  4. คลิกReplace Allปุ่ม

และนั่นแหล่ะ

NotePad ++ แทนที่ภาพหน้าจอของหน้าต่าง


ฉันใช้ regex สำหรับการแก้ไขประเภทนี้มานานกว่า 10 ปีแล้ว แต่หลายคนแก้ไข regex ที่สับสนหรือเรียนรู้ยาก
raider33

6

วิธีที่ง่ายที่สุดในการแก้ปัญหาของคุณ (โดยไม่ต้องไปที่ตัวแก้ไขอื่นหรือเรียนรู้ regex) คือการบันทึกมาโคร

  • วางเคอร์เซอร์ไว้ที่จุดเริ่มต้นของข้อความคลิกปุ่ม "บันทึก" ใน Ribbon จากนั้นแก้ไขข้อความเพียงแถวเดียว คุณสามารถใช้ปุ่มลูกศรหรือปุ่มลูกศร ctrl + เพื่อเลื่อนไปรอบ ๆ ตัวอักษร / คำแทนที่จะคลิกด้วยเมาส์ ปุ่ม "home" และ "end" ก็มีประโยชน์เช่นกัน
  • เมื่อคุณทำบรรทัดเดียวเสร็จแล้วให้เลื่อนเคอร์เซอร์ (อีกครั้งโดยไม่ใช้เมาส์) ไปที่จุดเริ่มต้นของบรรทัดถัดไป
  • คลิกปุ่ม "หยุดการบันทึก"
  • คลิกปุ่ม "เล่นมาโคร" เพื่อตรวจสอบว่าทำงานในบรรทัดถัดไปตามที่คาดไว้
  • คลิกปุ่ม 'เรียกใช้มาโครหลายครั้ง' เพื่อทำอีกครั้งและอีกครั้งและอีกครั้ง ... : P
ข้อดีอย่างหนึ่งของสิ่งนี้ในเคอร์เซอร์ 'การแก้ไขหลายรายการ' คือคุณไม่จำเป็นต้องคลิกและวางเคอร์เซอร์ด้วยตนเองในทุกๆแถว ข้อดีประการที่สองคือคุณสามารถทำงานกับข้อมูลที่คั่นด้วยแท็บที่ไม่มีขนาด / ความยาวที่สอดคล้องกันได้เพียงใช้ ctrl + ซ้าย / ขวาเพื่อข้ามคำ

จริงๆแล้วมาโครใน N ++ ช่วยชีวิตฉันได้ประมาณหนึ่งปี


1

Notepad ++ มีเฉพาะการแก้ไขคอลัมน์ สิ่งนี้ไม่เหมือนกับเคอร์เซอร์หลายตัวโดยสิ้นเชิง

Sublime Text มีการใช้งานที่ยอดเยี่ยมสำหรับสิ่งนี้อาจคุ้มค่าที่จะลองดู ...
เป็นตัวแก้ไขที่ค่อนข้างใหม่ (2011) ที่ได้รับความนิยมค่อนข้างรวดเร็ว: http://www.google.com/trends/explore#q=Notepad% 2B% 2B% 2C% 20Sublime% 20Text & cmpt = q

แก้ไข: เห็นได้ชัดว่ามีการเพิ่มการแก้ไขหลายเคอร์เซอร์ของ Notepad ++ เวอร์ชัน 6.x แต่ยังมีคุณสมบัติขั้นสูงอีกสองสามอย่างใน Sublime เช่น "เลือกเหตุการณ์ถัดไป"


การแก้ไขหลายเคอร์เซอร์ของ npp ไม่มีที่ไหนใกล้เคียงกับการแก้ไขแบบหลายบรรทัดของซับไลม์
th1rdey3

1
การแก้ไข: แก้ไขหลายเคอร์เซอร์ของ NPP ไม่มีที่ไหนเลยใกล้ดีเท่าการแก้ไขหลายของประเสริฐโดยค่าเริ่มต้น ไลบรารี scintilla ช่วยให้สามารถใช้งานฟังก์ชันทั้งหมดที่ Sublime รองรับได้ ผู้ใช้ทุกคนสามารถดาวน์โหลดปลั๊กอินเช่น nppscripts หรือ pythonscript เพื่อเข้าถึงเฟรมเวิร์ก npp และแมปสคริปต์เหล่านั้นกับแป้นพิมพ์ลัดโดยเลียนแบบคำสั่งย่อยทั้งหมด สำหรับผู้ที่ไม่ต้องการรบกวนการกำหนดค่าตัวแก้ไขโดยทั้งหมดจ่ายค่าประเสริฐ
user2867288

ฉันเข้าใจว่าคุณมาจากไหน แต่มันไม่ยุติธรรมที่จะขอให้ผู้ใช้ทั่วไปต้องเขียนสคริปต์เฟรมเวิร์กตัวแก้ไขพื้นฐานสำหรับฟีเจอร์ปกติ ฉันเห็นด้วยกับคุณหากปลั๊กอินทำสิ่งนี้แล้ว (ถ้าฉันมีเวลามากกว่านี้ฉันจะสร้างมันขึ้นมา) นอกจากนี้โพสต์ล่าสุดนี้sourceforge.net/p/scintilla/feature-requests/1085กล่าวว่า "ไฮไลต์ถัดไป" อาจทำได้ง่าย แต่คุณยังไม่มีฟังก์ชันปุ่มลูกศร ฉันสงสัยว่าการ "ข้าม" จะทำได้ง่ายเพียงใด ไฮไลต์ถัดไปข้ามถัดไปและลูกศรทั้งหมดจะมีประโยชน์ในบางครั้ง
ShawnFumo

0

คุณสามารถใช้ปลั๊กอิน ConyEdit เพื่อทำสิ่งนี้ เมื่อ ConyEdit ทำงานในพื้นหลังให้ทำตามขั้นตอนเหล่านี้:

  1. ใช้บรรทัดคำสั่งcc.spc /\t/ aเพื่อแบ่งข้อความออกเป็นคอลัมน์และจัดเก็บไว้ในอาร์เรย์สองมิติ
  2. ใช้คำสั่งcc.pเพื่อพิมพ์โดยใช้เนื้อหาของอาร์เรย์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.