วิธีจัดการบรรทัดถัดไปในแมโครแป้นพิมพ์


12

ฉันสร้างแมโครคีย์บอร์ดเพื่อรวมบรรทัดในบัฟเฟอร์โดยใช้:

F3 C-n M-x join-line RET F4.

มันทำงานได้ดียกเว้นเมื่อบรรทัดยาวเกินไปและเริ่มตัด - ซึ่งทำให้แมโครนี้ขึ้นอยู่กับความกว้างของเฟรม next-lineดูเหมือนจะไม่ไปที่บรรทัดจริงถัดไป แต่ไปที่ส่วน "การตัด" ของบรรทัดปัจจุบัน

จะแก้ไขปัญหานั้นได้อย่างไร

คำตอบ:


13

คุณมีสอง สามตัวเลือก:

  1. ใช้next-logical-lineแทนnext-lineเมื่อกำหนดแมโคร:

    เลื่อนเคอร์เซอร์แนวตั้งลงARGเส้น นี้เป็นเหมือนยกเว้นว่ามันมักจะย้ายด้วยเส้นตรรกะแทนสายภาพไม่สนใจค่าของตัวแปรnext-lineline-move-visual

  2. ตั้งค่าline-move-visualเป็นnil:

    (setq line-move-visual nil)

    สิ่งนี้ทำให้next-lineพฤติกรรมเช่นnext-logical-lineโดยค่าเริ่มต้น

  3. เปิดการตัดบรรทัดโดยทำ

    M-x toggle-truncate-lines RET

    ก่อนบันทึกแมโคร


ที่สมบูรณ์แบบ! ขอบคุณ ฉันสงสัยในสถานการณ์ที่คุณต้องการnext-lineพฤติกรรมปัจจุบันnext-logical-lineของถึงแม้ว่า ...
Sébastien Le Callonnec

@ SébastienLeCallonnecฉันเดาว่ามีกรณีการใช้งานสำหรับทุกสิ่ง ... และมันเป็นเรื่องดีที่รู้ว่า Emacs จัดการกับพวกเขาทั้งหมด;)
itsjeyd

1
@ SébastienLeCallonnecเอ่อ ... เมื่อเขียนด้วยภาษาธรรมชาติ? ในสถานการณ์ที่ไม่ใช่เชิงเส้นการกด<down>หรือC-nโดยปกติคาดว่าจะทำให้คุณลงหนึ่งบรรทัดไม่ข้ามเส้นแบ่งเขต คิดว่าไม่ใช่ผู้ใช้ทุกคนที่มาจาก notepad (ที่ไม่มีการตัดบรรทัดเลย) ... Imo ข้อยกเว้นค่อนข้างเป็นสถานการณ์ที่next-logical-lineพฤติกรรมที่คาดหวังและในสถานการณ์เหล่านี้ฉันมักจะปิดการใช้งานvisual-line-modeโดยสิ้นเชิง และ +1 @itsjeyd เป็นเรื่องดีมากที่จะได้รับพฤติกรรมอย่างใดอย่างหนึ่งขึ้นอยู่กับสถานการณ์
T. Verron

2
@ T. Veron พอสมควร ผมคิดว่าผมสามารถ rebind ไปC-n next-logical-line;)
Sébastien Le Callonnec

0

C-aและC-eทั้งคู่รับอาร์กิวเมนต์คำนำหน้าซึ่งช่วยให้คุณข้ามบรรทัดได้ ตัวอย่างเช่นC-2 C-aจะข้ามไปที่จุดเริ่มต้นของบรรทัดถัดไปและC-2 C-eจะข้ามไปยังจุดสิ้นสุดของบรรทัดถัดไป อาร์กิวเมนต์คำนำหน้าเป็น3ย้ายสองบรรทัดและอื่น ๆ คุณยังสามารถใช้อาร์กิวเมนต์เชิงลบเพื่อย้ายไปยังบรรทัดก่อนหน้า

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

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