技术分享 | Centos下 Vim快捷键操作命令大全

Vim是一个超牛的编辑器,命令功能十分强大 。而且这些命令大都可以进行组合 , 比如,9yy命令表示复制9行内容,9表示要复制的行数,同样100dd表示删除100行,当数字和命令合作的时候,就比单纯的命令更强大,同样,c命令 表示擦除,w表示word即单词,那么cw就表示擦除一个单词,c5w就表示删除5个单词等等。将这些简单命令合成在一起,就可以发挥出难以想象的强大功 能。

宏命令(Macros)

高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的:

稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的 命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次。这个在文本的批处理中是非常有用的。

同时编辑多个文件

在vim众多的插件中,有一个叫minibuffer的插件,就是下面所说的标签页功能了,可以支持同时编辑多个文件。

标签命令

对,正如你所想象的那样,跟eclipse, ue等的标签页是一个意思!

窗口命令

其他

vim在保存之前不会对文件做实际的修改,只是加载到缓冲区中,对文件的编辑其实是对缓冲区的编辑,直到:w时才会存入物理文件。

退出编辑器

查找替换

复制粘贴

附:比如常用的一个寄存器就是系统寄存器,名称为+,所以从系统粘贴板粘贴到vim中的命令为"+p,注意此处的+不表示操作符,二十一个寄存器。

移动光标

在vim中移动光标跟其他的编辑器中有很大的区别,不过一旦学会了,就会飞速 的在文本中移动了。

”Ctrl + }“ 可以跳转到函数或变量的定义处,“Ctrl + o”可以返回上一个跳转页面。

在屏幕上移动

书签

编辑

插入模式

可视模式

标记文本

对标记进行动作

键盘图:

VIM中常用的替换模式总结

1,简单替换表达式 替换命令可以在全文中用一个单词替换另一个单词: :%s/four/4/g

“%” 范围前缀表示在所有行中执行替换。最后的 “g” 标记表示替换行中的所有匹配点。如果仅仅对当前行进行操作,那么只要去掉%即可 如果你有一个象“thirtyfour” 这样的单词,上面的命令会出错。这种情况下,这个单词会被替换成”thirty4″。要解决这个问题,用 “\<” 来指定匹配单词开头: :%s/\<four/4/g 显然,这样在处理“fourty” 的时候还是会出错。用“\>” 来解决这个问题: :%s/\<four\>/4/g 如果你在编码,你可能只想替换注释中的 “four”,而保留代码中的。由于这很难指定,可以在替换命令中加一个 “c” 标记,这样,Vim 会在每次替换前提示你: :%s/\<four\>/4/gc 2,删除多余的空格 要删除这些每行后面多余的空格,可以执行如下命令: :%s/\s\+$// 命令前面指明范围是 “%”,所以这会作用于整个文件。”substitute” 命令的匹配模式是 “\s\+$”。这表示行末($)前的一个或者多个(\+)空格(\s)。替换命令的 “to” 部分是空的:”//”。这样就会删除那些匹配的空白字符。 3,匹配重复性模式 星号项 “*” 规定在它前面的项可以重复任意次。因此: /a* 匹配 “a”,”aa”,”aaa”,等等。但也匹配 “” (空字串),因为零次也包含在内。星号 “*” 仅仅应用于那个紧邻在它前面的项。因此 “ab*” 匹配 “a”,”ab”,”abb”,”abbb”,等等。如要多次重复整个字符串,那么该字符串必须被组成一个项。组成一项的方法就是在它前面加 “\(”,后面加 “\)”。因此这个命令: /\(ab\)* 匹配: “ab”,”abab”,”ababab”,等等。而且也匹配 “”。 要避免匹配空字串,使用“\+”。这表示前面一项可以被匹配一次或多次。 /ab\+ 匹配 “ab”,”abb”,”abbb”,等等。它不匹配 后面没有跟随 “b” 的 “a”。 要匹配一个可选项,用“\=”。 例如: /folders\= 匹配 “folder” 和 “folders”。 4,指定重复次数 要匹配某一项的特定次数重复,使用 “\{n,m}” 这样的形式。其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 (|inclusive| 包含 “n” 和 “m”)。例如: /ab\{3,5} 匹配 “abbb”,”abbbb” 以及 “abbbbb”。 当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如: 模式 匹配次数

\{,4} 0,1,2,3 或 4 \{3,} 3,4,5,等等 \{0,1} 0 或 1,同 \= \{0,} 0 或 更多,同 * \{1,} 1 或 更多,同 \+ \{3} 3 5,多选一匹配 在一个查找模式中,”或” 运算符是 “\|”。例如: /foo\|bar 这个命令匹配了 “foo” 或 “bar”。更多的抉择可以连在后面: /one\|two\|three 匹配 “one”,”two” 或 “three”。 如要匹配其多次重复,那么整个抉择结构须置于 “\(” 和 “\)” 之间: /\(foo\|bar\)\+ 这个命令匹配 “foo”,”foobar”,”foofoo”,”barfoobar”,等等。 再举个例子: /end\(if\|while\|for\) 这个命令匹配 “endif”,”endwhile” 和 “endfor”。

原文发布于微信公众号 - 加米谷大数据(DtinoneBD)

原文发表时间:2018-01-22

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

Linux:sed命令详解

1. 简介 sed 是非交互式的编辑器。它不会修改文件,除非使用 shell 重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 ? sed 编辑器逐...

4946
来自专栏九彩拼盘的叨叨叨

Promise 写法示例

上面代码中,doThing1,doThing2,doThing3 都要返回 Promise 对象。

812
来自专栏阿炬.NET

Less学习笔记

2957
来自专栏大内老A

.NET Core的文件系统[3]:由PhysicalFileProvider构建的物理文件系统

ASP.NET Core应用中使用得最多的还是具体的物理文件,比如配置文件、View文件以及网页上的静态文件,物理文件系统的抽象通过PhysicalFilePr...

2179
来自专栏QQ音乐技术团队的专栏

一种Android App在Native层动态加载so库的方案

这篇文章通过实战案例,介绍了一种有条理的组织Native层代码层级结构的方法。并且,在良好的代码层级、作用分工的基础上,实现了动态的按需加载、卸载so库。文章...

1.2K6
来自专栏L宝宝聊IT

Linux基础——正则表达式

2153
来自专栏大内老A

ASP.NET Web API标准的“管道式”设计

ASP.NET Web API的核心框架是一个消息处理管道,这个管道是一组HttpMessageHandler的有序组合。这是一个双工管道,请求消息从一端流入并...

2055
来自专栏小灰灰

报警系统QuickAlarm之报警执行器的设计与实现

根据前面一篇总纲的博文,将整体结构划分为了四大块,本文则主要目标集中在第一块,报警执行器(AlarmExecute)的设计与加载上了 主要的关注点无外乎 定义-...

2955
来自专栏深度学习之tensorflow实战篇

pycharm 或者其他Python IDE不支持中文编码的解决方案

Python的自带编辑器IDLE或者Python Shell在默认情况下都不支持中文编码,若在脚本程序中出现中文,则会出现一定的错误。 原因: 因为Python...

3154
来自专栏Astropeak

Python:怎样用线程将任务并行化?

2097

扫码关注云+社区

领取腾讯云代金券