vi学习笔记

Vim基础操作

Vim编辑器有四种主要的工作模式:普通模式、插入模式、命令模式和可视模式。

  1. 普通模式(Normal Mode)‌:这是Vim的默认模式,用于移动光标和执行命令。在普通模式下,按键被解释为命令,而不是直接插入文本。常用的移动光标键包括h(左移)、j(下移)、k(上移)、l(右移),以及w(向前移动一个词)、b(向后移动一个词)、gg(跳转到文件开头)、G(跳转到文件末尾)等。‌1
  2. 插入模式(Insert Mode)‌:用于文本编辑,类似于普通文本编辑器的行为。可以通过按iIaA等键进入插入模式。在插入模式下,按Esc键返回普通模式。
  3. 命令模式(Command Mode)‌:用于输入命令,例如保存文件、退出Vim等。在普通模式下,按:键进入命令模式。常用的命令包括:w保存文件、:q退出Vim、:wq保存并退出等。
  4. 可视模式(Visual Mode)‌:允许选择文本块以进行操作,如复制、删除或替换。可以通过按v(按字符选择)、V(按行选择)、Ctrl+v(按块选择)进入可视模式。一旦选择文本块,可以使用普通模式的命令来操作选定的文本。‌

一、编辑操作

1、输入编辑内容

如果在其它模式下,需要先按 ESC 键,到一般模式,然后点击 i 按键,即可进入到 INSERT 插入模式

2、复制粘贴

1)、从其它地方复制的文本内容,粘贴到文件中(插入模式)

直接 vim file ,进入 INSERT 模式后,快捷键进行 ctrl + v 即可进行将文本内容进行粘贴。

2)、从当前文本中复制粘贴选中的部分内容(可视模式)

  • ESC 回到普通模式
  • 将光标移动到需要进行复制的文本字符前面,按 v 键(小写为选中对应字符,大写为选中整行) 进入到 VISUAL模式。
  • 移动左右键来选中对应的文本,被选中的内容背景显示为白色。
  • 按下 y 键复制选中的内容,按下 d 剪切选中的内容
  • 将光标移动到需要粘贴的位置,按下 p (小写)将复制的内容粘贴到此处。

3)、从当前文本中复制整行内容并进行粘贴(一般模式)

  • 首先按 ESC 回到 一般模式
  • 将光标移动到需要进行复制的行,按下 yy 将复制光标所在的一整行内容。
  • 移动光标到合适的位置,按 p(小写)将内容粘贴到光标的下一行,按 P(大写)将内容粘贴到光标的上一行
  • 【一般模式下选中复制内容操作】:
    • nyy:n 为数字,表示复制光标所在行到向下的 n 行,如 输入 6yy 表示复制从光标所在行往下,一共6行的内容。
    • y1G:复制光标所在的行到第一行的所有内容
    • yG:复制光标所在行到最后一行的所有内容
    • y0:复制光标所在的字符到该行首的所有内容。
    • y$:复制光标所在的字符到改行尾的所有内容。

4)、剪切/删除 当前文本中的内容(一般模式)

如果要删除或剪切一些内容,一般是按 d,主要用法如下:

  • dd:默认删除光标所在行的整行内容,此时该内容在粘贴版上,按p可以在需要的地方进行粘贴,否则相当于删除该行 。
  • ndd:n 为数字表示要删除从光标所在行开始往下的 n 行内容。如 6dd表示删除从光标所在行开始往下的6行内容。
  • d1G:删除光标所在行,到第一行的所有内容。
  • dG:删除光标所在行到最后一行的所有内容。
  • d0:删除光标所在位置的字符到该行首的所有内容。
  • d$:删除光标所在位置的字符到该行尾的所有内容。
  • nx:连续向后删除 n 个字符,如 6x表示连续向后删除 6 个字符。

3、撤销与重做(一般模式)

  • u:撤销当前的操作,相当于恢复之前的内容
  • ctrl + r:重做上一步。

二、常用的相关操作

1、光标移动操作 (一般模式)

  • gg:移动到文件的第一行行首位置
  • G:移动到文件的最后一行
  • nG:n表示数字,如 6G 表示移动到第6行
  • 0:移动到当前行的行首
  • $:移动到当前行的行尾

2、搜索字符内容(一般模式)

  • /string:搜索光标以后的所有 string
  • ?string:搜索光标之前的所有 string
  • 匹配之后点击 enter进行搜索,按 n 跳转到下一个,按N跳转到上一个。
  • 【命令行模式下设置搜索结果】:
    • :set hlsearch:高亮显示匹配的结果
    • :set nohlsearch:取消高亮显示
    • :set ignorecase:搜索前,输入该指令,搜索时将忽略大小写
    • :set noignorecase:搜索前,输入该指令,搜索时区分大小写,默认情况下区分大小写

3、替换字符(命令行模式)

进入到命令行模式 :,输入如下命令

  • 1,$s/word1/word2/g:从第一行到最后一行搜索 word1字串,并用word2来进行全部替换, g 表示全局替换。
  • m,ns/word1/word2/gm,n表示行数,从mn行之间搜索 word1字串,并用word2来进行全部替换。

4、命令行模式下的常用命令:

  • w:将当前文件保存
  • w!:强制保存
  • e!:丢弃当前做的所有更改,恢复到上一次保存的结果。
  • q:离开vim,如果有编辑且未保存会警告提示。
  • q!:强制离开,且不保存数据。
  • wq:保存数据并离开vim
  • w <fileName>:将当前文件另存为 fileName的文件。
  • m,n w <fileName>:将 m,n行之间的内容保存成新的文件 fileName,包含mn行。
  • !<command>:暂时离开vim,执行临时的命令command,并查看结果。如 vim 正在编辑文件,此时需要临时执行 df -h命令并查看结果,且不想退出vim时,可以在命令行模式下输入指令:!df -h
  • set nu:显示行号
  • set nonu:不显示行号

5、多文档编辑

vim <file1> <file2> 将同时开启编辑多个文件,输入:进入到命令行模式

  • n:跳到下一个文件进行编辑
  • N:跳到上一个文件进行编辑
  • files:列举 vim 开启的所有文档:

发表评论