Bagaimana cara saya melompat keluar dari tanda kurung?

12

Saya menggunakan spacemacsuntuk mengedit kode Python.

Ketika saya mengetik tanda kurung pembuka, tanda kurung tutup secara otomatis dimasukkan untuk saya dan kursor diletakkan di tengah untuk mengetik lebih lanjut. Tapi: begitu saya selesai mengetik di dalam tanda kurung, saya perlu cara cepat untuk melompat keluar dari mereka dan mendarat setelah tanda kurung tutup.

Saat ini, saya beralih ke keadaan normal, memindahkan kursor satu unit (ketika saya berada di karakter sesaat sebelum tanda kurung tutup), dan kemudian masukkan kembali masukkan negara dengan a. Bagaimana saya bisa melakukan ini dengan lebih efisien?

Aviral Goel
sumber
(Jangan gunakan smartparens dll. TKI, jika sakit, jangan lakukan. Mengapa batasi diri Anda dengan " mengetik barang di dalam tanda kurung "? Emacs sudah memberi tahu Anda paren kanan mana yang sesuai dengan paren kiri mana Tidak perlu melukai diri sendiri dengan membuat sel kecil untuk bekerja.)
Drew
3
Tidak bisakah Anda cukup mengetikkan paren penutup? Jika tidak, coba C-M-n.
pengasuh
@nanny, terima kasih. Saya tidak menyadarinya.
Aviral Goel
@Drew Anda benar. Tetapi smartparens juga menyediakan beberapa fitur yang bagus, terutama berguna untuk pemrograman skema / raket.
Aviral Goel

Jawaban:

10

Di smartparens-mode, fungsi sp-up-sexpakan mengeluarkan Anda dari satu set kurung (mengikat ke kunci pilihan Anda):

Bergerak maju dari satu tingkat tanda kurung.

...

Contoh:

(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.

Untuk mengulangi versi sederhana dari contoh docstring, dengan teks berikut dan |sebagai kursor:

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

M-x sp-up-sexp (atau apa pun yang Anda ikat fungsi itu untuk kenyamanan) akan membawa Anda ke:

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

Perhatikan juga, jika kursor berada pada tanda kurung penutup, Anda bisa mengetikkan tanda kurung itu dan smartparensakan menafsirkannya sebagai "bergerak melewati tanda kurung ini" daripada "menyisipkan tanda kurung lain."

Dan
sumber
3

Coba up-list(yang merupakan fungsi bawaan Emacs)

Ini memungkinkan saya melompat keluar dari string, parens, kurung dengan sarang apa pun.

PlagueHammer
sumber