Vi&Vim

  1. 简介:

    Vi编辑器是所有Unix及Linux系统下标准的编辑器,在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,Vi也是Linux中最基本的文本编辑器。

    ​ Vim都是Linux中用的最多的编辑器,与Vi不同的是,Vim比较高级,可以视为Vi的升级版本。Vi使用于文本编辑,但是Vim更适用于coding(写代码的)。

    Vim特点

    • 惯于使用Windows的人可能不太习惯使用Vim;
    • Vim是一个功能强大的全屏幕文本编辑器,是 Linux/UNIX上最常用的文本编辑器Vi;
    • Linux上很多命令默认调用的编辑器都是Vim(Linux还有emacs等编辑器,大家熟练之后可以选用自己喜欢的);
    • 可以建立、编辑、显示文本文件;
    • Vim没有菜单,只有命令。只能通过命令来下达指令来进行编辑等操作。
  2. Vim三种模式:

    • 命令行输入Vi/Vim+filename(已经存在的文件名或者创建一个新文件),Vi之后默认进入命令模式;
    • 进入命令模式后等待输入正确指令,输入i/a/o进入像Windows记事本一样的插入模式;
    • 完成修改之后摁Esc之后回到命令模式,输入:可以进入编辑模式;
    • 在编辑模式下输入命令之后(即 “ : ” 之后)回车即可执行,编辑模式命令执行完之后会自动回到命令模式;
    • 命令模式下输入:wq即可保存退出。
    image-20200422211550667
  3. 命令模式:使用 Vim 编辑文件时,默认处于命令模式,敲的任何一个字符系统都会当成命令来处理。在该模式下是不能对文件直接编辑,可以输入快捷键进行一些操作(删除行,复制行,移动光标,粘贴等等)。

    image-20200422215635689
  4. 输入模式:在命令模式状态下输入 i/a/o 等插入命令可以进入输入模式,在该模式Vim可以对文件执行写操作,类似于在 Windows 系统的文档中输入内容。

    image-20200422215758431

  5. 编辑模式:在在命令模式状态下按:进入编辑模式,可以在末行:之后输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等),命令执行后会自动返回命令模式。

    image-20200422215824703

    任何模式下按Esc键都可以返回命令模式。

  6. Vim常用命令(在命令模式下输入):

    • 插入命令

      命令 作用
      i 在当前光标所在字符前插入随后输入的文本,光标后的文本相应向右移动
      I 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符
      o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
      O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
      a 在当前光标所在字符后插入随后输入的文本
      A 在光标所在行的行尾插入随后输入的文本
    • 定位命令

      命令 作用
      :set nu 设置行号
      :set nonu 取消行号
      gg 到第一行
      G 到最后一行
      nG 到第n行
      :n 到第n行
      $ 移至行尾
      0 移至行首
    • 删除命令

      命令 作用
      x 删除光标所在处字符
      nx 删除光标所在处后n个字符
      dd 删除光标所在行
      ndd 删除当前行(包括此行)后 n 行文本
      dG 删除光标所在行到文件末尾内容
      D 删除光标所在处到行尾内容
      :n1,n2d 删除从 a1 行到 a2 行的内容
    • 复制、粘贴和剪切命令

      命令 作用
      yy 复制当前行
      nyy 复制当前行以下n行
      dd 剪切当前行
      ndd 剪切当前行以下n行
      p、P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行
    • 替换和取消命令

      命令 作用
      r 取代光标所在处字符
      R 从光标所在处开始替换后面等长字符,按Esc结束
      u 取消上一步操作
      :n1,n2s/a1/a2/g 将文件中 n1 到 n2 行中所有 a1 都用 a2 替换
      :g/a1/a2/g 将文件中所有的 a1 都用 a2 替换
      :1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
      :%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2
    • 搜索和搜索替换命令

      命令 作用
      /string 搜索指定字符串
      搜索时忽略大小写 :set ic
      /^abc 查找以 abc 为行首的行
      /abc$ 查找以 abc 为行尾的行
      ?abc 从光标所在为主向后查找字符串 abc
      n 向同一方向重复上次的查找指令
      N 向相反方向重复上次的查找指令
      :%s/old/new/g 全文替换指定字符串
      :n1,n2s/old/new/g 在一定范围内替换指定字符串

      要查找的字符串是严格区分大小写的,如果想忽略大小写,则输入命令 :set ic;调整回来输入:set noic

      如果在字符串中出现特殊符号,则需要加上转义字符 "\"。常见的特殊符号有 \、*、?、$ 等。如果出现这些字符,例如,要查找字符串 "10$",则需要在命令模式中输入 "/10$"。

    • 保存和退出命令

      命令 作用
      :w 保存修改
      :w new_filename 另存为指定文件
      :wq 保存修改并退出
      ZZ 快捷键,保存修改并退出
      :q! 不保存修改退出
      :wq! 保存修改并强制退出(文件所有者及root可使用)

    vi-vim-cheat-sheet-sch

posted @ 2020-04-23 00:20  IoT-yangyu  阅读(194)  评论(0编辑  收藏  举报