vi/vim常用命令

  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

vi / vim的区别:

https://www.cnblogs.com/KiraEXA/p/5994078.html

Linux(Ubuntu)常用命令(五)—— vi/vim常用操作的更多相关文章

  1. VI/VIM 常用命令

    VI/VIM 常用命令=========== 整理自鸟哥的私房菜 ---------- - 移动光标 命令                    | 描述----------------------- ...

  2. Linux常用命令——文本编辑器Vim

    Linux常用命令--文本编辑器Vim Linux  Vim常用操作 插入命令 a 在光标所在字符后插入 A 在光标所在行尾插入 i 在光标所在字符前插入 I 在光标所在行首插入 o 在光标下插入新行 ...

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

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

  4. Linux命令之vi/vim(一)

    vi仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但不具备windows下word的排版功能.Vim是Vi improved的缩写,是vi的改进版. vi和vim的区别: 多级撤销.在vi中按u ...

  5. linux vi(vim)常用命令汇总(转)

    前言 首先解析一个vim vi是unix/linux下极为普遍的一种文本编辑器,大部分机器上都有vi的各种变种,在不同的机器上常用不同的变种软件,其中vim比较好用也用的比较广泛.vim是Vi Imp ...

  6. Linux常用命令 - 五种创建文件命令详解

    21篇测试必备的Linux常用命令,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1672457.html 创建文 ...

  7. vi/vim 常用命令总结

    目录 Linux vi/vim编辑 vim键盘图 vim的三种模式 命令模式.输入模式.输出模式 vim使用实例 vi/vim按键说明 第一部分:一般模式可用的光标移动.复制粘贴.搜索替换等 第二部分 ...

  8. Vi/Vim常用命令(附快捷切换方法)

    vi/vim有两种模式,正常(命令行)模式 和编辑模式,在命令行模式下,任何键盘输入都是命令,在编辑模式下,键盘输入的才是字符. 启动/关闭Vi/Vim 启动:vi 打开 Vi/Vim编辑器vi 文件 ...

  9. 【转】VI/VIM常用命令

    原文网址:http://www.blogjava.net/woxingwosu/archive/2007/09/06/125193.html Vi是“Visual interface”的简称,它在Li ...

随机推荐

  1. [Python3] 023 面向对象 第三弹

    目录 7. 类相关函数 8. 类的成员描述符(属性) 9. 类的内置属性 10. 类的常用魔术方法 10.1 操作类 10.2 描述符 10.3 属性操作 10.4 运算分类相关魔术方法 接上一篇 [ ...

  2. [Linux] 009 链接命令

    链接命令:ln 命令名称:ln 命令英文原意:link 命令所在路径:/bin/ln 执行权限:所有用户 语法:ln -s [原文件] [目标文件] 功能描述:生成链接文件 范例: 创建文件 /etc ...

  3. js实现千位符分隔

    前几天面试做保险项目的公司,被问到了一道实现千位符分割方法的题,乍一看挺简单,但做起来最后却没给出来一个合适的解决方法.回来自己琢磨了一个还行的答案. var num = 3899000001, ar ...

  4. 数据导出 写入到excle文件

    import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.poi ...

  5. A AFei Loves Magic

    链接:https://ac.nowcoder.com/acm/contest/338/A来源:牛客网 题目描述 AFei is a trainee magician who likes to stud ...

  6. OpenLayers绘制地图,无需外网,内网访问,提高安全性。

    1. 首先引入ol ,npm i --save ol 2. 创建地图 一个地图初步就这样完成了. 3. 怎么与后台进行交互? 具体参考文档:http://weilin.me/ol3-primer/ch ...

  7. Go语言_更多类型:struct、slice 和映射

    更多类型:struct.slice 和映射 学习如何基于现有类型定义新的类型:本节课涵盖了结构体.数组.切片和映射. Go 作者组编写,Go-zh 小组翻译. https://tour.go-zh.o ...

  8. vue.js(09)--v-for中的key

    v-for中key的使用注意事项 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  9. JS-02 一元运算符理解

    <script> var i=1; j=i++ + i++; console.log(j); //结果是3 console.log(i); //结果是3 </script> 代 ...

  10. 源码分析--ArrayList(JDK1.8)

    ArrayList是开发常用的有序集合,底层为动态数组实现.可以插入null,并允许重复. 下面是源码中一些比较重要属性: 1.ArrayList默认大小10. /** * Default initi ...