この動作を可能にするパッケージは知りませんが、これを行う1つの方法があります。
にバインドC-h k C-a
されていることを発見するために押してください。これは、私たちが変更する必要がある関数です---または単に「最初に移動する」部分を実装するために使用します。同様に、私はを見つけることができます。これは、上下に移動するために使用されます。C-a
move-beginning-of-line
C-h k
forward-line
関数をキーにバインドできるようにするには、その関数をコマンドにする必要があるため、interactive
特別なフォームを使用する必要があります(インタラクティブの使用を参照)。C-u
前置引数を取るためには、"P"
コード文字が必要です。
これとbolp
(行の先頭にあるeolp
かどうかを確認)および(行の末尾にあるかどうかを確認する)を組み合わせて、次のように書くことができます。
(defun my-move-beginning-of-line (arg)
(interactive "P")
(when (bolp) (previous-line (if arg -1 1)))
(move-beginning-of-line nil))
(defun my-move-end-of-line (arg)
(interactive "P")
(when (eolp) (forward-line (if arg -1 1)))
(move-end-of-line nil))
これで、再バインドC-a
しC-e
てこれらを呼び出すことができます。
(global-set-key [remap move-beginning-of-line] #'my-move-beginning-of-line)
(global-set-key [remap move-end-of-line] #'my-move-end-of-line)
または、とにアドバイスを追加することもできます。move-beginning-of-line
move-end-of-line
C-a
行くために「アップ」とC-e
「ダウン」を行くために?つまり、「次の行」の意味は、項目1と2で同じですか。