最近在服务端编辑文件总不可避免要使用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. APUE学习笔记——6 系统数据文件与信息

    1.用户口令:/etc/passwd文件 该文件中包含下列结构体信息.其中,当下主修熊passwd不再这里显示,是使用了一个占位符. struct passwd { char * pw_name; / ...

  2. shell脚本中四则运算

    方法一: (())       ##在括号里面可以直接对变量进行操作 例如:vim  test.sh 方法二: let       ##let后面加要操作的运算 例如:  方法三: expr      ...

  3. 获取img元素图片的实际尺寸

    // Get on screen image var screenImage = $("#image"); // Create new offscreen image to tes ...

  4. 一个功能丰富的 jQuery 树形插件 z-tree

    链接 如果你的树 很复杂, 需要拖拽功能, 还可以考虑用这个 另外还有一个目前在用 Dynatree 如果一般的树, 还是自己写一个, 也很轻松,    如果有一两个复杂的点, 可以参考ZTree

  5. Android敏捷开发、CI(持续集成)探究

    比较老的几篇文章,依旧有学习价值 http://blog.csdn.net/baodinglaolang/article/details/9530695 http://blog.csdn.net/ba ...

  6. softmax的多分类

    关于多分类 我们常见的逻辑回归.SVM等常用于解决二分类问题,对于多分类问题,比如识别手写数字,它就需要10个分类,同样也可以用逻辑回归或SVM,只是需要多个二分类来组成多分类,但这里讨论另外一种方式 ...

  7. iOS:Core Data 中的简单ORM

    我们首先在xcdatamodel文件中设计我们的数据库:例如我建立一个Data的实体,里面有一个String类型的属性name以及一个Integer类型的num: 然后选中Data,添加文件,选择NS ...

  8. vuex(二)getters

    getters: 有时候,我们需要对state的数据进行筛选,过滤.这些操作都是在组件的计算属性进行的.如果多个组件需要用到筛选后的数据,那我们就必须到处重复写该计算属性函数:或者将其提取到一个公共的 ...

  9. 【剑指offer】不使用除法,构建乘积数组,C++实现

    # 题目 # 思路 设C[i] = A[0] * A[1] * - * A[i-1],D[i] =  A[i+1] * - * A[n-1],则C[i]按照从上到下的顺序计算,即C[i] = C[i- ...

  10. 【Python爬虫学习笔记(3)】Beautiful Soup库相关知识点总结

    1. Beautiful Soup简介     Beautiful Soup是将数据从HTML和XML文件中解析出来的一个python库,它能够提供一种符合习惯的方法去遍历搜索和修改解析树,这将大大减 ...