vim使用经验积累

vim用法:

1.搜索关键字


在常态下输入“/”,然后输入要搜索的关键字即可找到所有的关键字

2.在关键字之间跳转


搜索之后按n或者N可以跳转

3.消除搜索的关键字高亮


在常态下输入":noh"即可

4.格式化代码


全部格式化:gg=G

对当前行格式化:==

对以下多行进行格式化:[count]==

5.批量替换


全局替换:  %s/源字符串/目的字符串/g

局部替换: [addr]s/源字符串/目的字符串/[option]

addr表示检索范围,默认当前行,eg: "1,20",1到20行."%"表示整个文件,  ".,$"表示从当前行到文件尾

s表示替换操作

[option]:表示操作类型, g:全局替换, c:表示进行确认, p:表示替代结果逐行显示(Ctrl+L恢复屏幕)

省略option则仅仅对每一行第一个匹配串进行替换

如果源字符串和目的字符串中出现了特殊字符,需要用"\"转义
下面是一些例子:
==================================================
#将That or this 换成 This or that
:%s/\(That\) or \(this\)/\u\2 or \l\1/

=======================================================
#将句尾的child换成children
:%s/child\([ ,.;!:?]\)/children\1/g

=======================================================
#将mgi/r/abox换成mgi/r/asquare
:g/mg\([ira]\)box/s//mg//my\1square/g    <=>  :g/mg[ira]box/s/box/square/g

=======================================================
#将多个空格换成一个空格
:%s/  */ /g

=======================================================
#使用空格替换句号或者冒号后面的一个或者多个空格
:%s/\([:.]\)  */\1 /g

=======================================================
#删除所有空行
:g/^$/d

=======================================================
#删除所有的空白行和空行
:g/^[  ][  ]*$/d

=======================================================
#在每行的开始插入两个空白
:%s/^/>  /

=======================================================
#在接下来的6行末尾加入.
:.,5/$/./

=======================================================
#颠倒文件的行序
:g/.*/m0O  <=> :g/^/m0O

=======================================================
#寻找不是数字的开始行,并将其移到文件尾部
:g!/^[0-9]/m$ <=> g/^[^0-9]/m$

=======================================================
#将文件的第12到17行内容复制10词放到当前文件的尾部
:1,10g/^/12,17t$
~~~~重复次数的作用

=======================================================
#将chapter开始行下面的第二行的内容写道begin文件中
:g/^chapter/.+2w>>begin

=======================================================
:/^part2/,/^part3/g/^chapter/.+2w>>begin

=======================================================
:/^part2/,/^part3/g/^chapter/.+2w>>begin|+t$

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

【记忆卡片】Linux sed命令

sed 在脚本使用时作用非常大,能完成很多更改功能,谁用谁知道 功能说明:利用script来处理文本文件。 语 法:sed [-hnV][-e<script>...

36813
来自专栏ImportSource

JVM中的“同步”到底是怎么实现的?

JVM中的Synchronization是使用monitor entry和exit来实现的。不管是显式的还是隐式的。显式的是通过使用monitorenter和m...

2775
来自专栏Python

基于JavaScript 声明全局变量的三种方式详解

JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍。 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量...

2468
来自专栏北京马哥教育

Linux Shell 文本处理工具集锦

本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;...

4007
来自专栏deepcc

用 Function.apply() 的参数数组化来提高 JavaScript程序性能

3375
来自专栏超然的博客

前端相关片段整理——持续更新

在不同的接口请求数据然后拼合成自己所需的数据,通常这些接口之间没有关联(例如不需要前一个接口的数据作为后一个接口的参数)

831
来自专栏小古哥的博客园

常用表单验证插件

插件地址:https://github.com/gavin125/gavin-Vtype 主要用正则的方式匹配输入内容的格式 ? 分为两个版本: 1、Vtype...

3064
来自专栏学习有记

XML进阶:Level 1 - XML简介

1233
来自专栏逍遥剑客的游戏开发

J2ME 的优化措施

1877
来自专栏猿人谷

总结c++ primer中的notes

C++ Primer, Fourth Edition (中英文)下载地址:http://download.csdn.net/detail/ace_fei/416...

1979

扫码关注云+社区