Pertanyaan Bagaimana cara menggulir baris demi baris di GNU Emacs?


Sederhananya, saya mencoba untuk mendapatkan scrolling di emacs seperti di vim dan sebagian besar editor lainnya; ketika saya misalnya, dua baris dari bawah / atas, dan saya menekan / naik (Ctrl-p,n, ,) itu hanya satu baris ke atas atau bawah, bukan setengah layar.


75
2017-07-15 01:23


asal


Jawaban:


Lihat beberapa saran di EmacsWIki:

(setq gulir-langkah 1
      gulir-konservatif 10.000)

45
2017-07-15 01:30



Jika Anda ingin memposisikan layar dengan tepat, Anda dapat menggunakan Ctrl-L.

  • Secara default, posisi baris saat ini di tengah layar.

  • ESC 0 Ctrl-L memposisikan baris saat ini di atas.


41
2017-07-15 04:33



Saya agak terlambat ke pesta, tetapi jika Anda tidak keberatan menginstal paket itu lancar bergulir (github, juga tersedia di MELPA) mungkin apa yang Anda cari - itu pasti bekerja untuk saya.

Setelah menginstalnya, Anda dapat melakukan pop berikut ini di init.el Anda:

(require 'smooth-scrolling)
(smooth-scrolling-mode 1)
(setq smooth-scroll-margin 5)

Baris terakhir adalah opsional; mulai bergulir dekat tepi layar daripada di atasnya, jadi Anda selalu punya sedikit konteks di sekitar titik. Atur sesuai selera.


35
2018-03-30 22:16



Solusi saya bukan untuk mengubah scrolling default Emac, melainkan untuk membuat perintah urutan kunci dari makro. Dengan cara ini Anda memiliki cara mudah untuk menggulir satu baris pada saat yang Anda inginkan. Tidak ideal, tapi sangat mudah. Kebetulan saja M- (↓) dan M- (↑) tersedia, jadi itulah yang saya gunakan.

Beginilah cara saya melakukannya. Pertama, Anda perlu merekam makro untuk satu baris gulungan, atas dan bawah.

Mulailah makro

C-x ( 

Gulir ke bawah satu

C-u 1 C-v

Hentikan makro

C-x )

Untuk menggulir satu, gunakan

C-u 1 M-v

Selanjutnya Anda harus memberi nama makro.

M-x name-last-kbd-macro

Beri nama ketika diminta seperti:

down-one-line

Kemudian cukup gunakan yang berikut ini untuk mengikat urutan kunci ke nama perintah tersebut:

M-x global-set-key

Dan setelah disuruh, gunakan sesuatu seperti:

M-(down arrow)

Kemudian ia akan menanyakan kepada Anda perintah mana yang ingin Anda ikat, dan Anda harus memberikan nama yang Anda temukan sebelumnya, misalnya, down-one-line.

Di sinilah saya mendapat informasi ini. Anda juga dapat menemukan petunjuk di bawah dan tempat lain tentang menambahkan makro Anda ke file .emacs.

Sini untuk penjelasan definisi makro

Sini untuk cara mengontrol gulir


24
2017-08-04 18:01



Saya telah menggunakan ini di saya .emacs file sejak tahun 2000.

(global-set-key (quote [M-down]) (quote View-scroll-line-forward))
(global-set-key (quote [M-up]) (quote View-scroll-line-backward)) 

Dengan cara ini, saya dapat menjaga perilaku default Emacs serta menggulir satu baris dalam satu waktu, tergantung pada apa yang saya lakukan.

Ini berhasil sampai setidaknya GNU Emacs 22. Saya baru-baru ini meng-upgrade ke Emacs 24 dan menemukan itu View-scroll-line-forward dan View-scroll-line-backward tidak lagi tersedia. Setelah beberapa berburu, saya menemukan pekerjaan scroll-up-line dan scroll-down-line. Jadi jika Anda menggunakan Emacs 24, Anda dapat menggunakan ini.

(global-set-key (quote [M-down]) (quote scroll-up-line))
(global-set-key (quote [M-up]) (quote scroll-down-line)) 

Saya kebanyakan melewatkan Emacs 23, jadi jika itu adalah versi yang Anda gunakan, Anda dapat bereksperimen dengan kedua hal di atas.

catatan: scroll-up-line sebenarnya menggulir satu baris turun, karena penyangga sedang dipindahkan satu baris ke atas.


19
2018-04-26 05:01



Saya rileks tombol panah saya untuk melakukan operasi pengguliran.

(global-set-key [up] (lambda () (interactive) (scroll-down 1)))
(global-set-key [down] (lambda () (interactive) (scroll-up 1)))

(global-set-key [left] (lambda () (interactive) (scroll-right tab-width t)))
(global-set-key [right] (lambda () (interactive) (scroll-left tab-width t)))

12
2017-07-15 06:16



Simples melakukan ini:

(global-set-key [M-up] (lambda () (interactive) (scroll-up 1)))
(global-set-key [M-down] (lambda () (interactive) (scroll-down 1)))

kemudian kursor meta naik ke atas dan kursor ke bawah bergerak ke bawah.

QED. Tidak yakin apa yang semua orang di atas merokok!


11
2018-03-06 10:37



Saya memiliki hal-hal berikut di file .emacs saya untuk mengaktifkan ctrl-up yang bagus, ctrl-down scrolling behavior. Saya juga menggunakan ini untuk mousewheel.

(defun scroll-down-in-place (n)
  (interactive "p")
  (previous-line n)
  (scroll-down n))

(defun scroll-up-in-place (n)
  (interactive "p")
  (next-line n)
  (scroll-up n))

(global-set-key [mouse-4] 'scroll-down-in-place)
(global-set-key [mouse-5] 'scroll-up-in-place)
(global-set-key [C-up] 'scroll-down-in-place)
(global-set-key [C-down] 'scroll-up-in-place)

4
2017-07-15 19:07



M-x customize-variable scroll-conservatively

Setel ke 1.

Anda tidak benar-benar ingin melakukan ini.


2
2017-07-15 01:35



Agar scroll "vim" dimasukkan ke file .emacs Anda:

(defun next-line-and-recenter () (interactive) (next-line) (recenter))
(defun previous-line-and-recenter () (interactive) (previous-line) (recenter))
(global-set-key (kbd "C-n") 'next-line-and-recenter)
(global-set-key (kbd "C-p") 'previous-line-and-recenter)

2
2018-06-24 14:36