Pertanyaan ini awalnya ditanyakan di /programming/15895313/let-emacs-move-the-cursor-off-screen , tetapi semua jawaban yang saya dapat kurang lebih mengatakan "tidak bisa dilakukan" , yang dengan emacs saya tidak terima.
Apakah mungkin membiarkan Emacs memindahkan kursor ke layar, seperti kebanyakan editor teks GUI bekerja? Ini adalah salah satu hal terbesar yang mengganggu saya ketika saya menggunakan Emacs atas editor GUI mana pun. Ketika saya gulir ke bawah, kursor "didorong ke depan" oleh bagian atas buffer.
Saya sebelumnya berpikir bahwa ini benar-benar mustahil, karena ini terprogram dalam arsitektur Emacs, tetapi kemudian saya melihat multi-kursor, yang melakukan hal ini untuk kursor sekunder (dengan asumsi Anda mencegah fungsi gulir dari bekerja pada sekunder) kursor). Apakah mungkin menggunakan beberapa kursor untuk memiliki kursor utama dalam beberapa buffer tersembunyi, dan kursor efektif adalah yang sebenarnya saya sunting? Atau mungkin beberapa trik pintar lainnya? Atau mungkin Googling saya telah mengecewakan saya dan ini benar-benar mungkin terjadi tanpa sihir?
Saya menggunakan terminal emacs, jadi itu seharusnya berfungsi di sana.
Jawaban:
Ada paket baru yang tersedia di GNU ELPA yang disebut
scroll-restore
yang mencoba untuk memperbaiki masalah ini. Ada beberapa perilaku berbeda untuk dipilih, tetapi cara saya mengonfigurasinya sendiri (lihat di bawah) menyebabkan kursor menjadi tidak terlihat selama perintah bergulir, dan kemudian melompat kembali ke lokasi semula ketika saya mulai mengetik lagi.Sejauh ini, saya telah menemukan beberapa bug, tetapi paket tersebut tampaknya berfungsi seperti yang diiklankan sebagian besar. Anda dapat mengujinya dengan menginstalnya dengan
Setelah paket diinstal, Anda dapat mengaktifkan mode minor dengan
Secara pribadi, saya mengikatnya pada Scroll Lockkunci karena tampaknya sangat luar biasa! Inilah yang saya tambahkan ke file init saya:
sumber
Metode yang selalu saya gunakan adalah untuk menetapkan tanda di mana saya ingin melompat kembali ke, dan kemudian ketika saya selesai membaca buffer, saya pop menggunakan tanda
C-u C-SPC
. Bahkan ketika saya lupa untuk menetapkan tanda sebelum berkeliaran, saya menemukan bahwa bermunculan tanda biasanya mendarat saya cukup dekat dengan tempat saya berasal. Ini sebagian disebabkan oleh fakta bahwa beberapa perintah (sepertiisearch
misalnya) menetapkan tanda tanpa Anda sadari. Jadi selama proses pengeditan Anda, Anda secara tidak sengaja meninggalkan sedikit remah roti.Dari dokumentasi:
Saya hampir tidak pernah repot dengan mengatur bookmark atau register, tetapi saya hampir selalu dapat menemukan jalan kembali dari mana saya berasal dengan cepat menggunakan salah satu
C-u C-SPC
ataupop-global-mark
.sumber
scroll-up
danscroll-down
secara otomatis mengatur tanda, sehinggaC-u C-SPC
pasti akan membawa Anda kembali ke tempat asal Anda.Kode berikut cukup baik bagi saya untuk melompat kembali setelah gulir roda mouse:
sumber