色々移動を試してみた。
色々試してみた。
(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もビルトインのようだ。