15

Emacs では、矢印キーを使用してポインターを 1 行上下に移動できます。そのため、Cn と Cp を再定義して、一度に 5 行ずつ上下に移動したいと考えています。

私は Emacs の使い方を学び始めたばかりで、elisp は私にとって非常になじみのないものです。GNU Emacs Lisp リファレンスを使用してみ ましたが、キーストロークを複数のコマンドにバインドする方法が見つかりませんでした。

これが私がこれまでに持っているものです(上に移動する定義に集中しています):

(global-set-key "\C-p"  '(loop for i in '(1 2 3 4 5) do ('previous-line))) 

しかし、これで Cp を押すと、「間違った型の引数です」というエラー メッセージが表示されます。

助言がありますか?

ありがとう!

4

2 に答える 2

18

これらの関数 (私が信じているnext-lineprevious-line) は、Cu でオプションの引数を受け入れるので、それ(next-line 5)はあなたが望むことをすると思います。

編集:だから私は試してみたところ、それは

(global-set-key (kbd "C-n")
    (lambda () (interactive) (next-line 5)))

Cp と も同様previous-lineです。

(電話のキーボードでテキストエリアにコードを書くのは簡単ではありません^^)

于 2010-04-17T07:07:53.373 に答える
1

私のemacs構成の警告とPeter Ajtaiからのコメントに従って、私は私のforward-lineから使用するバージョンを提案しますinit.el

(global-set-key (kbd "C-n")
    (lambda () (interactive) (forward-line  5)))
(global-set-key (kbd "C-p")
    (lambda () (interactive) (forward-line -5)))

もちろんforward-char、方向が違うだけで同じように動作する もあります。

欠けている唯一のものはcomplex-forward、引数として複素数を取り、4 つの方向すべてにナビゲートするために使用できる :P

于 2016-05-31T12:34:11.727 に答える