小松@東京理科大です.
From: iNOUE Koich! <inoue _at_ ma.ns.musashi-tech.ac.jp>
Subject: [linux-users:50052] Re: XEmacs のカーソル移動
Date: Tue, 30 Mar 1999 16:04:46 +0900
> Hiroyuki Komatsu さんが 99.3.30ごろに
> 「[linux-users:50019] Re: XEmacsのカーソル移動」の件で:
> > 面白そうだったのと, 「ちょっとずれる」という言葉に触発されて, 自分でも書
> > いてみました.
>
> 上下に移動してもカーソル位置を覚えているelispコマンドをどこからか仕入
> れてきて使っていましたが、こちらの方が断然使いやすいです。
お褒めいただき, ありがとうございます. (^^)
調子に乗って, マイナーモードにしてみました.
# 短く収まるってのは, やっぱりうれしい.
--- logical-line.el ----------------------------------------------------
(defvar logical-line-mode nil)
(make-variable-buffer-local 'logical-line-mode)
(if (not (assq 'logical-line-mode minor-mode-alist))
(setq minor-mode-alist
(cons '(logical-line-mode " LogicalLine") minor-mode-alist)))
(defun logical-line-mode (&optional arg refresh)
(interactive "P")
(setq logical-line-mode (if (null arg)
(not logical-line-mode)
(> (prefix-numeric-value arg) 0)))
(if (or refresh (not (functionp 'original-line-move)))
(fset 'original-line-move (symbol-function 'line-move)))
(if logical-line-mode
(fset 'line-move (function logical-line-move))
(fset 'line-move (function original-line-move))))
(defun logical-line-move (arg)
(if (not (or (eq last-command 'next-line)
(eq last-command 'previous-line)))
(setq temporary-goal-column (% (current-column) (1- (window-width)))))
(let ((moved (vertical-motion arg)))
(and (> moved arg) (signal 'beginning-of-buffer nil))
(and (< moved arg) (signal 'end-of-buffer nil)))
(if (> (% (move-to-column
(+ (current-column)
(min temporary-goal-column (- (window-width) 2))))
(1- (window-width)))
temporary-goal-column)
(forward-char -1)))
------------------------------------------------------------------------
M-x logical-line-mode でどうぞ. ドキュメントをそろえて, ホームページでも
公開する予定です.
http://www.ed.noda.sut.ac.jp/~j6396036/linux/
■普通のモードにあって, この論理行モードにないもの.
・変数 track-eol への対応. (しなくてもいいと思う.)
・変数 line-move-ignore-invisible への対応. (outline-mode で使うらしい.
自分が使っていないので, 要望がなければやりません.)
コメントお待ちしております.
小松 弘幸
-----------------------------
xina _at_ TAHOO.ORG
Follow-Ups:
- [linux-users:50265] Re: XEmacsのカーソル移動Hiroyuki Komatsu
- [linux-users:50052] Re: XEmacsのカーソル移動iNOUE Koich!
- Prev by Subject: [linux-users:50095] Re: pppdで二重ログインの禁止( できました)
- Next by Subject: [linux-users:50097] NIC x 2: Ping timeout
- Previous by thread: [linux-users:50052] Re: XEmacsのカーソル移動
- Next by thread: [linux-users:50265] Re: XEmacsのカーソル移動
- Indexes:[Main][Thread]