Terbaik (minimal penekanan tombol) metode melompat ke awal suatu fungsi dan kemudian kembali ke titik saat ini?

16

Terkadang saya berada di dalam fungsi panjang di mana awal fungsi tidak terlihat. Sementara saya baru-baru ini belajar tentang (which-function-mode)yang memberitahu saya dalam modeline nama fungsi, saya ingin dapat dengan cepat melompat ke awal fungsi dan kemudian kembali semudah mungkin.

Sejauh ini saya sudah menemukan dua solusi.

  1. Menggunakan tanda

    C-SPC Tandai titik saat ini

    C-M-a Pindah ke belakang untuk memulai fungsi

    C-x C-x Tukar tanda dengan titik saat ini (melompat kembali)

    C-g Batalkan wilayah yang ditandai

  2. Menggunakan register

    C-x r SPC p Simpan titik saat ini dalam daftar 'p'

    C-M-a Pindah ke belakang untuk memulai fungsi

    C-x r j p Langsung ke titik yang disimpan dalam register 'p'

Apakah ada cara yang lebih baik? Saya tidak menentang menambahkan beberapa elisp ke .emacsfile saya .

Harvey
sumber

Jawaban:

19

Ini bekerja untuk saya:

  • C-M-auntuk pindah ke awal fungsi; ini menetapkan tanda secara otomatis
  • C-u C-SPC untuk menghapus tanda dan kembali ke posisi sebelumnya
rekado
sumber
2
Bagus! Saya tidak tahu bahwa itu menetapkan tanda untuk saya, dan saya tidak tahu tentang pengubah awalan untukset-mark-command
Harvey
10
Setelah Anda terbiasa menggunakan pop-to-mark-command(yang disebut dengan apa C-u C-SPC), Anda akan bertanya-tanya bagaimana Anda hidup tanpanya. Anda dapat menemukan jalan kembali ke tempat asal Anda dengan mengikuti jejak remah roti yang bahkan Anda tidak tahu akan pergi.
nispio
Memang. Ini khas untuk perintah Emacs untuk mendorong ke cincin tanda jika mereka akan memindahkan Anda jarak sewenang-wenang dari tempat Anda berada, sehingga pengguna harus mengingat pendekatan ini secara umum.
phils