相信我们都有在linux下查找文本内容的经历,比如当我们使用vim查找文本文件中的某个字或者某段话时,Linux很快做出反应并给出相应结果,特别方便快捷! 那么,我们有木有想过linux是如何在浩如烟海的文本中正确匹配到我们所需要的字符串呢?这就牵扯到了模式匹配算法! 1. 模式匹配 什么是模式匹配呢? 模式匹配,即子串P(模式串)在主串T(目标串)中的定位运算,也称串匹配 假设我们有两个字符串:T(Target, 目标串)和P(Pattern, 模式串):在目标串T中查找模式串T的定位过程,称…
目录 1.在文档中显示行号 2.是否显示文档内容相关颜色 3.是否将查找的字符串高亮显示 4.是否显示右下角的状态栏 5.是否在左下角显示如"--INSERT--"之类的状态栏 6.是否显示隐藏字符 7.vim支持更多的设置参数 8.vim编辑器配置文件 9.查找 10.替换 vim编辑器中常用的末行模式命令. 1.在文档中显示行号 : set nu:显示行号. : set nonu:取消行号. 一旦退出文档,再打开行号就没有了.(文章最后第8点,有解决.) 2.是否显示文档内容相关颜…
1.3.5 使用 search()在一个字符串中查找模式(搜索与匹配的对比) 其实,想要搜索的模式出现在一个字符串中间部分的概率,远大于出现在字符串起始部分的概率.这也就是 search()派上用场的时候了. search()的工作方式与 match()完全一致,不同之处在于 search()会用它的字符串参数,在任意位置对给定正则表达式模式搜索第一次出现的匹配情况.如果搜索到成功的匹配,就会返回一个匹配对象: 否则, 返回 None.我们将再次举例说明 match()和 search()之间的…
前言 出于历史原因,命令行模式又叫 Ex 模式,它具有的功能有: 读写文件:比如 :edit, :write 等等 创建标签页或者窗口:比如 :tabnew :split 操作缓存区,比如: bnext 编辑文本 本章主要介绍对编辑文本的相关的 Ex 命令 调出 Ex 模式 总共有三种方法调出 Ex 模式: 一般的格式是通过 ":" 输入指令,然后按<CR>进行进行执行. “/”用于调出查找提示符 = 调出表达式寄存器 编辑文本的 Ex 命令的格式 种类 Ex 命令的影响范…
Microsoft Visual Studio 2015社区版提供了强大的开发体验,且 Qt 提供了预编译版本.然而,由于客户提出兼容Windows XP ~ Windows 8.1 这样宽泛的环境要求,使得我们不得不考虑更换工具链.经过反复对比测试,在Mingw32, Cygwin,  MSYS2, Visual Studio 2010几个工具链中,综合性能.未来的可持续性.中文支持以及第三方库支持(比如qwt),认为MSYS2较为合适.在后续复杂的迁移过程中,基本是平顺的,但也遇到了一些问题…
Golang的交互模式进阶-读取用户的输入 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 读写数据除了 fmt 和 os 包,我们还需要用到 bufio 包来处理缓冲的输入和输出. 一.从控制台读取输入 我们如何读取用户的键盘(控制台)输入呢?从键盘和标准输入 os.Stdin 读取输入,最简单的办法是使用 fmt 包提供的 Scan 和 Sscan 开头的函数.具体代码如下 /* #!/usr/bin/env gorun @author :yinzhengjie Blog:…
临时显示:进入vi编辑器,输入命令 :set number     //下次在进入vi 无法显示行号 :set nonumber  //本次vi关闭行号显示 vi 每次修改后推荐使用命令: source ~/.bash_profile 永久方式:步骤1: cp /usr/share/vim/vimrc ~/.vimrc 先复制一份vim配置模板到个人目录下 注:redhat 改成 cp /etc/vimrc ~/.vimrc 步骤2: vi ~/.vimrc 进入insert模式,在最后加二行…
组合快捷键 Ctrl + h //删除前一个字母(同退格键) Ctrl + w //删除前一个单词 Ctrl + u //删除到行首 Esc //切换到普通模式 Ctrl + [ //切换到普通模式 Ctrl + o //切换到插入 - 普通模式 gi //普通模式切换到插入模式,且光标回到最后编辑的地方 vim在插入模式下如何快速移动光标 vim ~/.vimrc inoremap <C-l> <Right> inoremap <C-h> <Left> i…
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/8032683.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第六个模式--状态模式.无论是现实世界,还是面向对象的OO世界,里面都有一个东西,那就是对象.有对象当然就有 状态了.每个对象都有其对应的状态,而每个状态又有对应一些相应的行为.在不同状态下,行为的的方式也是不一样.如果某个对象有多个状态时,那 么就会有很多对应的行为.对这些状态的判断以及依状态完成的行为,会导致多…
vi/vim 中可以使用 :s 命令来替换字符串.该命令有很多种不同细节使用方法,可以实现复杂的功能,记录几种在此,方便以后查询.    :s/vivian/sky/ 替换当前行第一个 vivian 为 sky    :s/vivian/sky/g 替换当前行所有 vivian 为 sky    :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky    :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivi…