Emacs中实现vim式简单查找
Table of Contents
1 Emacs 中实现 vim 式简单查找
1.1 vim 式简查找
在 vim 中当处于命令模式时,按下 'f' 键可以实现简单查找,即在本行内向后查找 'f' 键后所跟*字符*,并将光标跳转到查找命中处。
写道
如文件有内容如下: "for name in dir(sys):"
如操作序列: 1.在命令模式中按下 'f' 2.按下 'a' 操作完毕后,光标跳转到 'name' 中 'a' 处。
如操作序列: 1.在命令模式中按下 'f' 2.按下 'a' 操作完毕后,光标跳转到 'name' 中 'a' 处。
1.2 Emacs 中实现
在 Emacs 中没有编辑模式的区分,所以无法使用 'f' 等单个字母键完成上述功能,可将此功能绑定到组合键上,如 'C-3'等。 用*Emacs Lisp*实现 vim 式的向后查找,代码如下:
(defun terry-vim-find (char)
"vim like find. In vim type 'f' then type a char then find the char in this line."
(interactive "k")
(if (string= (terry-get-point-string (point)) char)
(search-forward char nil t 2)
(search-forward char nil t 1))
(goto-char (1- (point)))) 代码很简单,使用了 Emacs 内置的 search-forward 函数。这里值的注意的一点时,使用 search-forward 时,*如果光标位置的字符与所搜索的字符一样*,则 search-forward 不会继续向后搜索,光标保持不动。 程序中进行了一次判定,当 搜索字符 与 光标位置字符 一样时,使用 search-forward 2次。
1.3 总结
org-mode 不好用。
本文介绍如何在Emacs中实现类似Vim的简单查找功能。通过定义Emacs Lisp函数,用户可以在当前行向后查找指定字符,并将光标定位到查找到的位置。此功能通过组合键触发,为Emacs用户提供了一种接近Vim体验的方法。
703

被折叠的 条评论
为什么被折叠?



