it:vi_base
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
it:vi_base [2024/05/12 15:11] – 移除 - 外部编辑 (未知日期) 127.0.0.1 | it:vi_base [2024/05/12 15:11] (当前版本) – ↷ 链接因页面移动而自动修正 vim | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | # 知识 | vim命令基础 | ||
+ | vi/vim 共分为三种模式,分别是**命令行模式(Command mode)** ,**输入模式(Insert mode)** 和**底线命令模式(Last line mode)** 。 | ||
+ | |||
+ | 下面我们就详细来看看这三种模式的操作。 | ||
+ | |||
+ | ## 命令行模式 | ||
+ | |||
+ | 也称为交互模式,这是 vim 的默认模式,每次使用 vim 命令编辑文件的时候,就会先进入这个模式。 | ||
+ | |||
+ | ``` | ||
+ | vim config.txt | ||
+ | ``` | ||
+ | |||
+ | 特征: | ||
+ | |||
+ | - 在这个模式下,你不能输入文本; | ||
+ | - 它可以让我们在文本间移动,删除一行文本,复制黏贴文本,跳转到指定行,撤销操作,等等。 | ||
+ | |||
+ | ## 常用命令 | ||
+ | |||
+ | | 命令 | 作用 | ||
+ | | ---- | ------------------------------------------------------------ | | ||
+ | | i | 切换到输入模式,以输入字符 | ||
+ | | x | 删除当前光标所在处的字符 | ||
+ | | X | 删除当前光标前一个字符 | ||
+ | | : | 切换到底线命令模式,以在最u底一行输入命令 | ||
+ | | gg | 跳转到文件开头 | ||
+ | | G | 跳转到文件末尾 | ||
+ | | dd | 删除光标所在一整行数据,且临时存储到缓存区 | ||
+ | | yy | 复制整行文本到临时缓存区 | ||
+ | | p | 将指定缓存区内容放在光标位置之下;整行文本放在行下面,若是非整行文本则放在光标后面 | | ||
+ | | P | 将指定缓冲区的内容放到当前光标的位置之上;整行文本放在行下面,若是非整行文本则放在光标后面 | | ||
+ | | u | 撤销最近的修改,针对所有修改 | ||
+ | | U | 撤销对当前行上做的所有修改 | ||
+ | | r | 替换光标位置上的一个字符,但不会进入 insert 模式,先按 r 再按要替换成的字符,也可以 2r 把光标后面两个都替换掉 | | ||
+ | | R | 替换从光标位置开始的字符,同时改变 vim 到文本输入模式 | ||
+ | | . | 重复上一次的修改 -- 注意该命令是英文符号点 | ||
+ | | >> | ||
+ | | << | ||
+ | |||
+ | ## 翻页命令 | ||
+ | |||
+ | | 命令 | ||
+ | | -------- | ---------------------------------- | | ||
+ | | Ctrl + d | 将光标向下翻半屏,通常每次翻屏12行 | | ||
+ | | Ctrl + u | 将光标向上翻半屏,通常每次翻屏12行 | | ||
+ | | Ctrl + f | 将光标向下翻满屏,通常每次翻屏24行 | | ||
+ | | Ctrl + b | 将光标向上翻满屏,通常每次翻屏24行 | | ||
+ | |||
+ | ## 输入模式 | ||
+ | |||
+ | 这个模式是我们熟悉的文本编辑器的模式,就是可以输入任何你想输入的内容。进入这个模式有几种方法,最常用的方法是按字母键 i ( i、I、a、A、o、O 都可以进入插入模式,只是所处的位置不同),退出这种模式,只需要按下 Esc 键。 | ||
+ | |||
+ | | 命令 | 作用 | ||
+ | | ---- | --------------------------------------------------------- | | ||
+ | | i | 在光标的左侧输入文本,光标右侧文本向右移动 | ||
+ | | I | 在光标所在行的行首输入文本,相当于在行首执行了 i 命令 | ||
+ | | a | 在光标的右侧输入文本 | ||
+ | | A | 在光标所在行的尾部进行输入文本,相当于在光标行尾执行a命令 | | ||
+ | | o | 在光标所在行的下一行增添新的一行,光标停留在新行的行首 | ||
+ | | O | 在光标所在行的上一行增添新的一行,光标停留在新行的行首 | ||
+ | |||
+ | 输入模式(Insert mode)没什么可说的了,就是进入了编辑模式,可以自由编辑了。 | ||
+ | |||
+ | ## 底线命令模式 | ||
+ | |||
+ | vim 的底线命令模式:在命令模式下按: | ||
+ | |||
+ | **注意:** 指令执行之后会把自动返回到命令行模式的。 | ||
+ | |||
+ | **作用:** 底线命令模式可以对文件中指定的内容进行保ii存、替换、查询、删除等等操作。 | ||
+ | |||
+ | ## 常用命令 | ||
+ | |||
+ | | 命令 | ||
+ | | ----------------- | ------------------------------------------------------------ | | ||
+ | | :q | 退出 vim 编辑器 | ||
+ | | :q! | 不保存文件,直接退出 vim 编辑器 | ||
+ | | :w | 只保存文件,但不退出 vim 编辑器 | ||
+ | | :wq | 保存文件且退出 vim 编辑器 | ||
+ | | ZZ | 保存文件且退出 vim 编辑器: | ||
+ | | : | ||
+ | | :%d | 清空文件内容(跳到行首 dG 执行也可删除) | ||
+ | | :! command | ||
+ | | :/ | ||
+ | | :? | ||
+ | | : | ||
+ | | :set nu | 显示行号 也可以输入 set number | ||
+ | | :set nonu | 取消行号 | ||
+ | | :set ai/ | ||
+ | |||
+ | ## 其他模式 | ||
+ | |||
+ | ctrl + v 进入 **块选择模式**,我们通过一个案例来展示这个模式的基本使用。 | ||
+ | |||
+ | **vim 中批量添加注释** | ||
+ | |||
+ | ``` | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | 复制代码 | ||
+ | ``` | ||
+ | |||
+ | ## vi用例 | ||
+ | |||
+ | ### 全选操作(ggVG++) | ||
+ | |||
+ | gg 让光标移到首行(在vim才有效,vi中无效) | ||
+ | V | ||
+ | G 光标移到最后一行 | ||
+ | |||
+ | 选中内容以后就可以其他的操作了,比如: | ||
+ | |||
+ | - d 删除选中内容 | ||
+ | - y 复制选中内容到0号寄存器 | ||
+ | - " | ||
+ | - 全部删除:按esc后,然后dG | ||
+ | - 全部复制:按esc后,然后ggyG | ||
+ | - 全选高亮显示:按esc后,然后ggvG或者ggVG | ||
+ | |||
+ | 以上。 | ||
+ | |||
+ | > 作者:程序猿秃头之路 | ||
+ | > | ||
+ | > 链接:https:// |