`
insertyou
  • 浏览: 912437 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Best of VIM Tips(译注) - 连载6 查找(e)

阅读更多

[翻译]

" search for declaration of subroutine/function under cursor

" 查找光标下子程序/函数的声明

:nmap gx yiw/^\(sub\<bar>function\)\s\+<C-R>"<CR>

[注解]

:help :nmap

:help iw

:help <Bar>

这个映射中的大部分内容在前面都介绍过。它的思路是先把光标下的单词拷贝到无名寄存器,然后在这个单词前加上sub前缀或function前缀进行查找。

nmap用来建立一个normal下的键映射。

iw则用来选择一个单词。其它的文本对象,可以通过“:help object-select”查询。

<bar>用来代表“|”字符,在map命令中经常会用到这种表示方法,详情参阅“:help <>”。

理解了这个键映射的原理后,你可以按自己的需要对其进行修改。

[翻译]

" multiple file search

" 多文件查找

:bufdo /searchstr/ : use :rewind to recommence search

使用:rewind重新开始搜索

[注解]

:help :bufdo

:help :rewind

这个命令在缓冲区列表中的每个缓冲里执行查找。

:rewind命令会跳到参数列表的第一个文件。所谓参数列表,是指你在启动VIM时给出的多个文件名,详见“:help argument-list”。

[翻译]

" multiple file search better but cheating

" 更好的多文件查找技巧

:bufdo %s/searchstr/&/gic : say n and then a to stop

输入n然后输入a以停止查找

[注解]

:help :s

:help s/\&

:help :s_flags

这个命令颇具技巧,它实际上是用替换命令实现在多个缓冲区中查找。它用起来比上面的tip友好多了。

输入这条命令后,会挨个遍历每个符合项,需要结束查找时,按a。这个命令虽然查找起来方便,但一旦按a中途退出,就会进行替换,导致文件的改变标记被置位(文件实际内容并没发生变化,因为在替换时使用的是原内容)。

在后面的替换一节会详细介绍:s命令。

[翻译]

" How to search for a URL without backslashing

" 如何不使用反斜线查找 URL

?http://www.vim.org/ : (first) search BACKWARDS!!! clever huh!

首先向上查找!!!聪明啊!!!

[注解]

:help ?

在查找目录、或网站链接之类的字符串时,因为这些内容中含有“/”,如果用“/”命令查找,则需要对里面的“/”进行转义,很麻烦。

如果用“?”查找就可以绕开转义符,多省事!

如果要查找类似“c:\a\b\c\d\e”的字符串,这样做也许会简单些:/<C-R>=escape('c:\a\b\c\d\e', '\')

上面的<C-R>是需要按CTRL-R输入的。

[翻译]

" Specify what you are NOT searching for (vowels)

" 指定不要查找什么

/\c\v([^aeiou]&\a){4} : search for 4 consecutive consonants

查找4个连续的辅音字母

[注解]

:help /\c

:help /\v

:help /\a

这个正则式用来查找4个连续的辅音字母。

它运用了两个修辞用的元字符,“\c”表示对其后面的内容忽略大小写,“\v”表示会将其后的内容中所有 '0'-'9''a'-'z''A'-'Z' '_' 之外的字符都当特殊元字符对待,也就是说,“(”相当于“\(”,“&”相当于“\&”,“{”相当于“\{”;这样可以减少转义字符“\”的数目,输入起来方便多了。如果在“\v”后确实要用这些字符的本义,就需要在字符加转义字符“\”,以得到本义。

[翻译]

/\%>20l\%<30lgoat : Search for goat between lines 20 and 30 *N*

在第20行到第30行间查找goat

[注解]

:help /\%l

这个正则式在指定的行范围内查找。

\%>20l”表示大于20行,“\%<30l”表示小于30行。

[翻译]

/^.\{-}home.\{-}\zshome/e : match only the 2nd occurence in a line of "home" *N*

只匹配一行中第二次出现的"home"

[注解]

这个正则式只匹配行中第二次出现的“home”,这个正则式中用到的元字符在前面都介绍过。

[翻译]

:%s/home.\{-}\zshome/alone : Substitute only the occurrence of home in any line *N*

只替换任意行中 (第二次)出现的"home"

[注解]

:help :s

此命令替换该文件所有行中第二次出现的“home”。因为“:s”命令没有使用“g”选项,所以只替换行中第一个符合匹配的字符串。

因此,对于类似这样的行“my home directory is /home/easwy. His home directory is /home/test”,即使“home.\{-}\zshome”中没有使用“^”来指定行首,它仍然只替换第二次出现的“home”。

[参考文档]

1. http://www.rayninfo.co.uk/vimtips.html

2. http://groups.google.com/group/Vim-cn/msg/f72fba0645955101?

3. VIM帮助文件

4. http://vimcdoc.sourceforge.net/

[尾记]

本文可以自由应用于非商业用途。转载请注明出处。

原文链接:http://blog.csdn.net/easwy

分享到:
评论

相关推荐

    VMware-VIM-all-6.7.0-15976714.txt

    VMware-VIM-all-6.7.0-15976714 原版镜像 .................................................................................................................

    VMware-VIM-all-6.5.0-14020092.txt

    vmware vcenter6.5 for windows版本。 VMware-VIM-all-6.5.0-14020092

    vim-common-7.4.629-7.el7.x86_64.rpm

    vim-common-7.4.629-7.el7.x86_64.rpm

    vim键盘图(vi-vim-cheat-sheet)

    vim键盘图 . 键盘布局彩图(打出来参考,很方便) vi-vim-cheat-sheet.gif vi-vim-tutorial-1.gif vi-vim-tutorial-2.gif vi-vim-tutorial-3.gif vi-vim-tutorial-4.gif...vi-vim-tutorial-6.gif vi-vim-tutorial-7.gif

    vim-powerline-develop

    **vim-powerline-develop** 是一个针对 Vim 编辑器的扩展插件,它属于 Vim 插件中的 **powerline** 家族。Powerline 是一个非常流行的增强型状态栏插件,它为 Vim、Emacs 和其他软件提供了一个美观、信息丰富的状态...

    vim-tmux-focus-events, 使终端vim和tmux更好地协同工作.zip

    vim-tmux-focus-events, 使终端vim和tmux更好地协同工作 tmux-focus-events.vimFocusGained 和 FocusLost 自动命令事件在终端vim中不工作。 这个插件在使用vim内部Tmux时恢复它们。以下是相关内容:vim fugitive插件...

    Atom-atom-vim-mode-plus,vim.zip

    Atom-atom-vim-mode-plus是针对Atom文本编辑器的一个扩展插件,主要目的是增强其内置的VIM编辑模式。VIM(Vi Improved)是一种高度可配置的文本编辑器,以其高效的操作方式和丰富的命令集而闻名。在Atom中,VIM模式...

    vim-for-server, .vimrc, 简单配置服务器,不带插件.zip

    vim-for-server, .vimrc, 简单配置服务器,不带插件 vim-for-servervimrc,简单配置服务器,不带插件。简介这个存储库是 k-vim的简化版本。只删除所有插件,保留基本配置。屏幕截图 安装 。 如果有必要,备份旧的. ...

    VMware-VIM-all-6.7.0-9451876.txt

    VMware vSphere 6.7 百度网盘链接及提取 码

    Best+of+VIM+Tips(译注).pdf

    以上就是对文件《Best+of+VIM+Tips(译注).pdf》中的VIM编辑器相关知识点的总结。VIM提供的这些替换命令和操作技巧可以大幅提高文本处理的效率,是学习VIM编辑器时需要掌握的重要内容。在实际使用中,合理运用这些...

    VMware-VIMSetup-all-5.5.0-1312299

    根据提供的文件信息,我们可以推断出这份资料与VMware vCenter Infrastructure Manager (VIM) Setup 5.5.0版本有关。尽管描述部分没有提供太多技术细节,但从标题和其他信息中,我们可以提炼出一系列与VMware ...

    vim-enhanced-7.4.629-8.el7_9.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    vim-atom-dark, 一个由 Atom 黑暗主题默认启发的vim主题.zip

    vim-atom-dark, 一个由 Atom 黑暗主题默认启发的vim主题 vim-atom-dark一个由 Atom 黑暗主题默认启发的vim主题。 在 .vim 文件夹中克隆这个文件或者将 colors/atom-dark.vim 文件放在 colors/ 中。

    vim8.0.zip --Linux-CentOS7离线安装VIM及相关依赖包

    Linux-CentOS7离线安装VIM及相关依赖包 vim-8.0.zip gpm-libs-1.20.7-6.el7.i686.rpm ncurses-5.9-14.20130511.el7_4.x86_64.rpm ncurses-base-5.9-14.20130511.el7_4.noarch....vim-enhanced-7.4.629-6.el7.x86_64.rpm

    vim-minimal-8.0.1763-16.el8.x86_64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    vim-markdown-toc, 用于生成 Markdown 文件目录的vim 7.4 插件.zip

    vim-markdown-toc, 用于生成 Markdown 文件目录的vim 7.4 插件 vim-markdown-toc用于生成 Markdown 文件目录的vim 7.4 插件。中文版使用指南目录特性安装工具使用情况生成内容目录。更新现有目录删除目录选项屏幕...

    vim-minimal-7.4.160-5.el7.x86_64.rpm

    离线安装包,亲测可用

    vim-airline-themes:vim-航空公司的主题集合

    vim-航空公司主题 这是的官方主题库 安装 该插件遵循标准的运行时路径结构,因此可以与各种插件管理器一起安装: 插件管理器 安装... git clone https://github.com/vim-airline/vim-airline-themes ~/.vim/bundle...

    vim7.4版本rpm

    vim-common-7.4.629-8.el7_9.x86_64.rpm vim-enhanced-7.4.629-8.el7_9.x86_64.rpm vim-filesystem-7.4.629-8.el7_9.x86_64.rpm vim-minimal-7.4.160-5.el7.x86_64.rpm

Global site tag (gtag.js) - Google Analytics