最近在服务端编辑文件总不可避免要使用vim编辑器,下面就对学习到的常用命令进行总结,以便自己以后查看。
 

基本编辑命令

 
删除字符:x
删除一行:dd
删除换行符:J,同时将两行合并成一行
撤销上一次的操作:u
重做,反转撤销:Ctrl+R
 
一些基本编辑命令可以使用命令计数,比如向下移动3行,可以直接使用3j,代替jjj;另比如dd操作等。
 

其他编辑命令

 
i: 当前光标之前插入文本
a: 当前光标之后插入文本
o: 另起一行,在当前行的下一行开始编辑
O: 另起一行,在当前行的上一行开始编辑
 

光标移动命令

 
h, j, k, l就不说了,左,上,下,右
w(word): 移动光标到下一个word的开头;
b(backward):移动光标到上一个word的开头;
e(end of word): 移动光标到下一个word的末尾;
ge: 移动光标到上一个word的末尾;
上述所有都是小写,如果将w, b, e 设置成大写,那么就将按照空格分隔移动;
:set iskeyword
 
$ 将光标移动到当前行行尾;
0 将光标移动到当前行行首;
 
fx可以在当前行查找第一个x并移动到该位置,停留在被搜索字符的下一个位置,这种用法称为单字符查找;
而使用Fx就会反向查找x字符;
tx命令比较类似,但是会停留在被搜索字符上;
Tx反向查找;
这四个命令都不会跳到下一行上去,都可以使用”;"来重复,“,”也是重复,但是方向相反
 

匹配括号

 
编写程序的时候,容易被括号弄糊涂,但是使用”%”可以非常方便地与当前光标下的括号匹配,比如()[]{};
如果当前光标并不在括号上,”%”同样可以向前匹配到第一个遇到的括号;
可以通过命令:set matchpairs查看匹配的括号类型
 

移动到指定行

 
G命令可以移动到文件的最后一行;
使用“行数”+G可以将当前光标移动到该指定行数的位置;
gg命令是定位到第一行的快捷方法,等同于1G;
另外一种方式就是移动到指定的百分比,使用“百分比”+%即可;
如果只想让光标定位到当前显示屏幕中的上,中,下,那么可以使用H(Home), M(Middle), L(Last)
 
有三种方法可以得到当前光标的位置:
  1. 使用Ctrl+G命令,可以得到类似下面的提示:"map任务分析趋势图.numbers" 1116 lines --2%--
  2. 使用:set number(nonumber)命令,可以查看/取消查看当前文件所在行;
  3. 设置ruler选项,可以在Vim的右下角窗口显示当前光标的位置;
 
当执行G跳转到指定的行后,vim会记住起跳的位置,这个位置是一个标记,使用命令”``"可以帮助跳转到刚才的出发点。
 
 

滚屏

Ctrl+U(Up) 会使窗口向上滚动半屏;
Ctrl+D(Down) 会使窗口向下滚动半屏;
Ctrl+E 可以使窗口向上滚动一行;
Ctrl+Y 可以使窗口向下滚动一行;
Ctrl+F(Forward) 可以使窗口向上滚动一整屏;
Ctrl+B(Backward) 可以使窗口向下滚动一整屏;
zz命令可以将光标当前所在行置于屏幕中央;
zt(top)命令可以将光标当前所在行置于屏幕顶端;
zb(bottom)命令可以将光标当前所在行置于屏幕底端;
 

搜索与查找

 
"/搜索字符串” 可以从当前光标位置处开始向下搜索该字符串,使用n,N可以匹配下一个找到的字符串;
“?搜索字符串” 与/的使用方式正好相反,向前搜索,而此时使用n,N也会相反;
注意搜索时的一些特殊字符: “.*[]^%/?~$”,如果要查找的内容包括这些字符,请使用\进行转义;
 
incsearch:使得键入目标字符串时vim就开始字符串搜索工作,可以在未完全键入字符串时就能找到目标,可选择回车跳转到当前匹配的位置或继续输入以进行搜索;
nowrapscan/wrapscan:打开wrapscan会在搜索到达文件头或者末尾时会从新开始搜索,关闭此开关(nowrapscan)可以在文件结束时停止;
 
 
 

退出vim

 
ZZ: 可以保存当前的数据,然后退出
:q!: 放弃编辑,退出vim,命令之后加回车
:q:退出,但是如果已经对文件进行了编辑,vim会拒绝不负责任的退出
:e!:如果想放弃当前所有的修改,并重新打开编辑器,用该文件的初始内容作为开始继续编辑,使用此命令
:help 显示vim的帮助文件,也可以使用F1显示
 

一些其他的常用命令

 
在编辑文件的时候按照行对文件内容进行删除时,可以使用G转到文件末尾,然后使用:1,.d命令;
如果想要删除某行到当前行的内容,直接替换1即可;
如果想要显示当前文件的行号,可以使用set nu!
如果想要删除整个文件(变成空白文件),先gg跳转到首行,再执行dG清空整个文件。
 

Vim的搜索模式

^字符匹配一行的开头;
$字符匹配一行的末尾;
如果同时加上^和$,那么将只会匹配到单行文本就是^和$之间的字符串;
.可以匹配到任何字符,比如”c.m"可以匹配任何前一个字符是c后一个字符是m的情况,不管中间字符是什么;
对于特殊字符,可以加上反斜杠进行处理。
 

搜索后的跳转命令

使用``可以在两点之间反复跳转。
Ctrl+O, 跳转到更早些时间停留光标的位置; 
Ctrl+I, 跳转到后来停置光标的位置;
什么是跳转?只要你执行一个命令使得光标定位于当前行之外的某行上,都叫做一个跳转,包括/和n这些搜索命令。但是字符搜索命令f,F不算是跳转,h,i,j,k这些也都算是字符操作,不算是跳转。
 

Vim编辑器基本操作学习(一)的更多相关文章

  1. Vim编辑器基本操作学习(二)

    操作符+位移 x命令可以删除一个字符,4x可以删除4个字符. dw可以删除一个word,w事实上是向后移动一个word的命令:dw可以接上一个任意一个位移命令,它将删除从当前光标开始到位移终点处的文本 ...

  2. vim编辑器基本操作介绍

    vim编辑器基本操作介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 可能很多小伙伴都听说过vi编辑器或是vim编辑器.它们是Unix和Linux世界最流行的编辑器之一,他们的特 ...

  3. git vim 编辑器基本操作

      用 git 命令行提交文件时,默认使用 vim 编辑器,基本操作: 按 a, i 或 o 进入编辑模式 按 ESC 进入操作模式 在操作模式下,:wq 为写入退出,:q! 不保存退出

  4. vi/vim编辑器基本操作

    一.vi/vim的三种模式 vi编辑器有三种模式:命令模式(command mode).插入模式(Insert mode).底行模式(last line mode). 就是你直接用命令(vi  文件名 ...

  5. Vim编辑器的学习

    在老师的带领下,最近也算是涨了见识.自己安装并尝试着体验了Vim的一些基本功能,可能是作为初学者,总感觉其指令太过复杂,就文本编辑而言,给我的最大感受就是神而乎之,一头雾水.目前我对这款编译器的掌握水 ...

  6. vim编辑器基本操作

    命令模式: 按(i)键进入编辑模式,将在光标前面插入: 按(I)键进入编辑模式,将在光标行首插入: 按(a)进入编辑模式,在光标后面插入: 按(A)键进入编辑模式,将在光标行末插入: 按(o)进入编辑 ...

  7. vim编辑器基本操作及文件权限,sudo命令等介绍

    一:vim 操作命令,在命令模式下操作 pageup 往上翻页 pagedown 往下翻页 H 移动到屏幕首行 gg 移动光标到文档的首行 前面加数字n表示移动到n行内容 G 移动到文档最后一行/查找 ...

  8. 【第五课】VIM编辑器(学习笔记)

    4月10日学习笔记打卡

  9. VI和VIM编辑器深入学习笔记--基本vi命令

    双十一过后有点闲,找本书给这段时间碰到的一些问题充充电,先从linux vi命令开始: 移动光标: “h” 向左一个字符,“j”向下一行,“k” 向上一行,“l” 向右一个字符(虽然我们可以用方向键, ...

随机推荐

  1. Mac环境下svn的使用(转)

    本文目录 一.创建代码仓库,用来存储客户端所上传的代码 二.配置svn的用户权限 三.使用svn客户端功能 在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下, ...

  2. ubuntu15.10运行android studio出错unable to run mksdcard sdk tool

    问题:ubuntu运行android studio出错unable to run mksdcard sdk tool 系统版本:系统是ubuntu 15.10 64位 确认原因:缺少lib 解决方法: ...

  3. Intellij IDEA创建包(package)问题解决方案

    问题 在使用IDEA创建包时会出现这样一种场景,就是当一个空包很长时,比如com.secbro.drools.model.这个时候如果你想给drools或model创建同级的包,你会发现,默认创建的包 ...

  4. Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包),androiddefine

    Android Studio com.android.dex.DexException: Multiple dex files define(重复引用包),androiddefine 如果你用Andr ...

  5. Java之JVM逃逸分析

    引言: 逃逸分析(Escape Analysis)是众多JVM技术中的一个使用不多的技术点,本文将通过一个实例来分析其使用场景. 概念 逃逸分析,是一种可以有效减少Java 程序中同步负载和内存堆分配 ...

  6. stark组件03

    优化代码 1:页面的增删改查url反转的封装到类里:ModelSatrk # 编辑页面的url def get_edit_url(self,obj): edit_url = reverse(" ...

  7. ios一些噁心记录

    有时在tableview的头部会凭空多出一块空白区域,这是由于ios会"贴心"的多分配一些用于滑动的多余inset. 消除这一空白的方法是,在tableview所在的control ...

  8. windows中的oracle12SE后启动的系统服务的列表

    下图是我安装在windows 10下安装好oracle12.10SE之后的启动的系统服务的列表. 通常,我是将其全部修改为手动启动.当需要用oracle服务的时候,只需要启动对应的实例的服务和tnsl ...

  9. 从BZOJ2242看数论基础算法:快速幂,gcd,exgcd,BSGS

    LINK 其实就是三个板子 1.快速幂 快速幂,通过把指数转化成二进制位来优化幂运算,基础知识 2.gcd和exgcd gcd就是所谓的辗转相除法,在这里用取模的形式体现出来 \(gcd(a,b)\) ...

  10. XML 的 XPath 语法

    XPath 是 XML 路径语言(XML Path Language),用来确定XML文档中某部分位置的语言.无论是什么语言什么框架,几乎都可以使用 XPath 来高效查询 XML 文件. 本文将介绍 ...