vim基础学习之搜索功能】的更多相关文章

当我们使用vim看源码的时候,我们可能会碰到一个方法或者变量,我们想要知道这个变量在其他地方的使用情况.这时候我们经常的做法就是退出当前的文件,或者是重新切换一个终端,然后使用grep或者find等shell命令进行搜索.其实,我们完全可以在不离开文件的情况下,在vim的命令行中进行搜索. vim内部搜索有两种方式,一直就是调用外部的搜索工具进行搜索grep.另外一种就是自带的内部搜索vimgrep其中,grep允许我们就行设置,从而可以自主选择我们希望使用的搜索工具以及搜索结果样式.例如 我们…
本章我们学习自动补全功能1.自动补全优先从当前的编辑区获得补全列表例如:我们写下如下内容 aaaaa aabbb aaab 当我们再次输入aa,然后我们按下Tab的时候,会弹出一个包含 aaaaa aabbb aaab的列表触发补全模式的条件1.插入模式下 ctrl+p ctrl+n 或者Tab 同时,ctrl+p ctrl+n还能够上下移动选中补全列表项还有其他的补全方法,如下这些方法都是以ctrl + x来启动的,然后跟着你想要的补全样式 .<c-n>-普通关键字 .<c-x>…
普通模式下 /->正向查找 n-向下查找 N-向上查找 ?->反向查找 N-向下查找 n-向上查找 <C-r><C-w> <C-r>-引用,例如引用寄存器 <C-w>-获得当前光标下的字符 例如,当我们在命令行的时候,光标在"向上查找",然后我们执行<C-r><C-w>就可以把这个向上查找放到命令行了. :%s///gn 这个其实是替换命令,只是我们标志位选择了n,不替换罢了这个可以用来匹配上次查找的匹…
替换命令substitute可以用来查找跟替换操作. :[range]s[ubstitute]/{pattern}/{string}/[flags] [count] range-命令作用范围(缺省的情况下,默认是当前行) substitute-替换命令 pattern-正则表达式,想要替换的内容(如果为空,会引用上次的查找结果,类似于global中的pattern) 当然,如果我们非要想显示的使用上一个pattern,那我们可以使用<C-r>/,就会把上次的结果插入到命令行了. substit…
global命令可以在指定模式下,匹配行上进行Ex命令 使用格式: :[range]g[lobal]/{pattern}/[cmd] range-是执行范围(如果缺省,是%) global-命令关键字 pattern-匹配内容 cmd-Ex命令操作(缺省是print) 这个命令还有两个反向命令 global! vglobal(v) 他们的意思是,在没有匹配pattern的行上,执行cmd操作 global这个命令使用的时候,包括两步, 第一步是获得已经拥有标记的pattern匹配内容,如果这个值…
1. ''-当前文件上次跳转之前的位置2. '.-当前文件上次修改的位置,只要是发生了可能导致变化的命令操作就会被标记,哪怕实际结果没有变化3. '^-当前文件上次插入的位置,只要是发生了插入操作命令就会被标记,哪怕实际结果没有变化4. '[-当前文件上次修改或者复制的起始位置,跟'.的区别还没有发现5. ']-当前文件上次修改或者复制的结束位置,跟'.的区别还没有发现6. '<-当前文件上次高亮选取的起始位置7. '>-当前文件上次高亮选取的结束位置 jumps我们平时的跳转操作,会有一个跳…
重复命令 .: 这个命令可以重复之前的操作.例如你执行了dd操作,然后. 就会删除当前行还有从进入插入模式到退出插入模式,之间的修改也算是一次操作.比如,你执行了i aaa <Esc>然后你执行. 你就会再次插入aaa字符 重复命令@: 这个命令可以重复上一次的Ex命令.例如,你执行了 :/aaa操作,然后你要编辑了一行代码bbbb这时候如果你执行@:,就会发现执行了:/aaa命令 重复命令 & 这条命令可以用来重复上一次的:substitute命令当我们执行了命令:s/aaa/bbb…
1:vim abc:如果有abc文件,则打开,否则创建之后打开 2:输入"i",才可以输入东西 3:按Esc,它是底行模式,再敲":wq 回车" 保存退出. 4:cat 命令:是查看文件内容 5:在vim文件中连续敲击两个D,删除此行 -----------------------------------------------------------磁盘管理命令----------------------------------------------------…
:tabnew -创建新标签 :split(sp)-垂直分割窗口 如果没有打开新的文件,那么会打开原来窗口的文件 :vsplit(vsp)-水平分割窗口 如果没有打开新的文件,那么会打开原来窗口的文件 :prev-上一个参数列表 :bprev-上一个缓冲区列表 <C-w>-删除至上个单词开头 <C-u>-删除至行首 <C-r>+寄存器-调用寄存器里面的内容 :数字 == 数字+G 跳转到指定的行 :t -复制 :m - 粘贴…
1. 选择模式这个模式必须通过可视模式进入.在可视模式下,我们通过 <C-g>来把我们的可视选中块作为选择模式下的操作块. 这时候我们输入可见字符,就会把这个块给覆盖掉.例如aaa bbb ccc然后我们用<C-v>选中bbb,这时候我们用<C-g>进行切换选择模式,然后输入z,你会发现bbb 变成了a,而且我们进入了插入模式 2. o 切换活动端 可视模式下,切换活动端点就是你块可视模式下,然后移动的时候,覆盖区域会验证你的方向变化而跟随你方向的那个变化点就是活动端点…
插入模式1.字符编码,插入特殊字符 <C-v>{3位} 如,你想输入A,你可以在输入模式下<C-v>065(必须是3位) <C-v>u{4位} 如,你想输入¿,你可以在输入模式下<C-v>u00bf <C-v>{非数字} 原义插入非数字字符<C-v> g 得到的就是g <C-k>{非数字}{非数字} 两个字符进行合并例如,你想得到½,那么你可以通过如下方式<C-k> 12 那我们怎么看一个字符的编码呢?你可以把…
.操作 = 操作符 + 动作 aaa bbb例如,d是删除命令,b是移动到距离光标最近的字符串开头当我们执行db的时候,就会删除光标(不包括光标位置)到最近字串开头之间的字符dj则会删除光标所在行以及下一行 .a i 文本对象 所谓的文本对象,说白了其实就是专门操作文本的他们两个的区别就是a -操作范围包括边界i -操作范围不包括边界例如 aaa bbb ccc当我们光标处在第二个b的时候,我们执行 viw,你会发现bbb 高亮.如果你执行vaw你会发现bbb后面的空格也会高亮,如果后面没有cc…
**********************************************************************0.这篇教程的简介:Vim是Linux/Unix下的经典编辑程序,它高效且专注,灵活且强大,是Linxu/Unix环境下编程人员.文字排版人员和系统管理员必须掌握的一项基础技能但是由于一些我们后文会介绍到的历史原因,Vim编辑器的学习难度远远高于其它编辑器,但是我相信通过我这篇教程的引导,您一定可以熟练地运用Vim!1.需要注意的    :这是一篇“零基础的…
现在做的项目代码是原来其他公司做的,要在原来基础上业务进行适当调整加上一些CR,其中有一个需要调整的需求如下: 原来使用apex:selectCheckboxes封装了一个checkbox列表,因为数据太多导致显示起来比较丑,用户希望改进一下UI. apex:selectCheckboxes作用原理为解析成html以后变成table标签, 大概层级结构可以分成<table><tbody><tr><td><input type="checkbo…
题外话: 第一次在博客园上同大家分享博文.水的的地方,错别字的地方.环境交流.批评.知道了马上改. 以前在百度空间中写技术分享博文,后来百度啥也没说就把整个空间封了.当时感觉 还是有点寒心.只想黑一下它,厂长老了.场子也该换了. 对于想写个oepngl基础学习的专题,主要是网上资源有点老,好多都运行不了,买了红宝书<<OpenGL 编程指南 第8版>>,看了还看,觉得有点专业,优化和技术核心讲的的多. 而且都是代码片段,像自己这种门外汉学习起来还是觉得基础不行.需要恶补一下关于 f…
vagrant的学习 之 基础学习 本文根据慕课网的视频教程练习,感谢慕课网! 慕课的参考文档地址:https://github.com/apanly/mooc/tree/master/vagrant. (1)下载安装虚拟机VirtualBox(我安装的版本是5.2.4). (2)下载Ubuntu镜像(我安装的是教程指定的ubuntu-14.04-amd64.box). (3)下载安装vagrant软件(安装后会提示需要重启电脑). (4)打开Xshell软件: 输入:vagrant -v,查看…
详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu…
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会这个东西, 你可以说入行了. 高级程序员不会这个, 是怎么回事, 我鄙视你, 所以我要学习, 记不住怎么办, 请看各种shell文件, 如Go语言编译! 参考: 这里 从第一行开始 我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始…
题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考虑Release版本 2.这个版本中chead,c基础头文件中有些宏设计的不好,例如 //4.0 控制台打印错误信息 #ifndef CERR #define CERR(fmt,...) \ fprintf(stderr,fmt,##__VA_ARGS__),putchar('\n') #endif…
MongoDB实战开发 [零基础学习,附完整Asp.net示例] 阅读目录 开始 下载MongoDB,并启动它 在C#使用MongoDB 重构(简化)代码 使用MongoDB的客户端查看数据 使用MongoDB的客户端维护数据 MongoDB提供的C#驱动 MongoDB不支持在查询数据库时使用Join操作 获取MongoDB服务端状态 [目标]:本文将以实战的形式,向您展示如何用C#访问MongoDB,完成常见的数据库操作任务, 同时,也将介绍MongoDB的客户端(命令行工作模式)以及一些基…
ASP.NET MVC基础学习 传统的MVC概念 模型:组类,描述了要处理的数据以及修改和操作数据的业务规则 视图:定义应用程序用户界面的显示方式 控制器:一组类,用来处理来自用户,整个应用程序流以及特定应用程序逻辑的通信 MVC在web框架中的应用 模型:模型是描述程序设计人员感兴趣问题域的一些类,这些类通常封装存储在数据库中的数据,以及操作这些数据和执行特定域业务逻辑的代码.在ASP.NET MVC中,模型就像是一个使用了某个工具的数据访问层,包括实体框架. 视图:一个动态生成HTML页面的…
关于零基础学习iOS开发的学习方法总结 最近很多零基础来参加蓝鸥培训的学生经常会问到一些学习方法的问题,就如下我自己见过的好的学习方法一起讨论一下. 蓝鸥iOS开发技术的学习路线图 程序员的主要工作是什么 在培训期间,老师与学生的时间应该如何分配 蓝鸥培训的主要内容是什么 iOS开发技术 Unity3D开发技术 Android开发技术 HTML5开发技术 iOS开发技术的学习路线图 [x] C语言技术基础 [x] OC开发基础 [x] UI界面开发基础 [x] 项目数据逻辑 [x] iOS高级程…
项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的autoComplete实现. 此篇需求为在输入框中输入检索词对数据库中User表和Contact表的Name字段进行检索,符合条件的放在联想列表中,当用户选择相应的名称后,输入框中显示此名称对应的邮箱地址. 实现此功能可以整体分成三步: 1.通过输入内容检索相关表中符合条件的数据: 2.对检索的数据进…
鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2; *.Z是compress程序压缩的文件: *.gz是gzip程序压缩的文件: *.bz2是bzip2程序压缩的文件: *.tar是tar程序打包的数据,并没有压缩过: *.tar.gz是tar程序打包的文件,其中经过gzip程序压缩过: *.tar.bz…
Makefile基础学习 理论知识 makefile关系到了整个工程的编译规则.一个工程中的源文件不计其数,并且按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个 Shell脚本一样,其中也可以执行操作系统的命令. makefile带来的好处就是--"自动化编译",一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开…
一.Java介绍 关于Java的诞生和发展网上比较多,在此就不再赘述了,可以参考http://i.cnblogs.com/EditArticles.aspx?postid=4050233. 1.1 Java的开发平台JDK 1.1.1 JDK 1.0----JRE+JDK 1995年,Sun虽然推出了Java,但这只是一种语言,如果想开发复杂的应用程序,必须要有一个强大的开发年初发布了JDK 1.0.这是Sun公司发布的第一版JDK,这个版本包括两部分: JRE 运行环境(Java Runtim…
多年来,我一直想学 Vim.如今 Vim 是我最喜欢的 Linux 文本编辑器,也是开发者和系统管理者最喜爱的开源工具.我说的学习,指的是真正意义上的学习.想要精通确实很难,所以我只想要达到熟练的水平. 我使用了这么多年的 Linux ,我会的也仅仅只是打开一个文件,使用上下左右箭头按键来移动光标,切换到插入模式,更改一些文本,保存,然后退出.但那只是 Vim 的最最基本的操作.我的技能水平只能让我在终端使用 Vim 修改文本,但是它并没有任何一个我想象中强大的文本处理功能.这样我完全无法用 V…
写在文章前面:ffmpeg是一个开源的编解码框架,拥有很强大的功能.但是对于如果使用其来做开发呈现着严重两极分化,大神们讨论着高深的问题,大多数像我这样的小白连门都进不去.最近无意间领会了如何入门,现在写下这个系列文章<零基础学习视频解码>用来帮大家提供入门基础.博主的开发机器是基于Ubuntu 14.04 64位的,所以这个系列的文章都是在Ubuntu下完成的. 一.安装SDL C语言没有图形库,其中SDL比较小巧,并且是开源的,适合入门者学习.另外安装ffmpeg的时候会检测是否安装SDL…
[学习笔记]JavaScript的基础学习 一 变量 1 变量命名规则 Camel 标记法 首字母是小写的,接下来的字母都以大写字符开头.例如: var myTestValue = 0, mySecondValue = "hi"; Pascal 标记法 首字母是大写的,接下来的字母都以大写字符开头.例如: Var MyTestValue = 0, MySecondValue = "hi"; 匈牙利类型标记法 在以 Pascal 标记法命名的变量前附加一个小写字母(或…
Python基础学习笔记(五) 模块的概念:模块是python程序架构的一个核心概念 每个以拓展名py结尾的python源代码文件都是一个模块 模块名同样也是一个标识符,需要符合标识符的命名规则 在模块中定义的全局变量.函数.类都是提供给外界直接使用的工具 模块就好比是工具包,要想使用这个工具包中的工具,就需要先导入这个模块 模块的API: 客户端使用模块提供的函数时,无须了解其实现细节.模块和客户端之间遵循的契约(API) 通过内置函数help(),可以查看Python模块的API.其语法格式…