[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:50096] Re: XEmacsのカーソル移動


小松@東京理科大です.

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

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: