Linux vim
编辑器详解
1. vim 基础操作
启动 vim
要打开或编辑文件,可以在命令行输入 vim
命令,后跟文件名:
vim filename
如果文件不存在,vim
会创建一个新的空文件。
vim 模式
vim
操作基于不同的模式,不同模式下的操作是不同的。vim
主要有三种模式:
- 普通模式(Normal Mode):这是
vim
启动后的默认模式,用于浏览、删除、复制、粘贴等操作。 - 插入模式(Insert Mode):用于文本输入模式。通过按下
i
进入插入模式。 - 命令模式(Command Mode):用于执行
vim
的各种命令,如保存、退出、查找等。按下:
进入命令模式。
切换模式:
- 从普通模式进入插入模式:按
i
(光标前插入)、I
(行首插入)、a
(光标后插入)、A
(行尾插入)。 - 从插入模式返回普通模式:按
Esc
键。 - 从普通模式进入命令模式:按
:
。
2. 常用命令与操作
2.1 文件操作
保存文件
:
在命令模式下,输入
:w
保存文件。保存并退出
:
输入
:wq
或ZZ
(大写的两次z
)。退出不保存
:
输入
:q!
。仅退出
:
输入
:q
(如果有未保存的更改,会提示无法退出,必须使用:q!
强制退出)。
2.2 光标移动
- 箭头键:上下左右移动。
- 跳到行首:按
0
。 - 跳到行尾:按
$
。 - 跳到下一行:按
j
。 - 跳到上一行:按
k
。 - 跳到前一个单词的开始:按
b
。 - 跳到下一个单词的开始:按
w
。 - 跳到文件的开头:按
gg
。 - 跳到文件的末尾:按
G
。 - 跳到指定行:在命令模式下输入
:n
,其中n
为行号。
2.3 文本编辑
- 删除字符:按
x
删除光标下的字符。 - 删除一行:按
dd
删除当前行。 - 删除多行:在命令模式下输入
ndd
(n
为行数)。 - 剪切文本:使用
d
配合移动命令(如dw
删除一个单词)。 - 复制一行:按
yy
复制当前行。 - 粘贴:按
p
(在光标后粘贴)或P
(在光标前粘贴)。
2.4 文本查找与替换
查找文本
:
在命令模式下输入
/pattern
,按n
跳转到下一个匹配项,按N
跳转到上一个匹配项。替换文本
:
在命令模式下输入
:s/old/new
,将当前行中的第一个old
替换为new
。要替换所有匹配项:
:s/old/new/g
。要替换整个文件的匹配项:
:%s/old/new/g
。
2.5 撤销与重做
- 撤销操作:按
u
。 - 重做操作:按
Ctrl + r
。
3. 高级操作
3.1 使用 vim 的查找和跳转功能
- 查找单词:按
/
输入要查找的单词,按n
跳到下一个匹配项,按N
跳到上一个匹配项。 - 查找并替换:在命令模式下输入
:s/old/new/g
,替换当前行中的所有old
为new
。可以通过:%s/old/new/g
替换整个文件中的内容。 - 在文件之间跳转:在命令模式下输入
:e filename
打开另一个文件。
3.2 多文件编辑
- 打开多个文件:使用
vim
打开多个文件:vim file1 file2
,然后使用:n
命令在文件间切换。 - 查看文件列表:使用
:args
查看当前编辑的文件列表。 - 切换到下一个文件:使用
:n
。 - 切换到上一个文件:使用
:prev
。
3.3 vim 插件管理
vim
支持通过插件扩展其功能,常用的插件管理工具有:
Vundle:用于安装和管理
vim
插件。Pathogen:用于管理插件和自定义配置。
vim-plug:快速、简便的插件管理工具。
3.4 vim 配置文件
vim
的配置文件通常是 .vimrc
,它位于用户的主目录下。该文件用于设置 vim
的行为和外观。
示例 .vimrc
配置:
" 启用行号
set number
" 开启语法高亮
syntax enable
" 启用自动缩进
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
" 关闭备份文件
set nobackup
set nowritebackup
" 启用行尾自动补全
set wildmode=longest:full,full
4. vim 提示符
:help
:查看帮助文档。例如,输入:help :w
查看:w
命令的帮助。:q!
:强制退出 vim 而不保存。:wq
:保存并退出 vim。
5. 总结
| 操作 | 快捷键/命令 | 描述 |
| ——– | ——————— | —————————- |
| 启动 vim | vim filename
| 打开文件进行编辑 |
| 切换模式 | Esc
(返回普通模式) | 在插入模式和命令模式之间切换 |
| 保存文件 | :w
| 保存文件 |
| 退出 vim | :q
| 退出 vim |
| 删除一行 | dd
| 删除当前行 |
| 复制一行 | yy
| 复制当前行 |
| 粘贴 | p
| 在光标后粘贴 |
| 查找 | /pattern
| 查找模式 |
| 替换 | :s/old/new/g
| 替换当前行中的内容 |
| 撤销 | u
| 撤销上一步操作 |
| 重做 | Ctrl + r
| 重做撤销操作 |