วิธีวางข้อความถึงจุดสิ้นสุดของทุกบรรทัดได้อย่างไร ประเสริฐ 2


161

ฉันอยากรู้ว่ามีวิธีการวางข้อความที่ส่วนท้ายของทุกบรรทัดใน Sublime 2 หรือไม่ และตรงกันข้ามกับจุดเริ่มต้นของทุกบรรทัด

ทดสอบบรรทัดที่หนึ่ง

ทดสอบสองบรรทัด

สายการทดสอบที่สาม

สายการทดสอบที่สี่

...

สมมติว่าคุณมีข้อความ 100 บรรทัดในโปรแกรมแก้ไขและคุณต้องการวางเครื่องหมายคำพูดไว้ที่จุดเริ่มต้นและจุดสิ้นสุดของแต่ละบรรทัด

มีวิธีง่ายๆในการทำเช่นนี้หรือปลั๊กอินที่ทุกคนจะรู้หรือไม่? สิ่งนี้มักจะช่วยฉันประหยัดเวลาได้มากในโครงการต่างๆ

ขอบคุณ


4
ขณะนี้นี่เป็นการสาธิตครั้งที่สองในหน้าแรก ... sublimetext.com
TWiStErRob

คำตอบ:


28

คุณสามารถใช้การค้นหาและแทนที่พร้อม regex นี้เพื่อหาข้อความและข้อความที่แทนที่คือ^([\w\d\_\.\s\-]*)$"$1"


7
! น่ากลัว ดังนั้นฉันจึงพบว่างานต่อไปนี้สำหรับฉัน: การใช้ regex: (?> \ x0D \ x0A? | [\ x0A- \ x0C \ x85 \ x {2028} \ x {2029}] จะพบจุดสิ้นสุดของทุกบรรทัด และการใช้ regex: ^ [a-zA-z0-9! @ # $ ") (* &! + _-] จะค้นหาจุดเริ่มต้นของทุกบรรทัด (ให้ตัวอักษรทั้งหมดจะถูกเพิ่มสำหรับ regex เพื่อค้นหาที่จุดเริ่มต้นแต่ละ ของบรรทัด) ขอบคุณ @yohann!
Tony H.

5
หากคุณกำลังทำสิ่งนี้ด้วย regex ในเครื่องมือแก้ไขที่ทรงพลังอย่าง Vim หรือ ST2 คุณจะไม่ได้รู้อะไรเลย ทำไมต้องเป็นบรรณาธิการที่ดีsed?
sehe

ขอบคุณที่ช่วยชีวิตฉันให้รอด 3 ชั่วโมง
เอฟ

572

ใช่ Regex เจ๋ง แต่ก็มีทางเลือกอื่น

  • เลือกบรรทัดทั้งหมดที่คุณต้องการนำหน้าหรือต่อท้าย
  • การเลือกเมนูไปที่-> แยกเป็นเส้น ( Cmd/ Ctrl+ Shift+ L)

สิ่งนี้ช่วยให้คุณสามารถแก้ไขหลายบรรทัดพร้อมกัน ตอนนี้คุณสามารถเพิ่ม * Quotes (") หรืออะไรก็ได้ *ที่จุดเริ่มต้นและจุดสิ้นสุดของแต่ละบรรทัด


36
มันง่ายกว่ามากที่จะทำ
Yada

6
นี่เป็นคำตอบที่ดีกว่ามาก นอกจากนี้คุณยังสามารถใช้ shift (Windows / Linux) หรือปุ่มตัวเลือก (Mac) ในขณะที่เลือกภูมิภาคด้วยเมาส์เพื่อให้ได้ผลลัพธ์เดียวกัน
dbn

5
คุณมักจะพบว่าตัวเองกำลังแก้ไขหลายบรรทัดตามที่อธิบายไว้ข้างต้น แต่ต้องการกลับมารวมกันเป็นบรรทัดเดียว แป้นพิมพ์ลัดเพื่อเข้าร่วมหลายบรรทัด: ctrl / cmd + J
fionbio

3
นี่เป็นคำตอบที่ดี แต่สำหรับการนับจำนวนบรรทัดที่มีขนาดใหญ่มากอาจทำให้ CPU มีความเข้มข้นมากกว่าการค้นหาและแทนที่
Ceilingfish

2
ฉันคิดว่านี่น่าจะเป็นคำตอบที่ต้องการ
Michael Osofsky

79

นี่คือขั้นตอนการทำงานที่ฉันใช้ตลอดเวลาโดยใช้แป้นพิมพ์เท่านั้น

  1. Ctrl/ Cmd+ Aเลือกทั้งหมด
  2. Ctrl/ Cmd+ Shift+ Lแยกเป็นเส้น
  3. ' ล้อมรอบทุกบรรทัดด้วยเครื่องหมายคำพูด

โปรดทราบว่าวิธีนี้ใช้ไม่ได้หากมีบรรทัดว่างในการเลือก


3
ไม่ทำงานสำหรับฉันใน st2 ขั้นตอนที่ 3 ลบทุกบรรทัดและแทนที่ด้วย "ขั้นตอนที่ 3 ควรเป็นHome" End"
andrej

@andrej - ฟังดูเหมือนข้อผิดพลาด ตรวจสอบให้แน่ใจว่าคุณกำลังใช้ st2 รุ่นใหม่ล่าสุดและหากเป็นเช่นนั้นให้รายงานข้อผิดพลาดที่sublimetext.userecho.com
dbn

1
@dbw ที่ใช้ข้อความ sublime 2.0.1 build 2217 โพสต์เป็น bug ที่sublimetext.userecho.com/topic/184875-
andrej

@andrej ฉันสามารถทำให้เกิดปัญหาของคุณถ้าผมมีบรรทัดว่างใด ๆ ในการเลือก
แพทริคแมคโดนั

52
  1. เลือกบรรทัดทั้งหมดที่คุณต้องการเพิ่มคำนำหน้าหรือคำต่อท้าย (แต่ถ้าคุณต้องการเพิ่มคำนำหน้าหรือคำต่อท้ายให้กับบรรทัดที่ระบุเท่านั้นคุณสามารถใช้ctrl+ Left mouse buttonเพื่อสร้างเคอร์เซอร์หลายตัว)
  2. กดCtrl+ +ShiftL
  3. กดHomeปุ่มและเพิ่มคำนำหน้า
  4. กดEndปุ่มและเพิ่มคำต่อท้าย

หมายเหตุปิดการใช้งาน wordwrap มิฉะนั้นจะทำงานไม่ถูกต้องหากบรรทัดของคุณยาวกว่าความกว้างของประเสริฐ


2
นี่คือการแก้ไขที่แท้จริง บ้านและปุ่มวางสายมีความสำคัญอย่างยิ่งสำหรับการทำงานอย่างถูกต้อง
ฟิล

ใน Sublime Text 3 (สำหรับ Mac) ปุ่ม home และ end ไม่ทำงานสำหรับฉัน หากคุณมีปัญหานี้ให้ตรวจสอบ: coderwall.com/p/upolqw/…
avance

ไม่ได้จริงๆ @Phil คุณยังสามารถใช้ Cmd + ลูกศรซ้าย / ขวาเพื่อนำทางได้เช่นกัน ฉันคิดว่าหน้าต่างเดียวกันจะใช้งานได้เช่นกัน
Claud H

33

สมมติว่าคุณมีรหัสบรรทัดเหล่านี้:

test line one
test line two
test line three
test line four

การใช้การค้นหาและแทนที่ Ctrl + Hด้วยRegexลองหาสิ่งนี้: ^และแทนที่ด้วย"เราจะได้:

"test line one
"test line two
"test line three
"test line four

ตอนนี้ลองค้นหาสิ่งนี้: $และแทนที่ด้วย"ตอนนี้เราจะได้สิ่งนี้:

"test line one"
"test line two"
"test line three"
"test line four"

ทำงานได้ดีจริงๆในข้อความประเสริฐ 3 ประหยัดเวลาได้มาก
jamescampbell

22

ใช้ตัวเลือกคอลัมน์ การเลือกคอลัมน์เป็นหนึ่งในคุณสมบัติพิเศษของ Sublime2; มันถูกใช้เพื่อให้เคอร์เซอร์ที่ตรงกันหลายรายการ ( บทช่วยสอนที่นี่ ) ในการรับเคอร์เซอร์หลายตัวให้ทำหนึ่งอย่างต่อไปนี้:

เมาส์:

  • กดปุ่ม Shift (Windows / Linux) หรือปุ่มตัวเลือก (Mac) ค้างไว้ขณะเลือกภูมิภาคด้วยเมาส์

  • การคลิกปุ่มกลางของเมาส์ (หรือเลื่อน) จะเป็นการเลือกคอลัมน์

แป้นพิมพ์:

  • เลือกภูมิภาคที่ต้องการ
  • พิมพ์control+ shift+ L(Windows / Linux) หรือcommand+ shift+ L(Mac)

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

พิมพ์escเพื่อออกจากโหมดเคอร์เซอร์หลายโหมด


3
คุณยังสามารถทริกเกอร์การเลือกคอลัมน์โดยคลิกกลางและลาก
Curtis Gibby

2
นี่เป็นวิธีที่เฉพาะที่สุดของ Sublime Text ในการแก้ปัญหาและใช้คุณสมบัติพื้นฐานของ Sublime Text เนื่องจาก OP สอบถามเกี่ยวกับ Sublime Text ในชื่อเรื่องมันควรเป็นคำตอบที่ยอมรับได้
Dribbler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.