目录
一、vim编辑器简介
Vim(Vi IMproved)是一个经典的文本编辑器,是Unix和类Unix系统中常用的编辑器之一。它是标准Vi编辑器的增强版本,具有强大的功能和高度的可定制性,被广泛用于程序员、系统管理员和其他技术人员之间。
以下是Vim编辑器的一些主要特点和优势:
模式编辑: Vim采用了模式编辑的概念。它有两种主要模式:命令模式和插入模式。在命令模式下,你可以执行复制、粘贴、查找、删除等操作,而在插入模式下,你可以像在普通文本编辑器中一样直接输入文本。
快捷键: Vim通过按键来触发各种编辑操作,这些快捷键组合极大地提高了编辑效率。初学者可能需要一些时间来适应这种方式,但一旦熟悉,就能显著提高工作速度。
高度可定制: Vim可以根据用户的需求进行高度定制。用户可以编写自己的Vim脚本,添加自定义功能或修改现有功能,从而使编辑器适应个人工作流程。
强大的文本处理功能: Vim提供了丰富的文本处理功能,如搜索和替换、缩进调整、多级撤销和重做、文本对象选择等。这些功能使得在大型文本文件中进行编辑变得相对容易。
支持多种编程语言: Vim支持许多编程语言的语法高亮显示和代码折叠功能,使得代码编辑和阅读更加舒适。
插件生态系统: Vim拥有庞大的插件生态系统,用户可以轻松安装各种插件来扩展编辑器功能,比如代码补全、版本控制集成等。
跨平台支持: Vim可以在各种操作系统上运行,包括Unix、Linux、macOS和Windows。
虽然Vim拥有很多优势,但对于初学者来说,学习曲线可能会相对陡峭,因为需要掌握许多快捷键和命令。然而,一旦掌握了基本操作,Vim会成为一个非常高效和强大的编辑器。
二、vim编辑器的三种模式
-
插入模式(Insert Mode): 在普通模式下,按下
i
、I
、a
、A
、o
、O
等键可以进入插入模式。在插入模式中,你可以直接输入文本,就像在普通的文本编辑器中一样。这意味着你可以开始键入文字而不是执行编辑命令。按下Esc
键可以从插入模式返回普通模式。 -
末行模式(Command-Line Mode): 末行模式也称为Ex模式,它允许你执行一些在普通模式下无法直接完成的复杂命令和操作。要进入末行模式,在普通模式下按下冒号
:
键。在这个模式下,你可以执行各种操作,比如保存文件、搜索和替换文本、设置编辑器选项等。输入完命令后,通常按下Enter
键来执行它。按下Esc
键可以退出末行模式,返回普通模式。 -
普通模式/命令模式(Normal Mode): 这是Vim的默认模式,打开文件后会进入这个模式。在普通模式下,你可以通过按键执行各种命令,包括移动光标、删除文本、复制粘贴等。在这个模式中,Vim被称为“模式编辑器”,因为你可以通过按键触发各种编辑命令。例如,按下
dd
可以删除整行文本,按下yy
可以复制整行文本。
命令模式 --> 插入模式
i insert, 在光标所在处输入
I 在当前光标所在行的行首输入
a append, 在光标所在处后面输入
A 在当前光标所在行的行尾输入
o 在当前光标所在行的下方打开一个新行
O 在当前光标所在行的上方打开一个新行
2.1命令模式
命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作
操作键 | 功能 |
---|---|
ctrl+f或者Pagedown | 向下翻页 |
ctrl+b或者Pageup | 向上翻页 |
Home;^;0 | 跳到本行的行首 |
按 End 键或$ | 跳转到本行的行尾 |
1G 或 gg | 跳转到文件的第一行包括空行 |
G | 跳转文件的末尾 |
#G | #代表行号数字,直接跳转到#行 |
M | 跳转到当前显示页面的中间行 |
x或delete | 删除当前光标的字符 |
dd | 删除一整行 |
#dd | 删除当前光标开始到第#行(包括当前行) |
d^ | 删除当前光标之前到行首 往前不包括当前光标处的字符 86 往后删除包括当前光标处的字符 |
d$ | 删除当前光标到行尾 |
dw | 删除当前光标处的单词 |
R 或shift+r | 替换当前光标处文字,会进入替换模式 |
yy | 复制当前光标处整行 |
#yy | 复制当前光标处向下的#行 |
p | 粘贴到光标处下一行 |
P | 粘贴到光标处上一行 |
u | 只消除上一次可多次使用 |
U | U 取消所有操作 |
/字符 | 向下查找 |
?字符 | 向上查找 |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指定末行模式 |
2.2 插入模式
输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 行首插入命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 行尾插入命令 |
2.3 末行模式
末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
快捷键 | 功能效果 |
---|---|
:q | 退出不保存 |
:q! | 强制退出不保存 |
:w | 保存 |
:w 新文件名 | 另存为新文件: |
:wq :zz :x | 保存并退出 |
:e 其他文件名(如果已修改需要加e!) | 打开新文件进行编辑 |
:r 其他文件名 | 在当前文件中读入其他文件内容 |
!命令 | 执行命令 |
:r!命令 | 读入命令 |
: [替换范围] s /旧的内容/新的内容[/g] | |
:s /old/new | 替换当前行中的第一个old改为new |
:s /old/new/g | 替换当前行中的所有old改为new |
:#,# s /old/new/g | #到#行所有old改为new |
:%s /old/new/g | %代表全文 全文替换所有old改为new |
# d | 删除 第#行 |
#,# d | 删除#到#行 |
#,# y | 复制三到6 行 |
:set nu 或:set nonu | 加行号 不显示行号 |
:set cul (:set nocul ) | 光标所在行有下划线(取消) |
no hl | 取消高亮 |
:set ai | 对齐 回车后和上一行对齐 |
:set all 可以看所有的一些帮助 | 可以看所有的一些帮助 |
set key=password (大X) | 加密码 |
set key=空白 | 取消密码 |
set tabstop=4 (set ts=4) | tab 一次为四个空格 |
.!命令 (who,date ) | 将date命令插入当前行注意会覆盖当前行 |