แทนที่สตริงที่กำหนดเพิ่มขึ้น


12

ให้เราบอกว่าฉันมีข้อความเช่นด้านล่าง:

AC (NN)
AC (NN)
AC (NN)
AC (NN)
AC (NN)
AC (NN)
AC (NN)
AC (NN)
AC (NN)
AC (NN)
AC (NN)

ตอนนี้ฉันต้องการแทนที่nnด้วยตัวเลขอย่างนั้น

AC (0)
AC (1)
AC (2)
เอซี (3)
AC (4)
AC (5)
AC (6)
AC (7)
AC (8)
AC (9)
เอซี (10)

ฉันเคยM-x replace-regexp nn RET \# RETทำสิ่งนี้ให้สำเร็จ

คำถาม:

  1. ฉันต้องการที่จะเริ่มต้นจำนวนทดแทนที่จะเริ่มต้นจากมากกว่าจาก1 หรือมากกว่าเริ่มต้นจากจำนวนที่ระบุไว้พูด0 25ฉันจะแก้ไขคำสั่งด้านบนได้อย่างไร
  2. วิธีแทนที่nnด้วยตัวเลขเช่น001, 002.... 998, 999ฯลฯ - ฉันหมายถึงด้วยเลขศูนย์นำหน้า

นี่ไม่ใช่สิ่งที่คุณต้องการ แต่วิธีอื่นในการทำเช่นนี้คือการใช้แมโครพร้อมกับการลงทะเบียน
Caterpillar

คำตอบ:


12

เทคนิคทั่วไป

สตริงการแทนที่ของคุณสามารถมีรหัสเสียงกระเพื่อมโดยพลการ จากเอกสารสำหรับ replace-regexp :

ในการโทรแบบโต้ตอบข้อความทดแทนอาจมี '\,' ตามด้วยนิพจน์เสียงกระเพื่อมที่ใช้เป็นส่วนหนึ่งของข้อความแทนที่ ด้านในของนิพจน์นั้น '\ &' คือสตริงที่แสดงถึงการจับคู่ทั้งหมด '\ N' การจับคู่บางส่วน, '# &' และ '#N' ค่าตัวเลขที่เกี่ยวข้องจาก 'string-to-number' และ '# 'ตัวเองสำหรับ' replace-count 'จำนวนการแทนที่ที่เกิดขึ้นจนถึงจุดเริ่มต้นจากศูนย์

เราสามารถใช้เทคนิคนี้ได้หลายวิธี

เริ่มจาก 1

วัดที่เราต้องการจะทำคือแทนที่nnกับคนมากขึ้นกว่าที่คุณใช้กับreplace-count\#

โทร#'replace-regexpด้วยอาร์กิวเมนต์\,(1+ \#):

C-M-% nn \,(1+ \#)จะเข้ามาแทนที่ NN กับ1ก่อนแล้ว2, 3ฯลฯ

เริ่มต้นที่ 25

คุณสามารถแก้ไขสิ่งนี้ได้โดยไม่เพียงแค่เพิ่มสิ่งใดสิ่งหนึ่ง แต่ (ในตัวอย่างของคุณ) 25:

C-M-% nn \,(+ 25 \#)

เลขศูนย์นำหน้า

หรือเราสามารถใช้formatเพื่อเพิ่มศูนย์นำหน้า นี้จะแทนที่nnด้วย000, 001, 002ฯลฯ คุณสามารถรวมรหัสเสียงกระเพื่อมอื่น ๆ ข้างต้นเพื่อเริ่มต้นที่001, 025หรือสิ่งที่คุณต้องการ

C-M-% nn \,(format "$03d" \#)


5

cua-modeนอกจากนี้คุณยังสามารถใช้

เลือกภูมิภาคสี่เหลี่ยมผืนผ้า (ทุก NN) M-x cua-rectangle-mark-modeและจากนั้น

ถัดไปM-nและยอมรับค่าเริ่มต้น


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