如果快速向前/向后查找单个字符

emacs里如果实现vim里f/F(向前/向后查找字符)的功能

C-s C-r

搜索完了得按enter才能编辑,能跳过去后就可以直接编辑么

1 个赞
;;;;绑定到自己喜欢的按键上
;;; 向前搜索
(defun my-look-forward-char (arg char)
  (interactive "*p\ncZap: ")
  (let ((p (point)))
    (and (search-forward
          (char-to-string char) (point-at-eol)  t arg)
	 (progn
           (backward-char)
           (if (= p (point))
               (my-look-forward-char 2 char))))))
;;; 向后搜索
(defun my-look-backward-char (char)
  (interactive "c")
  (search-forward
   (char-to-string char) (point-at-bol)  t -1))
(search-forward string around fail count)

  查询目标字符串,并在目标字符串的最后一个字符处设置位点
  返回 t 表示查询成功,移动位点只是附带效果

  string: 要查找的内容,必须是字符串
  around: 查询范围, 它被指定为缓冲区中的某个位置,
            设定为 nil: 查询到缓冲区末尾
  fail:   查询失败该怎么办,
            设定为 nil: 如果查询就发出一个出错信号
        设定为 t:查找失败返回 nil
  count:  待查找字符串出现的次数
char-to-string 就是将字符转换成字符串的函数

point-at-eol  当前行行尾 point

M-x evil

多谢,我理解下代码

弃了evil,感觉evil把事情搞复杂了

不客气, 我刚刚补充了一些函数的说明

1 个赞

see this

1 个赞

不仅是当前文件 而是整个目录 速度还超快的

看看jump-char

这么少的star,你怎么找到的,

俺是初学者,这个可以加入我的研究材料

avy-goto-char-in-line 这个函数可以满足需要: Jump to the currently visible CHAR in the current line.

1 个赞