19

ほとんどのGUIテキストエディタが機能するように、Emacsにカーソルを画面外に移動させることは可能ですか? これは、私が GUI エディターで Emacs を使用するときに最も気になることの 1 つです。下にスクロールすると、カーソルはバッファの上部によって「前方に押し出されます」。

これはEmacsのアーキテクチャに組み込まれているため、これは完全に不可能だと以前は考えていましたが、次に見たmultiple-cursorsは、セカンダリカーソルに対してまさにこれを行います(スクロール機能がセカンダリカーソルで機能しないようにする場合)カーソル)。複数のカーソルを使用して、隠しバッファにメインカーソルを配置し、実際に編集する効果的なカーソルを使用することは可能でしょうか? それとも、他の巧妙なトリックですか?それとも、私のグーグルが失敗したのかもしれませんが、これは魔法なしで本当にすでに可能ですか?

4

3 に答える 3

6

この問題を解決しようとする、 GNU ELPAと呼ばれる新しいパッケージが利用可能です。scroll-restoreこれまでのところ、いくつかのバグに遭遇しましたが、パッケージはほとんど宣伝どおりに機能しているようです.

でインストールすることでテストできます

M-x package-install RET scroll-restore RET

パッケージのインストール後、マイナー モードを有効にできます。

M-x scroll-restore-mode

Scroll Lock個人的には、信じられないほど適切に思えるので、キーにバインドしています。これは、init ファイルに追加するものです。

(require 'scroll-restore)
(scroll-restore-mode 1)
;; Allow scroll-restore to modify the cursor face
(setq scroll-restore-handle-cursor t)
;; Make the cursor invisible while POINT is off-screen
(setq scroll-restore-cursor-type nil)
;; Jump back to the original cursor position after scrolling
(setq scroll-restore-jump-back t)
;; Toggle scroll-restore-mode with the Scroll Lock key
(global-set-key (kbd "<Scroll_Lock>") 'scroll-restore-mode)

これは、ここに投稿された回答の直接コピーです: https://emacs.stackexchange.com/a/2273/93

于 2014-10-17T00:34:34.810 に答える
2

厳密に言えば、カーソルを画面外に移動することはできません。これは、基になる C コードで許可されていないためです。

これは、あなたの問題は解決できると思います。基本的に、次の 2 つの側面があります。

  • 「カーソルが前方に押された」ときの見た目が気に入らない。カーソルを(一時的に)非表示にすることで、これを回避できます。
  • スクロールしないコマンドを発行するとすぐに、スクロール前の位置に「ジャンプバック」したい。pre-command-hookおそらく、あなたのためにそれを行うパッケージがいくつかありますが、ハッキングすることで自分で行うことができます.

ところで、その機能の一部を提供する Emacs のパッチを歓迎します。他のエディターの「自動ジャンプバック」動作は嫌いですが、「プレスクロール」位置を記録してから、そこにジャンプして戻る方法を提供するとよいでしょう。

于 2013-04-09T13:19:00.960 に答える