vim是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim。

vim有3个模式:插入模式(Insert Mode)、命令模式(Command Mode)、低行模式(Last Line Mode).

插入模式:在此模式下可以输入字符,按ESC将回到命令模式。

命令模式:可以移动光标、删除字符等。

低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

一、打开文件、保存、关闭文件(vi命令模式下使用)

vi filename
      //打开filename文件

          :w
      //保存文件

          :w vpser.net //保存至vpser.net文件(可以理解为 另存为)

          :q
         //退出编辑器,如果文件已修改请使用下面的命令

          :q!
       //退出编辑器,且不保存

          :wq
        //退出编辑器,且保存文件

二、插入文本或行(vi命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退回到命令模式)

a
     //在当前光标位置的右边添加文本

          i
      //在当前光标位置的左边添加文本

          A
    //在当前行的末尾位置添加文本

          I
     //在当前行的开始处添加文本(非空字符的行首)

          O
    //在当前行的上面新建一行

          o
    //在当前行的下面新建一行

          R
   //替换(覆盖)当前光标位置及后面的若干文本

          J
   //合并光标所在行及下一行为一行(依然在命令模式)

三、移动光标(vi命令模式下使用)

1、使用上下左右方向键

2、命令模式下:h   向左、j   向下 、k   向上、l  向右。

               空格键 向右、Backspace  向左、Enter  移动到下一行首、-  移动到上一行首。

四、删除、恢复字符或行(vi命令模式下使用)

x
        //删除当前字符

          nx
        //删除从光标开始的n个字符

          dd
     //删除当前行

          ndd   //向下删除当前行在内的n行

          u
      //撤销上一步操作

          U
     //撤销对当前行的所有操作

五、搜索(vi命令模式下使用)

/vpser
    //向光标下搜索vpser字符串

          ?vpser
    //向光标上搜索vpser字符串

          n
          //向下搜索前一个搜素动作

          N
        //向上搜索前一个搜索动作

六、跳至指定行(vi命令模式下使用)

n+
       //向下跳n行

          n-
        //向上跳n行

          nG
       //跳到行号为n的行

          G
          //跳至文件的底部

七、设置行号(vi命令模式下使用)

:set  nu
    //显示行号

          :set nonu
   //取消显示行号

八、复制、粘贴(vi命令模式下使用)

yy
   //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多    个复制任务。

nyy   //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。

yw
   //复制从光标开始到词尾的字符。

          nyw   //复制从光标开始的n个单词。

          y^
     //复制从光标到行首的内容。

          y$
     //复制从光标到行尾的内容。

          p
       //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。

          P
       //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。

九、替换(vi命令模式下使用)

:s/old/new
     //用new替换行中首次出现的old

          :s/old/new/g
        //用new替换行中所有的old

          :n,m s/old/new/g
    //用new替换从n到m行里所有的old

          :%s/old/new/g
     //用new替换当前文件里所有的old

十、编辑其他文件

:e
otherfilename    //编辑文件名为otherfilename的文件。

十一、修改文件格式

:set
fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。

总结:vi虽然有比较多的命令,但是只要勤加练习,相信你会很快的熟练掌握,同时也会给你的工作或学习带来更高的效率。当如果不知道自己处在什么模式时可以按2次Esc键即可回到命令模式,会有最后提醒一点:注意大小写!

VIM操作常用指令(转)的更多相关文章

  1. vim的常用指令

    vim的常用指令如下: 光标运动: h,j , k, l (上/下/左/右) 删除字符: x 删除行 : dd 模式退出 : Esc,Insert(或者i) 退出编辑器 : q 强制退出不保存: q! ...

  2. vim操作常用命令总结

    这里记录下linux在vim编辑器中的常用命令 vi 的三种模式: 一般模式:以vi打开一个文件时,就是一般模式:可以移动光标,删除字符或删除整行,可以复制.粘贴等操作 编辑模式:在一般模式按下 i ...

  3. linux下vim的常用指令

    进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后 ...

  4. linux VIM编辑器常用指令

    一般模式 查看文本-移动光标 [Ctrl] + [f] 屏幕『向前』移动一页 [Ctrl] + [b]  屏幕『向后』移动一页  n<space> 按下数字后再按空格键,光标会向右移动这一 ...

  5. vim的常用指令(脑图)

    将正在编辑的文件另存新文件名   :w newfilename 在正在编辑的文件中,读取一个filename    :r filename 做了很多编辑工作,想还原成原来的文件内容   :e! 我在v ...

  6. 【linux】vim/vi常用指令

    0或者"Home”键:光标转移到此段的最前面字节处. $或者"End"键:光标转移到此段的最后面字节处. n<space>:光标向后移动n个字节. n< ...

  7. 想法子记忆Vi/Vim常用操作及指令

    本笔记有特殊目录,点击开启: 专有目录 在Linux系统中编辑文本总是离不开一位老帮手--Vi.而因为其诞生的年代有些久远,有些操作在现在看来可能有点"反直觉". 于是我决定写这样 ...

  8. vim(vi)常用操作及记忆方法

    vi(vim)可以说是linux中用得最多的工具了,不管你配置服务也好,写脚本也好,总会用到它.但是,vim作为一个“纯字符”模式下的工具,它的操作和WINDOWS中的文本编辑工具相比多少有些复杂.这 ...

  9. vim 常用指令

    其他命令 <c-L> 重绘屏幕 <c-z> 挂起vim回到shell,想继续vim只需要输入 fg <c-x-f> 文件路径提示 <c-N> 当前文件中 ...

随机推荐

  1. 作品-网站 - [二次开发] 广联达BIM

    客户地区:北京 基于帝国ECMS二次开发 网址:http://bim.glodon.com 开发性质:二次开发 网站类型:企业级

  2. fontcreator制作iconfont(包含两个教程)

    第一步 在AI中画好矢量图,或者是在PS中将纯色的图片存成PNG格式,最好是放大很多倍的纯色图片.因为导入到fontcreator中会显得很小,如果不是矢量,图片拉大后就会有锯齿状. 第二步 选中AI ...

  3. css3画三角形的原理

    以前用过css3画过下拉菜单里文字后面的“下拉三角符号”,类似于下面这张图片文字后面三角符号的效果 下面是一个很简单的向上的三角形代码 #triangle-up { width: 0; height: ...

  4. jQuery MiniUI开发系列之:创建组件对象

    jQuery MiniUI可以使用Javascript和Html两种方式来创建对象. 1)Javascript创建对象 使用JavaScript创建对象,是最基本的方式,有如下几个要点: 1)使用ne ...

  5. Android UI 绘制过程浅析(五)自定义View

    前言 这已经是Android UI 绘制过程浅析系列文章的第五篇了,不出意外的话也是最后一篇.再次声明一下,这一系列文章,是我在拜读了csdn大牛郭霖的博客文章<带你一步步深入了解View> ...

  6. Python-5 数据类型、操作符

    #1 数值类型: 整型int.浮点型float(科学记数法 e 或 E).布尔型bool #2 字符串: 与整型.浮点型转化:int()--截断处理 float() str() #3 获取数据类型: ...

  7. 启动kafka出现找不到或无法加载主类

    首先确认下环境变量配置是否成功. 如果配置成功<javac,javah>都没有问题,那就有可能是你安装了两个版本的jdk导致的,都卸载了,然后换一个目录按照一个jdk 在配置环境变量试下!

  8. JAVA数据压缩简单测试

    本段代码只是做了简单的测试,看是否可行,此处仅作笔记.适应用场合,比如数据库,数据缓存.压缩解压肯定是有资源消耗的! 当数据小于500byte时就没有压缩的必要了 @Test public void ...

  9. jquery ajax 返回值 中文时乱码或变成问号解决方法

    转载自jquery的 ajax返回值为中文时乱码解决方法 用jquery的ajax,遇到个问题,服务器端从数据库取到的数据没有出现中文乱码问题(日志打出来是没有乱码的),但是异步传到客户的时候却出现了 ...

  10. PL/SQL Developer 和 instantclient客户端安装配置(图文)

    一: PL/SQL Developer 安装 下载安装文件安装,我这里的版本号是PLSQL7.1.4.1391,安装目录是:D:\soft\PLSQLDeveloper 二:instantclient ...