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 条评论
登录 后参与评论

相关文章

来自专栏专注研发

POJ1331 Multiply(strtol函数练习)

773
来自专栏十月梦想

ES6语法基础之变量解构赋值(数组)

ES6变量解构赋值,看下数组与es5等区别,ES6的新特性大大节省了代码量,使代码可读性大大提高!

672
来自专栏blackheart的专栏

[C#3] 3-对象和集合初始化器

1.对象初始化器 首先声明一个类Person: public class Person { public string Name { get; set;...

1858
来自专栏积累沉淀

JavaScript对象和数组

学习要点: 1.Object类型 2.Array类型 3.对象中的方法 什么是对象,其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。 一...

1805
来自专栏我和PYTHON有个约会

18. 再说循环~列表和循环的高级操作

在前面的课程中,我们已经学习了循环和函数的基本操作,这节内容主要针对循环和函数在项目使用过程中的一些更加有使用价值的操作进行分析和讲解

381
来自专栏Python攻城狮

jQuery1.jQuery简介及使用2.jQuery语法3.jQuery选择器4,jQuery 事件函数及效果显示

jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。(write less,do more.)

653
来自专栏小詹同学

Leetcode打卡 | No.014 最长公共前缀

欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!

722
来自专栏一个会写诗的程序员的博客

第5章 函数与函数式编程第5章 函数与函数式编程

函数式编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以传入函数参数,也可以返回一个函数。函数式编程 (简称FP) 是一种编程...

511
来自专栏landv

从零开始学C#——基本语法(二)

1012
来自专栏python学习指南

python字典

本篇将介绍Python里面的字典,更多内容请参考:Python学习指南 Python是什么? Python内置了字典dict的支持,dict全称dicti...

1898

扫码关注云+社区