Linux Vi和Vim编辑器
# Linux Vi和Vim编辑器
# vi和vim的基本介绍
- Linux系统会内置vi文本编辑器
- Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
# vi和vim常用的三种模式
# 正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。
# 插入模式
按下i,I, o,0, a, A, r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可.
# 命令行模式
输入esc 再输入:在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模式中达成的!

# 各种模式的相互切换

# Vi基本操作
| 操作类型 | 操作键 | 功能 |
|---|---|---|
| 光标移动方向 | ↑、↓、←、→ | 上、下、左、右 |
| 翻页 | Page Down 或 Ctrl+F | 向下翻动一整页内容 |
| Page Up或Ctrl+B | 向下翻动一整页内容 | |
| 行内快速跳转 | Home键或"^"、数字"0" | 跳转至行尾 |
| End键或"$"键 | 跳转至行尾 | |
| 行间快速跳转 | 1G或者gg | 跳转到文件的首行 |
| G | 跳转到文件的尾行 | |
| #G | 跳转至文件的第#行 | |
| 行号显示 | :set nu | 在编辑器中显示行号 |
| :set nonu | 取消编辑器中的行号显示 | |
| 删除 | x或Del | 删除光标处的单个字符 |
| dd | 删除当前光标所在行 | |
| #dd | 删除从光标处开始的#行内容 | |
| d^ | 删除当前光标之前到行首的所有字符 | |
| d$ | 删除当前光标处到行尾的所有字符 | |
| 复制 | yy | 复制当前行整行的内容到粘贴板 |
| #yy | 复制从光标处开始的#行内容 | |
| 粘贴 | p(小写) | 将缓冲区的内容粘到贯标位置之后 |
| P | 粘贴到光标位置处之前 | |
| 保存文件 | :w | |
| :w /root/newfile | 另存为其他文件 | |
| 退出vi | :q | 未修改退出 |
| :q! | 放弃对文件内容的修改,并退出vi | |
| 保存文件退出vi | :wq |
| 操作键 | 功能 |
|---|---|
| /word | 从上而下在文件中查找字符串"word" |
| ?word | 从下而上在文件中查找字符串"world" |
| n | 定位下一个匹配的被查找字符串 |
| N | 定位上一个匹配的被查找字符串 |
| u | 按一次取消最近的一次操作,多次重复按u键,恢复已进行的多步操作 |
| U | 用于取消对当前行所做 |
| ZZ | 保存当前的文件内容并退出vi编辑器 |
| :e ~/install.log | 打开新的文件进行编辑 |
| :r /etc/filesystems | 在当前文件中读入其他文件内容 |
| :s /old/new | 将当前行中查找到的第一个字符"old"串替换为"new" |
| :s /old/new/g | 将当前行中查找到的所有字符串"old"替换为"new" |
| :#,# s/oldnew/g | 在行号"#,#"范围内替换所有的字符串"old"为"new" |
| :% s/old/new/g | 在整个文件范围内替换所有的字符串"old"为"new" |
| :s /old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |
# vi和vim快捷键
# 快捷键使用练习
- 拷贝当前行yy ,拷贝当前行向下的5行5yy,并粘贴(输入p)。
- 删除当前行 dd,删除当前行向下的5行5dd
- 在文件中查找某个单词[命令行下/关键字﹐回车查找﹐输入n就是查找下一个]
- 设置文件的行号,取消文件的行号.[命令行下: set nu和:set nonu]
- 编辑/etc/profile文件,在一般模式下,使用快捷键到该文档的最末行[G]和最首行[gg]
- 在一个文件中输入"hello",在一般模式下,然后又撤销这个动作u
- 编辑/etc/profile文件,在一般模式下,并将光标移动到,输入20,再输入shift+g
- 快捷键的键盘对应图

帮助我改善此页面 (opens new window)
上次更新: 2025年5月18日