最近把Visual Studio 的编辑器改成了 Vim,感觉像发现了新世界,记录记录一些提高效率的Vim命令。

插入命令

i 在当前位置前插入

I 在当前行首插入

a 在当前位置后插入

A 在当前行尾插入

o 在当前行之后插入一行

O 在当前行之前插入一行

替换命令

ra 将当前光标所在的字符替换成 a

:s/old/new/ 用 old 替换 new,替换当前行的第一个匹配。

:s/old/new/g 替换当前行的所有匹配

:%s/old/new/ 替换所有行的第一个匹配

:%s/old/new/g 替换整个文件的所有匹配

:10,20 s/^/ /g 在第10行到第20行每行前面加四个空格,用于缩紧

ddp 交换光标所在行和其下紧邻的一行

(PS:dd 删除当前行)

查找命令

/text 查找 text,按 n 键查找下一个,按 N 键查找前一个

?text 查找 text,反向查找,按 n 查找下一个, 按N 查找前一个

特殊字符的转义 .*[]^%/?~$

:set ignorecase 忽略大小写的查找

:set noignorecase 不忽略大小写的查找

查找很长的词,如果一个词很长,可以将光标移动到该词上,按*#可以对单词进行搜索 * 相当于 /# 相当于 这个还是挺有用的

:set hlsearch 高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配

:set nohlsearch 关闭高亮搜索显示

:nohlsearch 关闭当前的高亮显示,如果再次搜索或者按下 n 或者 N ,则会再次高亮

:set incsearch 逐步搜索模式, 对当前键入的字符进行搜索而不必等待键入完成

:set wrapscan 重新搜索,在搜索到文件头或者尾时,返回继续搜索,默认开启。

移动命令

h 左 , j 下 , k 上 , l 右,这四个命令可以配合数字使用,比如 20j 就是向下移动20行,5h就是向左移动5个字符.

w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首,可替代 l 命令

b 向后移动一个单词

ew ,只不过是光标停在单词尾部

geb 光标停在单词尾部

^ 移动到本行第一个非空白字符上。

0 / <HOME> 移动到本行的第一个字符上

$ 移动到行尾

gg / [[ 移动到文件头

G / ]] 移动到文件尾

f命令也可以用于移动,fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。 (本地试了试,没用)

Ff,反向查找。

跳到指定行,冒号+行号,回车,比如跳到240行就是 :240回车。另一个方法是行号+G,比如230G跳到230行。

向上滚动系列:

Ctrl + y向上滚动一行

Ctrl + u向上滚动半屏

Ctrl + b 向上滚动一屏

向下滚动系列:

Ctrl + e 向下滚动一行

Ctrl + d 向下滚动半屏

Ctrl + f 向下滚动一屏

撤销和重做

u 撤销(Undo)

U 撤销对整行的操作

Ctrl + r重做(Redo),即撤销的撤销。

删除命令

x 删除当前字符

3x 删除当前光标开始向后三个字符

X 删除当前字符的前一个字符。X=dh

dl 删除当前字符, dl=x

dh 删除前一个字符

dd 删除当前行

dj 删除本行及下一行

dk 删除本行及上一行

10d 删除当前行开始的10行。

D 删除当前字符至行尾。D=d$

d$ 删除当前字符之后的所有字符(本行)

kdgg 删除当前行之前所有行(不包括当前行)

jdG(jd shift + g) 删除当前行之后所有行(不包括当前行)

:1,10d 删除1-10行

:11,$d删除11行及以后所有的行

:1,$d 删除所有行

J(shift + j)  删除两行之间的空行,实际上是合并两行

退出命令

:wq 保存并退出

ZZ 保存并退出

:q! 强制退出并忽略所有更改

:e! 放弃所有修改,并打开原来文件。

窗口命令

:split或new打开一个新窗口,光标停在顶层的窗口上

:split file或:new file 用新窗口打开文件

split打开的窗口都是横向的,使用vsplit可以纵向打开窗口。

Ctrl+ww 移动到下一个窗口

Ctrl+wj 移动到下方的窗口

Ctrl+wk 移动到上方的窗口

关闭窗口 :close 最后一个窗口不能使用此命令,可以防止意外退出vim。

:q 如果是最后一个被关闭的窗口,那么将退出vim。

ZZ保存并退出。关闭所有窗口,只保留当前窗口

执行shell 命令

:!command

:!ls列出当前目录下文件

:!perl -c script.pl检查perl脚本语法,可以不用退出vim,非常方便。

:!perl script.pl执行perl脚本,可以不用退出vim,非常方便。

:suspendCtrl - Z 挂起vim,回到shell,按fg可以返回vim。

简陋的个人Vim使用命令的更多相关文章

  1. Vim常用命令总结

    Vim常用命令总结: 下文是小编自己整理的关于日常linux vim编程过程中用的一些常用命令,资料参考鸟哥的 如果有需要的小伙伴可以参考一下!(底部有下载地址) 一. 一般模式可用的按钮说明 1.1 ...

  2. vim基础命令

    2015-06-04 by komilevim基础命令 打开一个文件 vim index.php 几种模式说明Normal Mode也就是最一般的普通模式,默认进入vim之后,处于这种模式.Inser ...

  3. vim常用命令(iOS)

    iOS下vim的使用: vim 的三种模式: .一般模式(默认) .插入模式(写文字) .命令行模式(保存) 各种模式的功能区分如下: .一般模式:控制屏幕光标的移动,字符和光标的删除,移动复制某区段 ...

  4. 实用手册:130+ 提高开发效率的 vim 常用命令

    Vim 是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器.这里收录了130+程 ...

  5. vim常用命令汇总

    vim常用命令汇总: http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 定位 本行第一个字符 ctrl+$ ...

  6. [转]vim常用命令

    [转]vim常用命令 http://www.cnblogs.com/sunyubo/archive/2010/01/06/2282198.html http://blog.csdn.net/wooin ...

  7. vim常用命令 vim键盘布局

    vim键盘布局,vim快捷键 vim常用命令:

  8. vim替换命令

    转载:http://blog.csdn.net/glorin/article/details/6317098 替換(substitute) :[range]s/pattern/string/[c,e, ...

  9. vim的命令集合

    命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令.启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filename 打开vim并 ...

随机推荐

  1. bootstrap-table分页数据前台不显示

    问题:后台返回数据{"total":52,"rows":[{"ztname":"2007年新会计准则科目(李相)",&q ...

  2. NEO从入门到开窗(4) - NEO CLI

    一.唠叨两句 首先,我们都知道区块链是去中心化的,其中节点都是对等节点,每个节点都几乎有完整的区块链特性,CLI就是NEO的一个命令行对等节点,当然也有GUI这个项目,图形化的NEO节点.节点之间需要 ...

  3. JavaScript(第五天)【流程控制语句】

    ECMA-262规定了一组流程控制语句.语句定义了ECMAScript中的主要语法,语句通常由一个或者多个关键字来完成给定的任务.诸如:判断.循环.退出等.   一.语句的定义   在ECMAScri ...

  4. 听翁恺老师mooc笔记(1)--为何选择学习C

    知识点1:众多编程语言,为何选择C? 现在我们的同学喜欢java,也参加很多java的培训班,java是比较热门,但是C语言在工业界依然有重要的地位,在很多领域无可替代,几乎所有和硬件打交道的地方都得 ...

  5. alpha-咸鱼冲刺day6

    一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 !!!QAQ可以做到跟数据库交互了!!!!先来撒花花!(然后继续甲板) (然后就没有进展了.翻车+1s) 四,问题困难 数据库交 ...

  6. github上传时出现error: src refspec master does not match any解决办法

    github上传时出现error: src refspec master does not match any解决办法 这个问题,我之前也遇到过,这次又遇到了只是时间间隔比较长了,为了防止以后再遇到类 ...

  7. JAVA反射机制基础概念

    反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠覆原来对java的理解. J ...

  8. 【转载】NetFPGA-1G-CML从零开始环境配置

    ##环境 深度Linux ###环境配置 ```bash sudo apt-get install libsigc++ sudo apt-get install qgit sudo apt-get i ...

  9. JAVA_SE基础——65.StringBuffer类 ②

    字符串特点:字符串是常量:它们的值在创建之后不能更改.    字符串的内容一旦发生了变化,那么马上会创建一个新 的对象.    注意: 字符串的内容不适宜频繁修改,因为一旦修改马上就会创建一个新的对象 ...

  10. JAVA_SE基础——52.匿名内部类

    电信的电箱烧了,害我断了2天网,真拿命,耽误了 Java匿名内部类的总结: 没有名字的内部类.就是内部类的简化形式.一般只用一次就可以用这种形式.匿名内部类其实就是一个匿名子类对象.想要定义匿名内部类 ...