簡単に言うと、vimや他のほとんどのエディターのようにemacsでスクロールしようとしています。私は、トップ/ボトムから2行は、例えばだ、と私は、アップ/ダウンを押したときに(Ctrl- 、p、n、↑)↓それだけで1行上または下に、いない画面の半分を行きます。
z.
、Emacsの感覚を得るためにvimでより頻繁に使用することをお勧めします;-)珍しいかもしれませんが、実際には、IMHOを1行ずつスクロールするよりも便利です。
簡単に言うと、vimや他のほとんどのエディターのようにemacsでスクロールしようとしています。私は、トップ/ボトムから2行は、例えばだ、と私は、アップ/ダウンを押したときに(Ctrl- 、p、n、↑)↓それだけで1行上または下に、いない画面の半分を行きます。
z.
、Emacsの感覚を得るためにvimでより頻繁に使用することをお勧めします;-)珍しいかもしれませんが、実際には、IMHOを1行ずつスクロールするよりも便利です。
回答:
EmacsWIkiに関するいくつかの提案を参照してください。
(setqスクロール-ステップ1 スクロール-控えめに10000)
scroll-conservatively
。これに対する警告は少し奇妙です-それが問題を引き起こす場合は、init.elから行を削除するのは簡単です!
画面を正確に配置したい場合は、Ctrl-Lを使用できます。
デフォルトでは、現在の行を画面の中央に配置します。
ESC 0 Ctrl-Lは、現在の行を一番上に配置します。
私はパーティーに少し遅れていますが、パッケージをインストールしてもかまわない場合は、スムーズスクロール(github、MELPAでも利用可能)があなたが探しているものかもしれません-それは確かに私にとってはうまくいきます。
インストールしたら、init.elに次をポップできます。
(require 'smooth-scrolling)
(smooth-scrolling-mode 1)
(setq smooth-scroll-margin 5)
最後の行はオプションです。画面の端ではなく端の近くでスクロールを開始するので、ポイントの周りに常に小さなコンテキストがあります。好みに合わせて調整します。
私の解決策は、Emacのデフォルトのスクロールを変更するのではなく、マクロからキーシーケンスコマンドを作成することです。このようにして、必要なときに一度に1行ずつスクロールする便利な方法があります。理想的ではありませんが、とても簡単です。たまたまM-(↓)とM-(↑)が使えるので、それを使ってみました。
これが私がやった方法です。まず、上下に1行スクロールするマクロを記録する必要があります。
マクロを開始
C-x (
1つ下にスクロールします
C-u 1 C-v
マクロを停止します
C-x )
1つ上にスクロールするには、
C-u 1 M-v
次に、マクロに名前を付ける必要があります。
M-x name-last-kbd-macro
次のようにプロンプトが表示されたら、名前を付けます。
down-one-line
次に、以下を使用して、キーシーケンスをそのコマンド名にバインドします。
M-x global-set-key
プロンプトが表示されたら、次のようなものを使用します。
M-(down arrow)
次に、バインドするコマンドを尋ねられます。たとえば、1行下など、以前に発明した名前を付ける必要があります。
ここで私はこの情報を入手しました。マクロを.emacsファイルに追加する方法については、以下および他の場所で説明することもできます。
マクロ定義の説明はこちら
スクロールを制御する方法についてはこちら
私は.emacs
2000年からファイルでこれらを使用しています。
(global-set-key (quote [M-down]) (quote View-scroll-line-forward))
(global-set-key (quote [M-up]) (quote View-scroll-line-backward))
このようにして、Emacsのデフォルトの動作を維持するだけでなく、実行内容に応じて一度に1行ずつスクロールすることができます。
これは少なくともGNUEmacs22まで機能しました。最近Emacs24にアップグレードしたところView-scroll-line-forward
、それView-scroll-line-backward
が利用できなくなっていることがわかりました。いくつか探した後、私はスクロールアップラインとスクロールダウンラインが機能することを発見しました。したがって、Emacs 24を使用している場合は、これを使用できます。
(global-set-key (quote [M-down]) (quote scroll-up-line))
(global-set-key (quote [M-up]) (quote scroll-down-line))
私はほとんどEmacs23をスキップしたので、それが使用しているバージョンである場合は、上記の両方を試すことができます。
注:バッファーは1行上に移動されるため、scroll-up-line
実際には1行下にスクロールします。
矢印キーを再バインドして、スクロール操作を実行します。
(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)))
Simplesはこれを行います:
(global-set-key [M-up] (lambda () (interactive) (scroll-up 1)))
(global-set-key [M-down] (lambda () (interactive) (scroll-down 1)))
次に、メタカーソルが上に移動し、メタカーソルが下に移動します。
QED。上記のすべての人々が何を吸っていたのかわからない!
私の.emacsファイルには次のものがあり、ctrl-up、ctrl-downのスクロール動作を有効にしています。これはマウスホイールにも使用します。
(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)
「vim」をスクロールさせるには、これを.emacsファイルに入れます。
(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)
を使用するのは煩わしい場合があるためM-up、M-downこれらのコマンドをオーバーロードするorg-modeに干渉するためです。この問題を回避するために、私は個人的にM-page-up M-page-down「」を組み合わせたコマンドを使用します。ここでは、1行まで上下にスクロールするように定義しました。
;;;scroll by `number-of-lines' without the cursor attached to the screen
(global-set-key [M-prior] (lambda () (interactive) (let ((number-of-lines 1))
(scroll-down number-of-lines)
(forward-line (- number-of-lines)))))
(global-set-key [M-next] (lambda () (interactive) (let ((number-of-lines 1))
(scroll-up number-of-lines)
(forward-line number-of-lines))))
;;;scroll by `number-of-lines' with the cursor attached to the screen
(global-set-key [S-M-prior] (lambda () (interactive) (let ((number-of-lines 1))
(scroll-down number-of-lines))))
(global-set-key [S-M-next] (lambda () (interactive) (let ((number-of-lines 1))
(scroll-up number-of-lines))))
M-x customize-variable scroll-conservatively
1に設定します。
しかし、あなたは本当にこれをしたくありません。
スクロールのような効果をすばやく作成する方法を探している場合は、入力しC-n
てC-l
順番にカーソルを下に移動し、中央に配置します。
マウスを使用してもかまわず、スクロールホイールがある場合は、次のいずれかの方法で変数mouse-wheel-scroll-amountをカスタマイズできます。
Ch v mouse-wheel-scroll-amount([カスタマイズ]をクリックし、値を[特定の行数] 1、ApplyAndSaveに変更します。)
または、.emacsに次の行を追加します: '(mouse-wheel-scroll-amount'(1((shift)。1)((meta))((control)。text-scale)))
https://www.emacswiki.org/emacs/Scrollingにリストされている可能性はたくさんあり ます