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

相关文章

来自专栏小古哥的博客园

常用表单验证插件

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

38640
来自专栏Vue ssr

Promise 源码分析

        3、外部一种实现promise的源码:https://github.com/ygm125/promise/blob/master/promise...

65150
来自专栏申龙斌的程序人生

零基础学编程008:print语句

在《零基础学编程007:FOR循环》这一篇文章里,我们只写了两行代码: for i in [1,2,3,4,5] : print( "(1+0.01)...

30270
来自专栏程序员互动联盟

【记忆卡片】Linux sed命令

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

384130
来自专栏企鹅号快讯

PHP中被忽略的性能优化利器:生成器

如果是做Python或者其他语言的小伙伴,对于生成器应该不陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP5.5.0才引入的功能,也...

399140
来自专栏北京马哥教育

Linux Shell 文本处理工具集锦

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

45970
来自专栏数值分析与有限元编程

Fortran知识 | 代码错误(无法解析的外部符号)

如图所示,提示为:无法解析的外部符号。 ? 找不到某些函数或子程序。如果这些函数或子程序在函数库中,没有正确被使用;如果被提示的函数应该是数组,可能没有定义为数...

39690
来自专栏北京马哥教育

搞定Linux Shell文本处理工具,看完这篇集锦就够了

Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替。既然是基本功,那就需要掌握,毕竟学习Shell脚本的过程中,还...

38730
来自专栏Jerry的SAP技术分享

100行代码让您学会JavaScript原生的Proxy设计模式

面向对象设计里的设计模式之Proxy(代理)模式,相信很多朋友已经很熟悉了。比如我之前写过代理模式在Java中实现的两篇文章:

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

J2ME 的优化措施

20170

扫码关注云+社区

领取腾讯云代金券