トップ «前の日記(2009-09-23(Wed)) 最新 次の日記(2009-09-27(Sun))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2009-09-26(Sat) はれ

exchange-point-and-mark

バッファ内でのカーソル移動で遊ぶ。
14年前のアスキーの本(Edition 1.04)と、Emacs-23.1.1 のinfo(Edition 3.08)を比較しながら。

(goto (point-min))でバッファの先頭に、(point-max)で末尾に移動する。
(point-min)は1を返す。
(point)で現在の位置を返す。

4.2の simplified-beginning-of-buffer () では (というか、M-<なbeginning-of-buffer もそうだけど)、 元のカーソル位置に戻るコマンドがexcange-point-and-markで、 キーバインドはC-xC-xになっていた。
しかし、transient-mark-mode が "t" だと、バッファの先頭から元の位置まで 範囲選択になってしまうみたい。C-uC-xC-xすればいいようだけど。
で、少し手を入れてみた.

(defun simplified-beginning-of-buffer ()
  "Move point to the beginning of the buffer;
   leave mark at previous position."
  (interactive)
  (setq this-position-of-cursor (point))
  (push-mark)
  (goto-char (point-min)))
 
(local-set-key "\M-<" 'simplified-beginning-of-buffer)
 
(defun return-previous-position ()
  (interactive)
  (goto-char this-position-of-cursor))
 
(local-set-key "\C-x\C-x" 'return-previous-position)

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。