Çevreleyen parantezleri nasıl atlayabilirim?


12

spacemacsPython kodunu düzenlemek için kullanıyorum .

Bir açılış parantezini yazdığımda, kapanış parantezleri benim için otomatik olarak eklenir ve imleç daha fazla yazı yazmak için ortaya konur. Ancak: parantezin içine yazmayı bitirdikten sonra, onlardan atlamak ve kapanış parantezinden sonra iniş yapmak için hızlı bir yola ihtiyacım var.

Şu anda normal duruma geçiyorum, imleci bir birim hareket ettiriyorum (kapatma parantezinden hemen önceki karakterdeyken) ve sonra ekleme durumunu tekrar girin a. Bunu nasıl daha verimli bir şekilde yapabilirim?


(İlk başta smartparens vb. Kullanmayın? IOW, acıyorsa, yapmayın. Neden kendinizi " parantez içine bir şeyler yazmakla" sınırlandırıyorsunuz ? Çalışmak için küçük hücreler oluşturarak kendinizi hamsterlemeye gerek yok.)
Drew

3
Sadece bir kapanış paren yazamaz mısınız? Değilse, deneyin C-M-n.
dadı

@nanny Teşekkürler. Farkında değildim.
Aviral Goel

@ Haklısın Haklısın. Ancak smartparens, özellikle şema / raket programlama için yararlı olan birkaç güzel özellik de sağlar.
Aviral Goel

Yanıtlar:


10

İçinde smartparens-mode, işlev sp-up-sexpsizi bir parantez grubundan çıkarır (seçtiğiniz anahtarınıza bağlanır):

Bir düzey parantezin dışına çıkın.

...

Örnekler:

(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 örneklerinin basit bir sürümünü aşağıdaki metinle ve |imleç olarak yinelemek için :

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

M-x sp-up-sexp (veya bu işlevi kolaylık sağlamak için bağladığınız her şey) sizi:

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

Ayrıca, imleç kapanış parantezinin üzerindeyse , yalnızca bu parantezi yazabileceğinizi ve smartparensonu "başka bir parantez eklemek" yerine "bu parantezin ötesine taşı" olarak yorumlayacağınızı unutmayın.


3

Deneyin up-list(yerleşik Emacs işlevidir)

Herhangi bir yuvalama ile dizelerden, parenslerden, köşeli parantezlerden atlamama izin veriyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.