vim文本编辑器
vim介绍
vim是Linux自带的文本编辑器,具有命令模式、编辑模式、末行模式三种模式。
模式间的切换:
- 命令模式下,按键盘上的
i、a等键可进入编辑模式 - 命令模式下,输入
:可进入末行模式 - 编辑模式下,按键盘上的
esc键可回到命令模式 - 末行模式下,按一次(慢退)或两次(快退)
esc键可回到命令模式
| vim打开文件方式 | 说明 |
|---|---|
| vim filename | 打开或新建一个文件,并将光标置于第一行的首部 |
| vim -r filename | 恢复上次vim打开时崩溃的文件 |
| vim -R filename | 用只读的方式打开文件 |
命令模式
光标移动
| 快捷键 | 功能描述 |
|---|---|
| h、j、k、l | 光标向左、下、上、右移动 |
| gg | 光标移动到首行 |
| G | 光标移动到末行 |
| b/B | 光标向前移动一个单词 |
| w/W | 光标向后移动一个单词 |
| ctrl+b 或 PageUp | 翻屏操作,向上翻 |
| ctrl+f 或 PageDown | 翻屏操作,向下翻 |
| ctrl+u | 向上翻半屏 |
| ctrl+d | 向下翻半屏 |
| ` | 光标移动到上次编辑处 |
| 数字+G | 快速将光标移动到指定行 |
| 数字+上下方向键 | 以当前光标为准,向上/下移动n行 |
| 数字+左右方向键 | 以当前光标为准,向上/下移动n个字符 |
| H | 光标移动到屏幕顶部 |
| M | 光标移动到屏幕中间 |
| L | 光标移动到屏幕底部 |
| shift+6 | 光标移动到行首 |
| shift+4 | 光标移动到行尾 |
选中内容
| 快捷键 | 功能描述 |
|---|---|
| v | 字符选中 |
| V 或 shift+v | 行选中 |
复制内容
| 快捷键 | 功能描述 |
|---|---|
| y | 复制已选中的文本到剪贴板 |
| n+yy | 复制光标所在行,此命令前可以加数字n,表示复制n行 |
| yw | 复制光标位置的单词 |
| ctrl+v,方向键,yy | ctrl+v,并按方向键选中区块,按下yy进行复制 |
粘贴内容
| 快捷键 | 功能描述 |
|---|---|
| p | 将剪贴板中的内容粘贴到光标后 |
| P | 将剪贴板中的内容粘贴到光标前 |
删除
| 快捷键 | 功能描述 |
|---|---|
| x | 删除光标所在位置的字符 |
| X | 删除光标前一个字符 |
| dd | 删除光标所在行,删除之后,下一行上移;严格来说它是剪切命令,可以配合p命令使用 |
| D | 删除光标位置到行尾的内容,删除之后,下一行不上移;也有剪切的作用 |
| ndd | 删除当前行(包括此行)后n行文本;可以理解成剪切多行,配合p命令使用 |
| dG | 删除光标所在行一直到文件末尾的所有内容 |
撤销/恢复
| 快捷键 | 功能描述 |
|---|---|
| u | 撤销 |
| U | 撤销所有编辑 |
| ctrl+r | 恢复 |
字符转换
| 快捷键 | 功能描述 |
|---|---|
| ~ | 转换大小写 |
| u | 转成小写 |
| U | 转成大写 |
编辑模式
| 快捷键 | 功能描述 |
|---|---|
| i | 在当前光标所在位置插入,光标后的文本相应向右移动 |
| o | 在光标所在行的下方插入新的一行,光标停在空行首,等待文本输入 |
| O | 在光标所在行的上方插入新的一行,光标停在空行首,等待文本输入 |
| a | 在当前光标所在位置之后插入 |
| A | 在光标所在行的行尾插入,相当于光标移动到行尾再执行a命令 |
末行模式
保存/退出
| 快捷键 | 功能描述 |
|---|---|
| wq | 保存并退出vim编辑器 |
| wq! | 保存并强制退出vim编辑器 |
| q | 不保存并退出vim编辑器 |
| q! | 不保存并强制退出vim编辑器 |
| w | 保存但不退出vim编辑器 |
| w! | 强制保存文本 |
| w filename | 另存到filename文件中 |
| x! | 保存文本,并退出编辑器 |
| ZZ | 直接退出编辑器 |
查找
| 快捷键 | 功能描述 |
|---|---|
| /abc | 从光标所在位置向前查找字符串abc |
| ?abc | 从光标所在位置向后查找字符串abc |
| /^abc | 查找以abc为行首的行 |
| /abc$ | 查找以abc为行尾的行 |
行号显示
| 快捷键 | 功能描述 |
|---|---|
| set nu | 行号显示 |
| set nonu | 取消行号显示 |
文件切换
使用vim打开多个文件后,在末行模式下可以进行切换。
| 快捷键 | 功能描述 |
|---|---|
| files(%a表示激活状态,#表示上一个打开的文件) | 查看当前打开的所有文件 |
| open filename | 切换到filename文件 |
| bp | 切换到上一个文件 |
| bn | 切换到下一个文件 |
扩展
在末行模式下,输入syntax on/off,能够显示或取消显示代码颜色。
vim内置计算器的使用:
- 进入编辑模式
- 按
"ctrl+r,光标变成引号,输入=,光标转到最后一行 - 输入需要计算的内容,按下Enter键,计算结果会替代引号,光标恢复
vim的配置:
- 文件打开时,末行模式下输入的配置为临时配置,关闭文件后配置无效
- 修改个人配置文件,可以永久保存个人配置(~/.vimrc,如果没有可以自行创建)
- 修改全局配置文件,对每个用户生效(vim自带,/etc/vimrc)
注:个人配置文件优先级更高,当个人配置和全局配置发生冲突时,系统以当前用户的个人配置文件为准
处理异常:
- 在编辑文件后,未正常保存退出时,会产生异常退出交换文件(.原文件名.swp);将交换文件删除后,再次打开文件时,便不会有提示:"#rm -f .原文件名.swp"。