Emacs中实现vim式简单查找


Emacs中实现vim式简单查找

1 Emacs 中实现 vim 式简单查找

 

1.1 vim 式简查找

在 vim 中当处于命令模式时,按下 'f' 键可以实现简单查找,即在本行内向后查找 'f' 键后所跟*字符*,并将光标跳转到查找命中处。

写道
如文件有内容如下: "for name in dir(sys):"
如操作序列: 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 不好用。

Date: 2013-03-27T15:45+0800

Author: Guotf

Org version 7.9.2 with Emacs version 24

Validate XHTML 1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值