ฉันเพิ่งถาม:
จะเพิ่มคำนำหน้าให้กับทุกบรรทัดได้อย่างไร
ดังนั้นไปจากรหัสด้านล่าง:
I said Hello
I said There
I said I am some code
ไปที่รหัสเช่น:
Hello
There
I am some code
ตอนนี้ฉันจะลบจำนวนอักขระจากบรรทัดได้อย่างไร
ฉันเพิ่งถาม:
จะเพิ่มคำนำหน้าให้กับทุกบรรทัดได้อย่างไร
ดังนั้นไปจากรหัสด้านล่าง:
I said Hello
I said There
I said I am some code
ไปที่รหัสเช่น:
Hello
There
I am some code
ตอนนี้ฉันจะลบจำนวนอักขระจากบรรทัดได้อย่างไร
คำตอบ:
มันง่ายยิ่งขึ้น! อีกครั้งใช้คำสั่งสี่เหลี่ยมผืนผ้า ย้ายไปที่มุมหนึ่งของสี่เหลี่ยมที่คุณต้องการลบกดC-SPC
เพื่อตั้งเครื่องหมาย ย้ายไปที่มุมอื่นของสี่เหลี่ยมแล้วกดC-x r d
( delete-rectangle
) ตัวอย่างเช่นย้ายไปที่บรรทัดแรกที่คุณต้องการดำเนินการกดC-a
หรือhome
เพื่อไปที่จุดเริ่มต้นของบรรทัดเลื่อนลงไปที่บรรทัดสุดท้ายที่คุณต้องการที่จะดำเนินการเพื่อย้ายไปที่มุมขวาล่างแล้วลบC-u number C-f
C-x r d
หากบรรทัดสุดท้ายมีจำนวนอักขระน้อยกว่าที่ต้องการอาจจะสะดวกกว่าถ้าใช้มุมล่างซ้ายและขวาบนแทน หรือคุณสามารถแทรกอักขระขยะ (เป็นประโยชน์หากทั้งบรรทัดแรกและบรรทัดสุดท้ายสั้นกว่า)
คุณสามารถใช้C-x r k
เพื่อฆ่าสี่เหลี่ยมซึ่งช่วยให้คุณงัด ( C-x r y
) ในภายหลัง (เลื่อนไปที่มุมซ้ายบนของสถานที่ที่คุณต้องการแทรก)
นอกจากนี้คุณยังสามารถใช้C-x r t
( string-rectangle
) และป้อนสตริงว่าง
คำสั่ง Rectangle ขึ้นอยู่กับตำแหน่งของคอลัมน์ หากคุณต้องการลบอักขระ n ตัวแทนที่จะเป็นคอลัมน์ n (ซึ่งสร้างความแตกต่างด้วยอักขระหลายคอลัมน์เช่นแท็บ) คุณสามารถใช้การแทนที่นิพจน์ทั่วไป : แทนที่^.\{42\}
โดยไม่มีอะไรเลยเพื่อลบ 42 ตัวอักษรแรกของทุกบรรทัด
ความเป็นไปได้อีกอย่าง: ฉันชอบใช้เคอร์เซอร์หลายตัวสำหรับงานเช่นนี้ มีให้ในpackage.el
MELPA มันกลายเป็นส่วนที่ขาดไม่ได้ของ emacs ของฉัน ฉันจะเลือกI said
(และอาจรวมถึงการแบ่งบรรทัดก่อนหน้านี้) ใช้M-x mc/mark-all-like-this
และเป็นทางของฉัน หากคุณต้องการการควบคุมที่ละเอียดมากขึ้นคุณสามารถใช้หรือmc/mark-next-like-this
mc/mark-next-lines
ปุ่มลัดของฉัน:
(use-package multiple-cursors
:bind (("C->" . mc/mark-next-like-this)
("C-M->" . mc/mark-all-like-this-dwim)))
Emacs บังคับ! ตอน: http://emacsrocks.com/e13.html
หากคุณcua-mode
เปิดใช้งานแล้ว:
ฉันชอบcua-mode
วิธีการทำงานมากกว่าสี่เหลี่ยมจัตุรัสมาตรฐานของ Emacs ซึ่งเทียบเท่า:
cua-mode
บันทึกสามกดปุ่มเมื่อเทียบกับมาตรฐาน Emacs สี่เหลี่ยมผืนผ้า
เพื่อความสมบูรณ์: การลบอักขระ 3 ตัวแรกจากแต่ละบรรทัด (เป็นทางการ: จากจุดบนหรือในพื้นที่) สามารถทำได้โดยการแทนที่ regexp ^...
(หรือโดยทั่วไป:) ^.\{3\}
ด้วยสตริงว่าง
คำอธิบาย: ใน regexen, ^
หมายถึง "จุดเริ่มต้นของสาย" .
หมายถึง "ตัวอักษรใด ๆ" และ\{n\}
หมายถึง " nซ้ำของสิ่งที่มาก่อน"
สิ่งนี้มีประโยชน์เพิ่มเติมของการเป็นแบบโต้ตอบ (ยกเว้นกดเพียงครั้งเดียว!
ซึ่งจะquery-regexp-replace
แทนที่ทุกอย่างนับจากนี้ไปโดยไม่มีคำถามเพิ่มเติม)
และอีกหนึ่งความเป็นไปได้:
F3C-aC-3C-dC-nF4
บันทึกแมโครแป้นพิมพ์โดยทั่วไปแล้ว "ย้ายไปที่จุดเริ่มต้นของบรรทัดลบอักขระสามตัวและย้ายไปที่บรรทัดถัดไป" จากนั้นคุณสามารถเล่นซ้ำจนกว่าจะสิ้นสุดของบัฟเฟอร์โดยC-uF4หรือC-xC-krนำไปใช้กับบรรทัดในภูมิภาค นี่มีข้อเสียเดียว: มันจะแตกเมื่อบรรทัดใดก็ตามมีน้อยกว่า 3 อักขระ
หากเป็นเพียงบรรทัดเดียวที่คุณสามารถ zap-to-char กับ Mz โดยสันนิษฐานว่าอักขระนั้นไม่ซ้ำระหว่างจุดและบรรทัดที่คุณต้องการลบสูงสุด สำหรับบางกรณีการดำเนินการนี้จะเร็วกว่าการสร้างภูมิภาค