VIM(Vi IMproved)是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。它提供了丰富的命令集,使得在没有图形用户界面的情况下也能高效地编辑文本。以下是对VIM常见命令的详细总结:
1. **启动与退出**
- `vim filename`:启动VIM并打开指定的文件。
- `:q`:在正常模式下退出,如果未保存修改,VIM将拒绝退出。
- `:q!`:强制退出,不保存任何修改。
- `:wq`:保存并退出。
2. **模式切换**
- VIM有三种基本模式:正常模式(Normal mode),插入模式(Insert mode)和可视模式(Visual mode)。
- **正常模式**:默认模式,可以通过按键`i`, `a`, `o`, `I`, `A`, `O`等进入插入模式。
- **插入模式**:用于输入文本,按下`Esc`键返回正常模式。
- **可视模式**:按下`v`进入,可以选中文本,执行复制、剪切和粘贴操作。
3. **移动光标**
- `h`:左移一字符。
- `j`:下移一行。
- `k`:上移一行。
- `l`:右移一字符。
- `0`:移动到当前行首。
- `$`:移动到当前行尾。
- `G`:移动到文件最后一行。
- `1G`:移动到文件第一行。
4. **文本操作**
- `i`:在当前光标前插入文本。
- `a`:在当前光标后插入文本。
- `I`:在当前行首插入文本。
- `A`:在当前行尾插入文本。
- `x`:删除当前光标处的一个字符。
- `dd`:删除当前行,并将其存入剪贴板。
- `p`:在光标下方粘贴剪贴板内容。
- `P`:在光标上方粘贴剪贴板内容。
5. **查找与替换**
- `/pattern`:向下查找匹配的模式。
- `?pattern`:向上查找匹配的模式。
- `n`:重复上一次查找方向。
- `N`:反向重复上一次查找方向。
- `:s/pattern/replacement/`:替换当前行中的第一个匹配项。
- `:s/pattern/replacement/g`:替换当前行中所有匹配项。
- `:%s/pattern/replacement/g`:替换文件中所有匹配项。
6. **撤销与重做**
- `u`:撤销上一步操作。
- `Ctrl + r`:重做撤销的操作。
7. **复制与剪切**
- `yy`:复制当前行。
- `nyy`:复制当前行后的n行。
- `yy`后可以接`p`或`P`来粘贴。
- `dd`:剪切(删除并存入剪贴板)当前行。
- `ndd`:剪切(删除并存入剪贴板)当前行后的n行。
8. **多窗口操作**
- `:sp filename`:水平分割窗口打开文件。
- `:vsp filename`:垂直分割窗口打开文件。
- `<Ctrl-w> h/j/k/l`:在窗口间移动光标。
- `<Ctrl-w> w`:切换到下一个窗口。
- `<Ctrl-w> +`:增大当前窗口大小。
- `<Ctrl-w> -`:减小当前窗口大小。
- `<Ctrl-w> q`:关闭当前窗口。
9. **宏录制与回放**
- `qq`:开始录制宏到寄存器q。
- 执行一系列操作。
- `q`:停止录制宏。
- `@q`:回放寄存器q中的宏。
10. **其他实用命令**
- `:help`:打开VIM的帮助文档。
- `:w!`:即使文件被锁定,也强制保存。
- `:set number` / `:set nonumber`:显示/隐藏行号。
- `:set ic` / `:set nocic`:开启/关闭不区分大小写的搜索。
- `:set wrap` / `:set nowrap`:开启/关闭自动换行。
以上是VIM的一些基础命令和操作,熟练掌握这些能极大提高文本编辑效率。通过不断练习和探索,VIM会成为你手中得心应手的工具。