2

Cv がカーソルをウィンドウの高さの半分下に移動する関数にバインドするようにしようとしていますが、これについて何か助けはありますか?

4

3 に答える 3

3

私が見つけた最も簡単な方法は、View.el を使用することです。これはデフォルトで利用できるはずです (少なくとも私にとってはそうでした)。ヒント: http://www.emacswiki.org/emacs/HalfScrolling

次に、キーバインディングを実行して、デフォルトの動作を変更します。私の Emacs init ファイルには以下が含まれるようになりました:

;; Scroll only half-pages.
(require 'view)
(global-set-key "\C-v"   'View-scroll-half-page-forward)
(global-set-key "\M-v"   'View-scroll-half-page-backward)
于 2013-10-30T18:21:15.837 に答える
2

http://www.emacswiki.org/emacs/HalfScrollingから:

デフォルトでは、Emacsはスクロールアップとスクロールダウンでほぼ全画面をスクロールします。個人的には一度に半ページスクロールしたいのですが、残念ながらきれいにスクロールする方法がわかりませんでした。

画面一杯でスクロールするときに保持する連続性の行数を制御するnext-screen-context-lines変数があります。この変数をwindow-height/2に設定することで当面の問題を解決できますが、window-heightは一定ではないため、next-screen-context-linesを使用するたびに計算する必要があります。

私が思いついた唯一の実用的な解決策は、次の厄介なハックです。それはまだ何もないよりはましなので、ここに来ます:

(defun window-half-height ()
  (max 1 (/ (1- (window-height (selected-window))) 2)))

(defun scroll-up-half ()
  (interactive)
  (scroll-up (window-half-height)))

(defun scroll-down-half ()         
  (interactive)                    
  (scroll-down (window-half-height)))

(global-set-key [next] 'scroll-up-half)
(global-set-key [prior] 'scroll-down-half)

global-set-keyあなたはそれを使っ"\C-v"てあなたが望むものを手に入れるためにそれを変えることができるはずです。同じ問題に対する他のいくつかの解決策がそのページにあります、それをチェックしてください。

于 2012-11-07T17:03:56.043 に答える
2

それがあなたがしたいことなら、これはそれを行います:

(global-set-key [(control ?v)]
 (lambda () (interactive (next-line (/ (window-height (selected-window)) 2)))))
于 2012-11-07T21:24:13.963 に答える