`
forever8tf
  • 浏览: 96874 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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
分享到:
评论

相关推荐

    findr.vim:受(emacs Helmivyido)启发的(neo)vim渐进式缩小引擎

    ( )vim的渐进式收窄引擎,受 , 和启发 要求 nvim :版本> 0.4.3 vim:版本> 8.0,+ lua 注意截至目前,vim不支持浮动fidnr窗口。 macos / Linux 安装 使用 : Plug ' conweller/findr.vim ' 指令 文件查找器:...

    Hacking Vim

    VIM是VI的优秀后裔,虽然VI的后裔中不仅仅包括VIM,但是VIM是实现对VI的兼容性最好的编辑器,其他的后裔还包括STEVIE, ELvis, NVi, Vile等。除了实现对VI的兼容性外,VIM还扩展了很多的功能,包括语法高亮,代码折迭...

    fiplr:[已弃用]项目包中的Emacs模糊查找

    Fiplr-在Emacs的项目中查找 该项目已被弃用,转而使用 Fiplr(发音为FIP-ler,如在Project中的Find所示)是一个Emacs软件包,可让您使用模糊匹配在复杂的目录树中查找和打开文件。 一个关键的设计目标是使Fiplr真正...

    dotfiles::rocket:我的(vim + tmux + zsh + emacs)安装程序!

    :用于查找文件,字符串或历史记录的模糊查找器color :更改终端和Vim配色方案tmux :终端多路复用器来组织会话zsh-autosuggestions :建议以前输入的命令zsh-history-substring-search :按子字符串搜索上一个命令...

    Vim 配置包括所有的配置文件和扩展 适合windows linux

    这个配置是根据网上“最N vim配置“修正了一些错误和增加了一些我认为方便的设置,功能确实很强,感谢Amix,本人保留他(她)的说明,里面的配置都有说明,很容易就懂,建议大家好好去看一遍,包你有长进。 运行环境 ...

    cquery:由libclang支持的支持数百万行代码库的CC ++语言服务器。 Emacs,Vim,VSCode和其他具有语言服务器协议支持的对象。 交叉引用,完成,诊断,语义突出显示等

    cquery几乎实现了整个语言服务器协议,并提供了一些额外的启动功能: 代码完成(带有签名帮助和代码片段) 查找/,和近似搜索诊断代码操作(clang FixIts) 预处理器跳过的区域#include自动完成,未定义类型,包括...

    《学习Vi编辑器(第六版)》.pdf

    这本书将带领读者快速地学习基本的编辑、光标移动以及全局查找与替换操作,然后是更灵活的vi功能,以及如何在vi中使用功能强大的ex行编辑器来提高编辑技巧。为了便于读者参考,本书第六版还在每个相应章节的最后增加...

    Linux 命令入门文档.zip

    通常而言 Vim (`vi`) 会是你最好的选择,毕竟在终端中编辑文本时 Vim 是最好用的工具(甚至大部分情况下 Vim 要比 Emacs、大型 IDE 或是炫酷的编辑器更好用)。 - 学会如何使用 `man` 命令去阅读文档。学会使用 `...

    CodeMirror-5.60.0在线代码编辑器

    能够做到代码高亮、自动补全,语法检测,代码折叠,可配置键盘事件,vim, emacs, sublime text 风格、能完成查找替换,括号匹配,分栏显示,显示行号,自行配置字体大小和风格 最基本功能,需引入codemirror.js和...

    学习C语言要掌握的几个库

    1、学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑器,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。 2、学会makefile文件的...

    国产优秀文本编辑器everedit

    支持Emacs式按键,可以通过插件模仿VIM 列模式(列插入、删除、拷贝、粘贴),移动鼠标时请时按住ALT键 无限撤销、重做 多种主题,总有一款适合您 代码折叠,支持手动和自动两种模式 多文件查找,查找结果支持高亮 ...

    bash-language-server:Bash的语言服务器

    基于Bash语言服务器实现及其带有集成的。 产品特点 跳转到声明 查找参考 代码大纲和显示符号 突出显示 代码完成 简单的诊断报告 悬停标志的说明文件 工作区符号 重命名符号 安装 npm i -g bash-language-...

    cfm::cactus:简单快速的TUI文件管理器,没有依赖项

    仙人掌文件管理器 Cactus File Manager(cfm)是一种TUI文件管理器,其目标是利用Vi启发式的绑定,使之简单,轻松且无肿胀。 是否应该使用它取决于您是否喜欢名称,开发或屏幕截图,就像使用所有软件一样。 注意:...

    geeknote:Evernote的控制台客户端

    使用任何编辑器直接在控制台中编辑笔记:nano,vim,emacs,mcedit; 与Evernote同步您的本地文件,目录; 将Evernote与cron或任何脚本一起使用。 Geeknote是用Python编写的,因此您可以在拥有Python的任何地方...

    neo-mc:具有脚本和其他功能的Midnight Commander前叉

    使隐藏的宝石– mcedit –发光并成长,以便能够与Vim和Emacs竞争, 在mcedit和mc中添加脚本语言以实现此目的, 添加一些用脚本语言编写的有意义的插件。 请查看以获得计划的增强功能的列表。 也许您想实现其中之...

    浮渣:基于终端的多标签文本编辑器

    它并不是要与经验丰富的文本编辑器(例如Emacs或Vim)(因此名称为“ Scum”)竞争。 话虽如此,它仍然是一个基于终端的全功能编辑器! 它可以用于快速编辑和全面开发。 总体而言,写作非常有趣,并且是一次很棒的...

    nb:CLI纯文本笔记,书签和存档,以及加密,过滤和搜索,Git支持的版本控制和同步,Pandoc支持的转换等

    使用nb ,您可以使用Vim,Emacs,VS Code,Sublime Text和您喜欢的任何其他文本编辑器编写注释。 nb可在任何标准Linux / Unix环境中使用,包括通过WSL的macOS和Windows。 可以安装以增强功能,但是如果没有它们, ...

    LINUX命令编辑器与SHELL编程(中文)01

     提供了vim和emacs的详细指南,目的是为了帮助读者提高编辑效率;  大量练习将有助于提高读者的动手能力并获得自信心;  介绍了如何使用Apt、yum和BitTorrent自动更新系统;  还介绍了gawk、sed、find、sort、...

    System-C-1:用于 http 的 System ANSI C 课程的存储库

    Vim 和 Emacs 作为 IDE。 “火焰战争”。 在课程中,我们将介绍用于开发过程的不同系统工具,如 grep、cat、tail 等。 项目的构建、依赖解决的工具、构建软件项目的问题。 来自设备、控制台、套接字的 I/O。 ...

Global site tag (gtag.js) - Google Analytics