vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别。

  注:本篇文章区分大小写!

  

vi / vim三级模式的关系: 

  命令行模式

  任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。

  编辑/插入/文本编辑模式

在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。

  末行模式

  末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。

  

  ①:从命令模式进入到末行模式一般就是准备保存/不保存退出,输入“:”自动跳到终端此页的末尾。如图

    

  ②:从末行模式到命令模式,“Esc”。

  ③:命令模式到编辑模式可以有多种,通常 press “ i ”。

  ④:编辑模式到命令模式,“Esc”。

vi / vim命令:

   vi [filename] :打开文件,若文件不存在则新建文件并打开。

  插入内容:

    i: 插入光标前一个字符

    I: 插入行首

    a: 插入光标后一个字符

    A: 插入行未

    o: 向下新开一行,插入行首

    O: 向上新开一行,插入行首

  移动光标:

     h: 左移

    j: 下移 

    k: 上移 

    l: 右移

    M: 光标移动到屏幕中间行 

    L: 光标移动到屏幕最后一行行首 

    G: 移动到指定行,行号 -G

    w: 向后一次移动一个字 

    b: 向前一次移动一个字

    {: 按段移动,上移 

    }: 按段移动,下移

    Ctrl+d: 向下翻半屏 

    Ctrl+u: 向上翻半屏
  
    Ctrl+f: 向下翻一屏     Ctrl+b: 向上翻一屏     gg: 光标移动文件开头     G: 光标移动到文件末尾

  删除命令:

    x: 删除光标后一个字符,相当于 Del 

    X: 删除光标前一个字符,相当于 Backspace

    dd: 删除光标所在行,n dd 删除指定的行数 

    D: 删除光标后本行所有内容,包含光标所在字符 

    d0: 删除光标前本行所有内容,不包含光标所在字符

    dw: 删除光标开始位置的字,包含光标所在字符

  撤销命令:

    u: 一步一步撤销 

    Ctrl+r: 反撤销

  重复命令:

    .: 重复上一次操作的命令

  文本行移动:

    >>: 文本行右移 
  
   <<: 文本行左移
    
 复制粘贴:
    yy: 复制当前行,n yy 复制 n 行 

    p: 在光标所在位置向下新开辟一行,粘贴

  可视模式:

    v: 按字符移动,选中文本
  
   V: 按行移动,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动

  替换操作:

    r: 替换当前字符 

    R: 替换当前行光标后的字符

  查找命令:

    /: str查找
    n: 下一个
    N:上一个

VI/VIM行号显示:

   需要时启用:

    在vim命令行模式下输入  :set nu  取消显示:在vim命令行模式下输入:  set nonu

      永久自动显示:

          终端:vim   ~/.vimrc  打开后是一个空文件,添加 set nu,保存退出,重新启动vi/vim。

  替换命令(并不常用):

    把abc全部替换成123:     末行模式下,将当前文件中的所有abc替换成123  :%s/abc/123/g

    末行模式下,将第一行至第10行之间的abc替换成123    :1, 10s/abc/123/g

ubantu-vim操作的更多相关文章

  1. vim操作备忘录

    vim操作备忘录 vim 备忘录 vim的书籍虽然看不不少,可是老是容易忘记,主要是自己操作总结过少,这个博客就主要用来记录一些比较常见的术语和操作,以防止自己再次忘记. <leader> ...

  2. linux下vi或vim操作Found a swap file by the name的原因及解决方法

    在linux下用vi或vim打开Test.java文件时 [root@localhost tmp]# vi Test.java出现了如下信息: E325: ATTENTION    Found a s ...

  3. [No0000191]7种提高工作效率的Vim操作-Vim使用技巧(6)

    Vim一直被认为是一种非常高效的文本编辑器,但是对于普通用户来说,很难在入门的时候就体会到Vim的所谓高效性. 本文介绍7种提高你工作效率和生产力的Vim使用技巧,主要集中在对某个文件范围内的特定目标 ...

  4. VIM操作基础命令

    VIM操作基础命令 1 文件操作 1.1 打开文件 VIM 使用 –o 或 –O 选项打开多个文件,其中 –o 表示垂直并排,例如 vim -o lesson4 lesson5 lesson6.大O表 ...

  5. vim学习笔记(1)——vim操作

    仅记录一些自己最经常使用的vim操作.随时更新 文本操作 d 剪切.双击剪切一行 y 复制,双击复制一行 p 粘贴 x 删除当前光标下字符 r 替换当前光标字符.后面接替换的字符 :s/old/new ...

  6. VIM操作常用指令(转)

    vim是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim).vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率.vi是"visual interface&q ...

  7. Ubuntu/Linux 下pdf阅读器Zathura(类vim操作)

    Ubuntu下源安装: sudo apt-get install zathura 操作总结: 基本操作与vim一致,对于熟悉vim快捷键的十分方便: 向下移动一页是J(Ctrl+f),向上移动一页是K ...

  8. vim操作集合

    Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filena ...

  9. vim操作笔记

    1.切换到下一个文件 假设要切换的文件名为 test.py :ex test.py 2.文档内复制命令 yy "复制光标所在行.或大写一个Y. 2yy "复制两行. y^ &quo ...

  10. vim 操作

    vim -b test.bin vim 的 -b 选项是告诉 vim 打开的是一个二进制文件,不指定的话,会在后面加上 0x0a ,即一个换行符,这样若是二进制文件,则文件被改变了,后面多了一个0x0 ...

随机推荐

  1. dp 二维乃至多维背包

    洛谷P1855 榨取kkksc03 分析:套路是很明显的01背包,但是这时受约束的变量有两个了,这种情况下就该用多维背包了 分析方法一样的,用dp[i][j][k]表示从前i个愿望中挑选总时间和总金钱 ...

  2. bzoj4516: [Sdoi2016]生成魔咒 sam

    题意:每次插入一个数字,查询本质不同的子串有多少个 题解:sam,数字很大,ch数组用map来存,每次ins之后查询一下新建点表示多少个本质不同的子串(l[np]-l[fa[np]]) /****** ...

  3. BCS SET EMAIL

    FUNCTION zcrm_send_email. *"------------------------------------------------------------------- ...

  4. springmvc访问项目默认先访问后台再返回首页

    1.spring过滤的url-pattern设置成了/,所以这里随便给个新的后缀 <welcome-file-list> <welcome-file>index.zl</ ...

  5. 四、持久层框架(Hibernate)

    一.一级缓存与二级缓存 1.一级缓存:Hibernate默认是开启一级缓存的,一级缓存存放在session里,一个Session做一次查询操作,会把这个操作的结果放在一级缓存中,如果短时间内这个ses ...

  6. MyBatis Spring整合配置映射接口类与映射xml文件

    本文转自http://blog.csdn.net/zht666/article/details/38706083 Spring整合MyBatis使用到了mybatis-spring,在配置mybati ...

  7. map的key 为指针

    STL中map的key能否用char *呢?当然可以! 在程序中需要用到一个map,本来是这样写的,map<string, int> mapStr; 为了追求效率,把string改成了ch ...

  8. nyoj-0613-免费馅饼(dp)

    nyoj-0613-免费馅饼 G. 免费馅饼 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在 ...

  9. ID基本操作(新建文档,页面编码)5.8

    “文件”“新建”“文档”选择页数,页面大小.页面方向,“边距和分栏”设置上下左右的边距,栏数,如三栏 还可以改变分栏距离·改变排版方向,如图,垂直 单击“页面”可以查看我们的页面情况 超过两页会可以看 ...

  10. 【用例管理】用testng的groups管理用例

    一.需求: 测试时经常有两种场景,第一种是冒烟测试的小部分用例:一类是全部用例. 二.针对第一种运行部分的用例,可以用groups来管理 package com.testcases; import o ...