3

私のジャーナルに日付を挿入するために、私のemacsドットファイルに機能があります。追加した後、数行戻ってカーソルを日付の下に置きたいと思います。関数でそれを行うにはどうすればよいですか?

(defun ddd ()
  "Insert date at point journal style."
  (interactive)
  (insert (format-time-string "[%Y-%m-%d %a]"))
  (insert "\n")
  (insert "\n")
  (insert "\n")
  (insert "** end\n")
  (gobacktwolineshere))

何か案は?

4

4 に答える 4

10

forward-line具体的には、関数が必要です

(forward-line -2)

2 行戻ります。詳細については、「C-h f forward-line RETinside 」と入力してemacsください。ポイントを残した場所によっては、行頭に到達しない場合があります。これが必要な場合は、 への呼び出しを追加しますbeginning-of-line

于 2012-10-23T08:59:17.180 に答える
5

Emacsにインタラクティブにそれを行うように指示できる場合(たとえば、この場合、<up>またはC-pこの場合)、接頭辞を付けることで、Emacsにそれを入力したときに何をするかを尋ねることができることを覚えておいてくださいC-hk

この場合、Emacsはそれらのキーがコマンドprevious-lineを実行することを通知します。

Lispプログラムでこれを使用することを考えている場合は、 forward-line代わりに負の引数を使用することを検討してください。通常、使用が簡単で信頼性が高くなります(ゴール列などに依存しません)。

于 2012-10-23T11:18:07.257 に答える
2

save-excursionより堅牢にするために使用したい場合があります。

(defun ddd ()
  "Insert date at point journal style."
  (interactive)
  (insert (format-time-string "[%Y-%m-%d %a]\n"))
  (save-excursion (insert "\n\n** end\n")))
于 2012-10-23T13:09:10.383 に答える
1

戻りたい文字数がわかっている場合は、 を使用できます(backward-char 9)

于 2012-10-23T08:55:51.110 に答える