vi/vim 计算搜寻关键字数量
http://hi.baidu.com/xletian/blog/item/f19962061a9a506c020881dc.html
在看过 vim 的全域指令和 search 指令之後,你会不会也会想自己还有什么需求可以叫 vim 做的呢? 今天我和布丁长辈还有DK长辈聊天的时候就讲到一个问题:我可不可以知道到底这份文件有多少个我想要搜寻的字串? 当然啦,你如果会 vim 的全域指令你可能可以用 :g/pattern/p 之後,用 copy 的方式或是其他指令的组合把比对出来的东西存到另外一个档案去,然後再用其他的工具(像是wc)计算行数。不过,这个方法,不够方便。 比较辛苦一点的方式也可以用 /pattern 然後自己按 n 一个个算,不过… 我想可能会先算到疯掉。 难道 vim 就只能这样了吗? 忘了是DK长辈还是布丁长辈说可以写程式来算。不过 vim 的 script 写法,我打算到後面再写。我心里想的是,应该有一行就可以解决的方法啊! 在 vim 里面遇到问题的时候有两个方式,第一个就是 :h 然後後面跟上你猜可能会有答案的关键字。不过这个方式我今天用了好几次,感觉除了写程式别无他途。可是,我就是不想写程式。第二个方法就是到 www.vim.org 上找 tips 看,结果没两下就找到了这篇<Tip #860: count number of matches of a pattern>,後面的 comment 中有个人只用一行解决,看了就觉得「哎唷,怎麽就是没想到呢?」其实用 vim 编辑文件想这些怎麽样可以让自己少打点或是只用一行指令解决的过程是很有趣的。这个人用的方法很简单也很漂亮,但却要用到我们之前提过的取代指令 :s : :%s/pattern/&/g & 代表的意思就是用来表示前面比对的字串,所以做这个指令其实对档案本身并不会有什麽改变。但是由於做的是全域的取代置换, vim 会告诉你有从多少行中多少个字串被取代。轻轻松松很漂亮地用一行命令解决这个问题。 输入只有一行的命令: 结果就会出现在最後一行上,而且不会改变到档案本身: |
vi/vim 计算搜寻关键字数量的更多相关文章
- Linux 磁盘管理,Linux vi/vim
一.Linux 磁盘管理 Linux磁盘管理好坏直接关系到整个系统的性能问题. Linux磁盘管理常用三个命令为df.du和fdisk. df:列出文件系统的整体磁盘使用量 du:检查磁盘空间使用量 ...
- 你想要的sublime、webstorm、vi/vim不得不用的快捷键【简报】【实用】
你想要的sublime.webstorm.vi/vim不得不用的快捷键[简报][实用] 话不多说,马上走起: Sublime Text: ctrl+d alt+f3全选 ctrl+shift+’ ...
- -Git Linux vi/vim 命令 按键 MD
目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...
- 想法子记忆Vi/Vim常用操作及指令
本笔记有特殊目录,点击开启: 专有目录 在Linux系统中编辑文本总是离不开一位老帮手--Vi.而因为其诞生的年代有些久远,有些操作在现在看来可能有点"反直觉". 于是我决定写这样 ...
- Linux vi/vim(转载)
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- vi/vim 的使用
vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是一般模式.编辑模式与指令列命令模式. 这三种模式的作用分别是: 一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式) ...
- vi/vim基本使用方法
vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...
- Linux vi/vim
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...
- 【转载】-- vi/vim使用
vi/vim 基本使用方法本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...
随机推荐
- LaTeX快速入门-蔡炎龙
蔡老师的这个文档只有26页,非常简短称得上是快速入门的文档了,TeX的基本入门这个文档还做不到,仅仅是一个简单的引子,让大家管中窥豹,先简单使用,然后才会更加深入进去. 文档早一个版本是用CJK排版的 ...
- guess-number-higher-or-lower-ii
// https://discuss.leetcode.com/topic/51353/simple-dp-solution-with-explanation // https://en.wikipe ...
- Informatica 常用组件Lookup之一 概述
转换类型:被动.已连接/未连接 在映射中使用查找转换以从平面文件或关系表.视图或同义词查找数据.您可以从 PowerCenter Client 和 PowerCenter Server 均连接至的任何 ...
- C/C++ 语言获取文件大小
在C语言中测试文件的大小,主要使用二个标准函数. 1.fseek 函数原型:int fseek ( FILE * stream, long int offset, int origin ); 参数说明 ...
- Unity3D游戏开发最佳实践20技巧(三)
[文本] 38.假设你有非常多的剧情文本.那么把他们放到一个文件中面. 不要把他们放到Inspector的字段中去编辑. 这些须要做到不打开Unity,也不用保存Scene就能够方便的改动. 39.假 ...
- MongoDB学习笔记(二)--Capped集合 && GridFS存储文件
Capped集合 Capped集合的大小是固定的,如果空间都被用完了,新添加的对象 ...
- ArcGIS高程Z值的去除方法
在ArcGIS中,我们常用的几何类型有点.线.面.体(体,在涉及三维的情况下使用),但在这之外,可能会遇到带ZM的类型,如图所示,面ZM,它与面类似,但比面多两个字段. 在编辑中查看草图属性可看到Z值 ...
- UIFont可用字体
label.font = [UIFont fontWithName:@"Arial-BoldItalicMT" size:24]; 字体名如下: Font Family: Amer ...
- android 随手记 仿微信的popwindow
/把文字控件添加监听,点击弹出自定义窗口 tv.setOnClickListener(new OnClickListener() { public void onClick(View v) { //实 ...
- cordova 命令行打包apk
Cordova 打包 Android release app 过程详解: 1.全局安装Cordova CLI: npm install -g cordova 2.创建项目: cordova creat ...