ฉันจะกระโดดออกจากวงเล็บปิดได้อย่างไร


12

ฉันใช้spacemacsเพื่อแก้ไขรหัสหลาม

เมื่อฉันพิมพ์วงเล็บเปิดวงเล็บปิดจะถูกแทรกให้ฉันโดยอัตโนมัติและเคอร์เซอร์จะอยู่ตรงกลางเพื่อพิมพ์ต่อไป แต่: เมื่อฉันพิมพ์ภายในวงเล็บฉันต้องการวิธีที่รวดเร็วในการกระโดดออกจากพวกเขาและเชื่อมโยงไปถึงหลังจากวงเล็บปิด

ตอนนี้ผมเปลี่ยนไปสภาพปกติเลื่อนเคอร์เซอร์หนึ่งหน่วย (เมื่อฉันในตัวละครก่อนวงเล็บปิด) aและจากนั้นก็กลับเข้ามาแทรกรัฐที่มี ฉันจะทำสิ่งนี้ได้อย่างมีประสิทธิภาพมากขึ้นได้อย่างไร


(อย่าใช้ smartparens เป็นต้นในตอนแรก IOW ถ้ามันเจ็บไม่ทำทำไม จำกัด ตัวคุณเองที่ " พิมพ์สิ่งที่อยู่ในวงเล็บ "? Emacs ช่วยให้คุณรู้ว่า paren ที่ถูกต้องตรงกับ paren ที่เหลือ ไม่จำเป็นต้องเอ็นร้อยหวายด้วยตัวคุณเองโดยการสร้างเซลล์เล็ก ๆ น้อย ๆ เพื่อใช้งานได้)
Drew

3
คุณไม่สามารถพิมพ์ paren การปิดหรือไม่ C-M-nถ้าไม่ได้ลอง
พี่เลี้ยง

@ พี่เลี้ยงขอบคุณ ฉันไม่ได้ตระหนักถึงมัน
Aviral Goel

@ ดึงคุณถูกต้อง แต่สมาร์ทพาเรนส์ก็มีคุณสมบัติที่ดีเช่นกัน
Aviral Goel

คำตอบ:


10

ในsmartparens-modeฟังก์ชั่นsp-up-sexpจะย้ายคุณออกจากชุดวงเล็บ (ผูกกับคีย์ที่คุณเลือก):

เลื่อนไปข้างหน้าออกจากวงเล็บหนึ่งระดับ

...

ตัวอย่าง:

(foo |(bar baz) quux blab) -> (foo (bar baz) quux blab)|

(foo (bar |baz) quux blab) -> (foo (bar baz) quux blab)| ;; 2

(foo bar |baz -> (foo bar baz)| ;; re-indent the expression ​ )

(foo |(bar baz) -> (foo)| (bar baz) ;; close unbalanced expr.

หากต้องการทำซ้ำตัวอย่าง docstring แบบง่าย ๆ โดยใช้ข้อความต่อไปนี้และ|เป็นเคอร์เซอร์:

(hey, I'm| in the parentheses) and I'm outside them

M-x sp-up-sexp (หรือสิ่งที่คุณผูกฟังก์ชั่นนั้นเพื่อความสะดวก) จะนำคุณไปที่:

(hey, I'm in the parentheses)| and I'm outside them

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


3

ลองup-list(ซึ่งเป็นฟังก์ชั่น Emacs ในตัว)

มันช่วยให้ฉันกระโดดออกจากสตริง, parens, วงเล็บด้วยการทำรังใด ๆ

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