vi是Linux命令行界面下的文字编辑器,vim是vi的增强版(Vi IMproved),完全兼容

  可以理解成普通的txt文本与word文档之间的差距。

  注:还有一款全屏编辑器是nano,可以了解下

【vim的三种模式】

  普通模式,编辑模式,命令模式

  

  1.普通模式

    使用vim命令打开文件,只能使用上下左右键移动光标,并且操作复制,粘贴,删除等之类的工作

  2.编辑模式

    普通模式下不能对文件内容进行编辑,只有按下“i,I,o,O,a,A,r,R,s,S”,等字母,进入编辑模式之后才可以执行录入文字

    编辑模式有一个插入的标记在屏幕的最下方

  3.命令模式

    在普通模式下,输入“:/  ?”时,光标会自动定位在那一行,此模式中可以执行保存,退出,搜索,替换,显示行号等相关操作

    

  vim [OPTION]...FILE...
  如果文件存在,则打开它,如果不存在,则打开一个新的文件,如果存盘则创建文件,不存盘则不创建文件

【vim打开文件进行快速定位】    

    +#:打开文件后,直接让光标处鱼第#行的行首
    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配当的行的行首
   

 vim + /etc/passwd

    -b:二进制方式打开文件
    -d:比较多个文件的差异
    -m:只读打开文件
    ex file 或 vim -e:直接进入ex模式

【模式转换】

  普通模式 ----> 插入模式
    i:insert,在光标所在处输入
    I:在光标所在行的行首输入
    a:在光标所在处的后一个字符输入
    A:在光标所在行的行尾输入
    o:在当前光标所在行的下一行新开一行 open
    O:在当前光标所在行的上一行新开一行

  字符间跳转:
    h:左
    j:下
    k:上
    l:右 #[hljk]:指定一次跳转多少的字符数

  单词间跳转:
    w:跳到下一个单词的词首
    e:当前或下一个单词的词尾
    b:当前或上一个单词的词首
  #[web]:指定一次跳转多少个单词数
  

  当前页跳转
    H:页首
    M:页中
    L:页底

   翻屏:
    Ctrl+f:向文件尾部翻一屏
    Ctrl+b:向文件首部翻一屏
    Ctrl+d:向文件尾部翻半屏
    Ctrl+u:向文件首部翻半屏

  行首行尾跳转:
    ^:调到行首非第一个非空白字符处
    0:调到行首
    $:跳转至行尾

  行间移动:
    #G:跳到第#行
    G:最后一行   例如:1G或gg:第一行
    

  字符编辑:
    x:删除光标处的字符
    #x:删除光标处起始的#个字符
    xp:交换光标所在处及其后面字符的位置 原理是:先删除光标所在位置,然后使用p粘贴
    ~:转换大小写

  替换命令:
    r:替换个光标所在处的字符 7rv 光标后7为替换成v
    R:切换成replace模式

  删除命令:
    d:删除命令,可结合光标跳转命令实现范围删除
    d$:删除光标至行尾的字符
    d^:删除光标至行首非空白字符处
    d0:删除光标至行首
    dw:删除光标当标至下一个单词的词首
    de:删除光标至当前或下一个单词的词尾
    db:删除光标至上一个单词的词首
    dd:删除光标所在行
    #dd:删除#光标后的#行

  复制命令:
    y:复制
    y$:从光标所在处复制到行尾
    y0:从光标所在处复制到行首
    y^:从光标所在处复制到行首的非空白字符处
    ye:从光标所在处复制至当前或下一个单词的词尾
    yw:从光标所在处复制至下一个单词的词首
    yb:从光标所在处复制至上一个单词的词首
    yy:复制光标所在行
    #yy:复制多行
  

  粘贴命令:
    p:粘贴,如果缓冲区为整行,则粘贴在光标所在行的下一行,否则,粘贴在光标所在处的后面
    P:粘贴,如果缓冲区为整行,则粘贴在光标所在行的上一行,否则,粘贴在光标所在处的前面

  可视化模式:
    v 按字符选定
    V 按航选定,经常结合编辑命令,d,c,y
    撤销此前的编辑
    u(undo)撤销此前的操作
    #u 撤销指定次数的操作
    撤销此前的撤销

vim中的末行模式:

    按“:”进入末行模式

(1)地址定界
  :start_pos,end_pos
  #     具体第#行,例如2表示第2行
  #,#     从左侧#表示行起始,到右侧#表示行结束
  #,+#     从左侧#表示行起始,加上右侧#表示的行数
  .       表示当前行
  $       表示最后一行
  %       全文,相当于1,$

  /part1/,/part2/
        从第一次被part1模式匹配到的行开始,一直到第一次被part2匹配到的行结束
    使用方式:
      后跟一个编辑命令
        d
        y
        w /PATH/TO/SOMEWHERE

:,20w /tmp/.txt

        r filename:读取文件内容到当前文件中

:r /etc/fstab

        q:退出
        q!:强制退出
        wq:保存并退出
        wall 保存所有
        x:保存并退出
        ZZ:保存退出
        ZQ:不保存退出
(2)查找
    /PATTERN 从当前光标所在处尾部查找
    ?PATTERN 从当前光标所在处首部查找
    n 与命令同方向
    N 与命令反方向
(3)替换
    s 在末行模式下完成查找替换操作
    s/要查找的内容/替换为的内容/修饰符
    替换的内容可以使用反向引用\1,\2,可以使用&引用前面查找时查到的内容
  

  修饰符号:
    i 忽略大小写
    g 全局替换,默认情况下,每一行只替换第一次出现

【定制vim的工作特性】

  配置文件:永久有效
  全局 :/etc/vimrc
  个人:~/.vimrc 需要自己创建
  末行:当前vim进程有效

    (1)显示行号:
      set nu 显示;
      set nonu 取消显示;

    (2)括号成对匹配:括号高亮
      set sm:设置;
      set nosm:取消;

    (3)自动缩进:
      set ai
      set noai

    (4)高亮搜索:
      set hlsearch high light search
      set nohlsearch nohls

    (5)语法高亮:
      syntax on
      syntax off

    (6)忽略字符的大小写:
      set ic
      set noic

    (7)文本格式:
      set fileformat=dos :启用windows格式;
      set fileformat=unix:启用unix格式;

    (8)设置文本宽度:
      set textwidth=65 (vim only)
      set wrapmargin=16

    (9)设置tab键的缩进长度:
      set tabstop=4
      set softtabstop=4:设置一个退格键退回来的长度;
      set shiftwidth=#:设置每一级缩进的长度;
      set authindent:表示自动缩进;

      set noautoindent   取消自动缩进,使用方法:在粘贴数据之前使用,然后粘贴文件。如阿云托管k8s集群需要的config文件

      set paste   粘贴文本文件

    (10)帮助信息:
      :help option-list
      :set or :set alal

Linux文本编辑器-vi/vim的更多相关文章

  1. 文本编辑器 vi/vim 的使用

    文本编辑器 vi/vim 一.启动与退出 1. vim 2. vim 文件名(可以是存在的文件,也可以是不在的文件) 3.退出 :q   或者:x 在非“插入”模式二.vi/vim的工作模式 1.正常 ...

  2. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第六集之补充:文本编辑器vi/vim】

    一:vi/vim的基本使用流程,掌握这三个步骤就算是入门vi或者vim.接下来的学习都是对vim命令和使用技巧的掌握,这要求各位自己去记忆.因为很少使用到某些命令,自然我们经常忘记这些命令,所以一旦忘 ...

  3. Linux 文本编辑器vi命令

    1.Vim Vim  是一个功能强大的全屏幕文本编辑器,是 Linux/UNIX 上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件. Vim 没有菜单,只有命令 2.Vim 工作模式 3.插入 ...

  4. linux文本编辑器教学

    linux常见服务 一. 文本编辑器 vi vim是vi增强版 vim需要安装 sudo apt-get -y install vim 1 vim的三种工作模式 1 编辑模式 命令模式=>编辑模 ...

  5. Linux系列教程(十)——Linux文本编辑器vim

    通过前面几篇博客我们终于结束了Linux常用命令的介绍,Linux常用命令主要包括以下: ①.Linux文件和目录处理命令 ②.Linux链接命令和权限管理命令 ③.Linux文件搜索命令 ④.Lin ...

  6. Linux环境下vi/vim编辑器常用命令

    使用vi文本编辑器 配置文件是Linux系统中的显著特征之一,其作用有点类似于Windows系统中的注册表,只不过注册表是集中管理,而配置文件采用了分散的自由管理方式.那么如何使用Linux字符操作界 ...

  7. Linux文本编辑器vim

    目录 1.vim 的工作模式 2.插入命令 3.定位命令 4.删除命令 5.复制和剪切命令 6.替换和取消命令 7.搜索和搜索替换命令 8.保存和退出命令 9.vim 高级操作 10.总结 通过前面几 ...

  8. 最优秀的5个Linux文本编辑器

    from: http://article.yeeyan.org/view/169956/174836 作为不久前举办的比赛的一部分内容,我从那些选出他们最喜欢的Linux文本编辑器的极客读者们那获得了 ...

  9. Linux文本编辑器(九)

    [教程主题]:Linux文本编辑器 [1]vi vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任 何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令. 由于对U ...

随机推荐

  1. Flutter: 图解 ListView 的多种绑定方式

       小菜昨天刚学习了一下底部状态栏 BottomNavigationBar 的基本使用方法,今天学习一下 ListView 的基本用法.       小菜觉得 Flutter 中 ListView ...

  2. 基于goahead 的固件程序分析

    # 前言 本文由 本人 首发于 先知安全技术社区: https://xz.aliyun.com/u/5274 最近在分析 dlink 的一个固件时遇到了用 goahead 开发的 web 服务.本文以 ...

  3. oracle 用户创建、修改、删除

    创建用户: create user test identified by test; 修改密码: 1.alter user test identified by mima; 2.passw[ord]  ...

  4. java基础(八) 深入解析常量池与装拆箱机制

    引言   本文将介绍常量池 与 装箱拆箱机制,之所以将两者合在一起介绍,是因为网上不少文章在谈到常量池时,将包装类的缓存机制,java常量池,不加区别地混在一起讨论,更有甚者完全将这两者视为一个整体, ...

  5. 回归JavaScript基础(四)

    主题:JavaScript变量.作用域和内存问题 JavaScript的变量和别的语言比起来是与众不同的.说道变量,不得不谈他的作用域.同很多语言一样,JavaScript开发者也不用担心开发中内存的 ...

  6. ASP.NET中使用UpdatePanel时用Response输出出现错误的解决方法

    asp.net中执行到Response.write("xx");之类语句或Microsoft JScript 运行时错误: Sys.WebForms.PageRequestMana ...

  7. Oracle v$session/v$sql 表

    在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等. V$SESSION中的常用列 V$SESS ...

  8. 网罗收集10046的各种Case,方便trace信息的收集

    每逢与遇到SQL相关性能,我们总是需要收集10046的,来查看和诊断问题.因为10046真实的反应的SQL语句执行的时候的真实信息,解析,执行,获取的时间消耗,row source operation ...

  9. 封装CIImage实现实时渲染

    封装CIImage实现实时渲染 CIImage属于CoreImage里面的东东,用来渲染图片的,为什么要封装它呢?其实很简单,封装好之后使用更加方便. 如果直接使用CIImage渲染图片,使用的流程如 ...

  10. mac 程序 Access-JSON-Data

    mac 程序 Access-JSON-Data 说明 直接将JSON数据生成文件,便于调试. 效果图 源码 https://github.com/YouXianMing/Create-JSON-Mod ...