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. 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 http://www.jb51.net/css/383986.html

    在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案百度也应用了这种方案去解决IE的兼容问题   百度源代码如下 复制代码 代码如下: <!Do ...

  2. caffe.exe (caffe.bin)用法回顾

    caffe.bin :command line brew usage : caffe  <command><args> commands: train:  训练或者微调一个网络 ...

  3. Java计算上下基线

    public class GetAverageandStandardDevition { static List<Long> list = new ArrayList<Long> ...

  4. VS中的活动debug和活动cpu

    “活动”的含义就是当前项目所用的模式和平台.项目中的”活动“继承于解决方案中的配置.

  5. Repeater控件使用中的一些小问题

    网页上用来展示列表的数据,发现还是Repeater比GridView,DetailView之类的要灵活些,所以近期用到了就总结下遇到的一些情况,保留下来以备之后查阅,不用现问度娘了... 自己摸索的, ...

  6. (原)Android理论梳理-No1异步处理之Handler相关机制

    1 Handler的基本概念: 什么是handler? Handler是安卓系统的一种回调机制. handler的作用? 他的作用是用于不同线程之间的通讯.一是可以用于子线程与UI线程的数据通信,因为 ...

  7. MySql增删改查命令

    5.1 创建数据表 命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]); 例如,建 ...

  8. C++快速入门系列教程

    C++ 60分钟入门教程:http://see.xidian.edu.cn/cpp/biancheng/view/2755.html

  9. 两系统用asp.net forms 身份验证方式实现跨域登录信息共享

    1.两个系统的 web.config 都配置为 forms 验证方式( system.web —> authentication 节点) 2.在两个系统的Web.config里配置相同的 sys ...

  10. QTP参数化

    使用QTP可以通过将固定值替换为参数,扩展测试范围,可以提高测试的灵活性. 在QTP中,我们可以对以下部分进行参数化: 1.对象属性参数化 2.对象名称的参数化 3.对象方法的参数的参数化