วิธีการแทรกบรรทัดใหม่และข้ามไปยังมันใน emacs?


12

Shift+Enterมันเหมือนกับคราส

เช่นฉันมีข้อความ:

Hello, *everyone.
I'm Freewind.

*ในบรรทัดแรกเป็นเคอร์เซอร์ จากนั้นฉันกดปุ่มลัดบางอย่างมันจะกลายเป็น:

Hello, everyone.
*
I'm Freewind.

สังเกตว่ามีบรรทัดใหม่ในบรรทัดที่สองและเคอร์เซอร์อยู่ในบรรทัดใหม่

คีย์ลัดฉันสามารถใช้อะไรได้บ้าง


3
ฉันมักจะใช้ Ce แล้วใส่

คำตอบ:


16

C-e C-m

หรือ

C-e C-j

ทั้งสองจะย้ายไปที่ท้ายบรรทัดและเพิ่มบรรทัดใหม่ ที่สองก็จะเยื้อง


ฉันสามารถแมปกุญแจเพื่อทำงานนี้ได้หรือไม่ดังนั้นฉันต้องกดหนึ่งครั้ง?
Freewind

นั่นคือการทำแผนที่ที่สำคัญ Emacs อนุญาตให้คำสั่งการโยงกับลำดับของคีย์และคำสั่งส่วนใหญ่เป็นสองคีย์ โดยทั่วไปแล้วมันเป็นความคิดที่ไม่ดีที่จะผูกเข้ากับคีย์เดียวเนื่องจากการผูกคีย์ส่วนใหญ่นั้นใช้พื้นฐานของ emacs
Ross Patterson

C-einvokes move-end-of-lineและC-minvokesnewline
Dror

10

เพื่อความสมบูรณ์นี่คือหน้าที่:

(defun end-of-line-and-indented-new-line ()
  (interactive)
  (end-of-line)
  (newline-and-indent))

(global-set-key (kbd "<S-return>") 'end-of-line-and-indented-new-line)

ขอบคุณ แต่ฉันจะใช้มันได้อย่างไร เพียงแมปกุญแจเข้ากับฟังก์ชั่นนี้? ฉันสามารถแมป "Shift-Enter" กับมันได้หรือไม่
Freewind

@ คำตอบล่วงหน้าแล้วอัปเดต
Trey Jackson

3
หากคุณใช้comment-indent-new-lineแทนจะเป็นการใส่อักขระความคิดเห็นที่เหมาะสมหากคุณอยู่ในความคิดเห็น
phils

7

คุณสามารถทำบางสิ่งบางอย่างที่คล้ายกับแมโครแป้นพิมพ์เช่นนี้

(global-set-key (kbd "<S-return>") "\C-e\C-m")

หรือแน่นอน:

(global-set-key (kbd "<S-return>") (kbd "C-e C-m"))

เพื่อหลีกเลี่ยงการใช้ไวยากรณ์สองชนิดสำหรับคีย์

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