最近在服务端编辑文件总不可避免要使用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. Ubuntu 14.10安装simplescalar

    经过两天的安装,终于把simplescalar安装成功,安装过程中在网上找了很多资料,但是很多都是关于低版本ubuntu安装的过程,而且按照这些教程也没有安装成功,来记录一下安装中出现的问题及解决方案 ...

  2. 我也说说Emacs吧(4) - 光标的移动

    在说基本编辑命令之前,我们先加一个小tip,说说如何将函数和键绑定在一起. (define-key global-map [?\C-l] 'recenter-top-bottom) define-ke ...

  3. $timeout

    $timeout 会在执行后刷新页面上 与angular 相关的变量,在于jQuery共用修改页面变量时,这很可能会导致刷新跳动的现象:

  4. [Linux] 输出文件的指定行

    1.获取第k行(以k=10为例) 要注意的是,如果文件包含内容不足10行,应该不输出. # Read from the file file.txt and output the tenth line ...

  5. margin top 无效

    常出现两种情况: (一)margin-top失效 两个层box1和box2,box1具有浮动属性,box2没有,这时候设置box2的上边距margin-top没有效果. 解决办法: 1.box2增加f ...

  6. SpringMvc和servlet简单对比介绍

    原文链接:http://www.cnblogs.com/haolnu/p/7294533.html 一.servlet实现登录. 咱们先来看一下servlet实现注册登录. <servlet&g ...

  7. 【模板】FFT

    FFT模板 安利一下前辈的博客,写的真的好点击这里:从多项式乘法到快速傅里叶变换 #include<bits/stdc++.h> using namespace std; const in ...

  8. JavaScript中字符串截取函数slice()、substring()、substr()

    在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...

  9. js禁用后退

    history.pushState(null, null, document.URL);          window.addEventListener('popstate', function() ...

  10. 用eclipse运行java程序显示找不到main class,网上的方法都试了,还是不行,有没有知道怎么解决的呀!

    编译器问题,jdk版本不对,Window --> Preferences -->Java --> compiler中的compiler compliance level,这里选你当前 ...