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

VIM 查找文本

 
阅读更多

http://blog.csdn.net/hitustc/article/details/5585101

 

查找字符

命令f用于在本行内向前搜索。例如fx是向前(Forward)搜索字母x。而命令F是向后(Backward)搜索。例如Fx是向后搜索字母x。与f和F这两个相类似的是t和T命令。t命令类似于f向前搜索命令,所不同的是t搜索到时并不是将光标停在目标字符上,而是停在目标字符的前一个字符上。在搜索的过程中,我们可以使用ESC来退出搜索而开始新的工作。

对于以上四个查找命令,我们可以重复执行这些操作。命令;是按照前一次的查找方向继续查找,如果要向相反的方向查找可以使用,命令。但是这些查找只是在行本行内进行,并不会将光标移动到其它的行。

查找字符串

我们可以使用/string命令来向前(Forward)查找字符串string,按下回车后,光标就能跳到正确的地方。在这个命令中,/后的字符是我们想要查找的字符,而回车键则表明了命令的结束。

有时想要查找的内容并不仅在一处,我们可以在整个文章中进行查找:/可以继续刚才的查找操作。我们还可以使用n命令来继续刚才的查找命令。这两个命令都能达到同样的效果。

一般来说,在进行查找时总是在向前查找。我们也可以使用?命令向后(Backward)查找。N也是逆向查找命令,他可以实现立即反向查找。

如果我们想要停止这一查找,可以使用ctrl+C命令,如果是在Windows系统中,则要使用ctrl+Break命令。

vi具有记录查找命令历史的功能,这样就不用重复输入查找命令了。例如你刚才做过的三次查找分别是:/one,/two,/three。而现在输入/,然后按方向键的上或是下就看到刚才查找的内容显示在vi的下面,这时只要按下回车就会找到想要的内容了。

指定光标放置位置

在默认情况下,查找时Vim会将光标放在第一个匹配的结果的开始处。我们也可以指定查找结束后,光标所处的位置。对于向前查找的命令,我们可以在斜线后用数字来指明光标所处的位置,例如/set/2命 令会在查找结束后将光标放在第一个set字符串之后第二行的开始处。命令中的数字可以是正数也可以是负数。如果仅是一个简单的数字,光标会被放在第一个匹 配字符串之后或之前的数字所指定的行的开始处。正是向后,负数是向前。如果斜线后是b和数字,那么在查找结束后,光标将会放在第一个匹配字符串的开始处, 然后向左或是右移动n个字符,这里的n即为数字所指定的数。如果为正数则是向右移动,如果是负数,则是向左移动。例如/set/b2, 这个命令使光标在查找结束后放在第一个匹配字符的开始处,然后向右移动两个字符,也就是说最后光标会位于第一个匹配字符串中的t的位置。将b改为s也是一 样的效果。而参数e会使得光标放在第一个匹配字符串的结尾处。同样我们也可以用数字来指定向右还是向左移动光标以及移动的字符数。例如/set/e命令会使光标放在第一个匹配字符处的结尾处。如果命令改为/set/e2,会将光标放在第一个匹配字符串的结尾处,然后向右移动2个字符。这里的数字如果是正数则向右移,如果为负数则向左移。

命令/set/e+2是在查找set字符串结束后,将光标放在第一个匹配字符串的结尾处,然后向右移动两个字符。在这里我们将这个数字称为偏移量。如果要重复上一次的查找,但是需要不同的偏移量,可以用//5命令。不使用偏移量时,可以指明一个空的偏移量,如//命令。/命令,重复前一次的查找,使用相同的偏移量。

查找命令?也可以实现类似的功能。例如?set?b5命令,是将光标放在最后一个匹配字符串的开头部分,然后向右移动5个字符。??-2命令,则继续前一次的查找命令,但是使用新的偏移量。??命令,是继续前一次的查找命令,但是不使用偏移量。

立时查找字符串

如果我们想快速查找当前光标下的字符串,可以使用命令*,这个命令可以向前查找与当前光标下的字符精确匹配的字符串。而命令#,则向后查找与当前光标下的字符精确匹配的字符串。如果当前光标下的字符串为word,在执行*命令查找时并不会与Word相匹配。与这个立时查找命令相类似的就是g*命令。他不会进行严格的匹配。如果用这个命令来查找word,那么就有可能和Word相匹配。而g#命令与其相同,只不过他是向相反的方向进行查找匹配。

设置查找选项

我们可以选择高亮显示查找的文本,命令为::set hlsearch,关闭高亮显示的命令为::set nohlsearch。如果想关掉刚才高亮显示的结果,可以使用:nohlsearch命令。

使用:set incsearch命令,将打开匹配查找选项。在进行查找时就会显示出不断匹配的过程。例如你想查找的内容是include,在打开这个选项后,当你输入/i,光标定位在i上,再继续输入n光标定位在in上,如此直到查打到所要求的内容。关闭这个选项的命令为::set noincsearch

在默认的情况下,Vim是大小写敏感的。如果一个文件中有这样几个字符串:include,INCLUDE,Include。当我们使用命令/include来查找字符串时,只有include字符会被高亮显示。但是如果我们用:set ignorecase命令打开ignorecase选项后,所有的类似的字符都会被高亮显示。如果这样的查找结果并不是我们想要的,可以使用:set noignorecase命令关闭这个选项。

如果设置了ignorecase选项后,我们想要查找字符串word,而匹配的则可能是word、Word,WORD。如果我们要查找字符串WORD,匹配的结里也是一样的。但是如果设置了:set ignorecase:set smartcase两项后,执行结果就会变得不一样了:如果我们输入的是小写字符,那么就会匹配各种可能的组合,这时与设置了ignorecase的情况相同,但是如果我们在输入中有一个大写字符,那么这时就变成了精确查找,与设置了noignorecase的情况相同。

我们在执行查找命令时,也可以用修饰符来控制大小写敏感。在命令中加入修饰符/C将告诉Vim执行大小写敏感的查询,比如?/Cword命令就只匹配单词word。而在命令中加入修饰符/c则执行忽略大小写的查询。

在默认的情下,我们输入要查找的字符串,vim是从当前光标处向前查找,直到文件的结尾,如果没有找到,那么就会从文件的开头开始查找,直到光标所处的位置。我们可以通过:set nowrapscan命令,来禁止这种循环查找的方式,这样如果已经查找到文件的底部时,就会在底部显示出一条错误信息。如果我们想要回到正常的状态,可以使用:set wrapscan命令。

命令小结
f 向前搜索并将光标停留在目标字符上
F 向后搜索并将光标停留在目标字符上
; 重复刚才的查找
, 反向重复刚才的查找
t 向前搜索并将光标停留在目标字符的前一个字符上
T 向后搜索并将光标停留在目标字符的后一个字符上
/ 向前查找
? 向后查找
n 继续查找
N 反向查找
* 向前查找与当前光标下字符精确匹配的字符串
# 向后查找与当前光标下字符精确匹配的字符串
:set hlsearch 打开高亮显示查找的文本
:set nohlsearch 关闭高亮显示查找的文本
:nohlsearch 关闭当前高亮显示的结果
:set incsearch 打开显示查找匹配过程
:set noincsearch 关闭显示查找匹配过程
:set ignorecase 忽略大小写
:set noignorecase 精确匹配大小写
:set nowrapscan 禁止循环查找方式
:set wrapscan

启用循环查找方式

 

 

 

分享到:
评论

相关推荐

    Vim文本编辑器及其应用详解

    文章目录Vim及其安装Vim三种工作模式命令模式输入模式编辑模式Vim基本操作Vim 打开文件命令模式操作光标移动复制、删除、粘贴、撤销操作:可视化模式的基本操作编辑模式操作Vim 查找文本Vim 替换文本Vim 保存退出...

    vim—ubuntu 使用详解

    vi vim 使用 vim 编辑器 首先简单的说一下vi编辑器──unix的通用编辑器, 读作vee-eye (visual editor的简写)。 (这里的vim,是改进的vi, Vi Improved简写,Vim 由Bram ...插入模式就是你输入文本的模式了。

    vim user manual ---vim用户手册

    jusr 02.txtj Vim第一步 jusr 03.txtj 移动 jusr 04.txtj 小幅改动 jusr 05.txtj 定制你的Vim jusr 06.txtj 使用语法高亮 jusr 07.txtj 编辑多个文件 jusr 08.txtj 分隔窗口 jusr 09.txtj 使用GUI jusr 10.txtj ...

    linux系统vim实验报告.doc

    关于文本编辑器 vim 的使用 【注】里面的内容和自己跟着敲敲,文件名字换成自己的,可以套用我的模板和前言结论,代码最好跟着敲敲,里面的操作步骤我也说的非常明白。 1.vi 的三种模式:编辑模式,命令模式,最后行...

    VIM使用讲解.pdf

    vim 的使用 第一讲 • 移动光标 • VIM的进入和退出 • 文本编辑之删除 • 文本编辑之插入 • 小结 第二讲 • 删除类命令 • 其他删除类命令 • 关于命令和对象 ...• 配对括号的查找 • 修正错误的方法之一 • 小结

    vi/vim常见问题常见命令解答,非常实用的速查手册

    用户可以使用命令:/(查找)或:%s(查找和替换)来快速查找文本。 五、vi/vim的常见问题解答 * 如何解决无法退出vi/vim的问题?用户可以使用命令::q!(强制退出)或:x(保存并退出)来解决无法退出vi/vim的...

    vim_命令手册

    修改vi文本 每个命令前面的数字表示该命令重复的次数 命令 替换操作 rchar 用char替换当前字符 R text escape 用text替换当前字符直到换下Esc键 stext escape 用text代替当前字符 S或cctext escape 用text代替整行 ...

    Vim命令合集

    Vim 是一个功能强大且灵活的文本编辑器,它提供了丰富的命令来帮助用户高效地编辑文本。下面是 Vim 命令合集的详细介绍。 命令历史 在 Vim 中,命令历史是以colon(:)和forward slash (/)开头的命令都有历史记录,...

    far.vim:查找并替换Vim插件

    Far.vim使得通过多个文件查找和替换文本更加容易。 它受IntelliJ和Eclipse之类的精美IDE的启发,这些IDE为此类任务提供了舒适的工具。 安装 Plug ' brooth/far.vim ' 用法 使用命令搜索 :Far foo bar ** / * .py :...

    linux中批量查找替换文本内容例子.docx

    Linux 中批量查找替换文本内容实例 在 Linux 系统中,批量查找和替换文本内容是一个非常常见的操作。下面是Linux中批量查找替换文本内容的一些实例: 1. 使用 grep 命令批量查找文件内容 grep 命令是 Linux 中最...

    vim for windows

    用于windows下面的vim编辑器。 给喜欢vim的人使用。详细如下: 好吧,详细点,这里写出一些基本的命令: 【什么是vi】 vi就是linux命令行下的最著名的编辑器之一,(编辑器就是类似windows记事本的功能,不过vi功能...

    linux系统熟练使用vim程序编辑器

    vim是vimsual interface的简称,它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。这是其他编辑程序所没有的。vim 不是一个排版程序,它不像 Word 或 WPS...

    Linux上vi(vim)编辑器使用教程

    本教程主要介绍了 Linux 上 vi(vim) 编辑器的使用方法,包括基本介绍、使用模式、文件的打开关闭保存、插入文本或新建行、移动光标、删除、恢复字符或行、搜索等等。 基本介绍 vi(vim) 是 Linux 非常常用的编辑器...

    Vim-handbook-cn-72

    |usr 22.txt| 查找要编辑的文件 |usr 23.txt| 非文本文件 |usr 24.txt| 快速键入 |usr 25.txt| 编辑格式化文本 |usr 26.txt| 重复重复,再重复 |usr 27.txt| 搜索命令和模式 |usr 28.txt| 折行 |usr 29.txt| ...

    安卓系统下的bash shell,ssh服务器,gcc编译器以及vim文本编辑器等

    安卓系统下的bash shell,ssh服务器,gcc编译器以及vim文本编辑器等 使用vim编辑多个文件 vim file1 file2 file3 ... :next查看或编辑后一个文档的内容 :prev查看或编辑前一个文档的内容 :first查看或...

    文本编辑器——VI/VIM

    文章目录vi/vim命令模式—>输入模式输入模式—>命令模式命令模式—>末行模式末行模式—>命令模式末行模式命令模式在命令模式下以单词为单位移动逐字符移动行内跳转行间跳转句子间跳转段落间跳转翻屏可视化模式字符...

    Vim用户手册中文版72.pdf

    01.3 使用Vim教程 01.4 版本 第02章 Vim第一步 02.1 首次运行Vim 02.2 插入文本 02.3 移动光标 02.4 删除字符 02.5 撤销和重做 02.6 其它编辑命令 02.7 退出 02.8 求助 第03章 移动 03.1 以Word为单位的移动 03.2 ...

    Linux学习笔记(九)Vim文本编辑器的使用

    Vim文本编辑器的使用Vim的工作模式命令模式输入模式编辑模式进入Vim使用Vim打开文件直接进入指定位置Vim基本命令插入命令常用的插入命令:光标移动命令以字符为单位移动以单词为单位的移动移动到行首或行尾移动到一...

    linux vim手户手册

    |usr_25.txt| 编辑已经编排过的文本 |usr_26.txt| 重复 |usr_27.txt| 查找命令及模式 |usr_28.txt| 折叠 |usr_29.txt| 在代码间移动 |usr_30.txt| 编辑程序 |usr_31.txt| 利用 GUI 调节 Vim |usr_40.txt| 创建新的...

Global site tag (gtag.js) - Google Analytics