色々移動を試してみた。

 色々試してみた。

(defun skip-space()
  (interactive)
  (let ((eol (save-excursion (goto-eol) (point))))
	(looking-at "[ \t ]*" :regexp t :tail t :limit eol)))

(defun skip-word()
  (interactive)
  (let ((eol (save-excursion (goto-eol) (point))))
	(scan-buffer "[ \t ]" :regexp t :tail t :limit eol))
  (backward-char))

なんとなくアレコレ試してみたけど、skip-chars-forwardとかback-to-indentationでもいいかも。一応試してみた、他のやり方。殆ど同じ動作を実現させる(たい)方法。

;looking-atとかを使ってみた感じ。
(defun skip-word()
  (interactive)
  (while (looking-at "[^ \t ]")
	(forward-char)))

;マッチしないときには行末に移動
(defun skip-word()
  (interactive)
  (let ((eol (save-excursion (goto-eol) (point))))
	(scan-buffer "[^ \t ]*" :regexp t :tail t :limit eol)))

skip-chars-forwardを見つけたので、そっちを使って望みの位置に移動するのを試し。

(defun skip-space()
  (interactive)
  (skip-chars-forward " \t "))

;こっちは駄目なメモ
(defun skip-word()
  (interactive)
  (skip-chars-forward "[^ \t ]*"))

skip-wordは駄目だね。CHARの指定が正規表現じゃないのかもしれない。
looking-atとかlooking-for , scan-buffer,skip-chars-forward似たようなのが沢山あるので、どれを本当は使うべきなのかよく分からない。多分scan-bufferが一番基本っぽいけど。lookng-atもビルトインのようだ。