前言
Linux有大量的配置文件,所以 Linux的文本处理工具也是比较多的,其中编辑一些配置文件时,常用的工具就是 vim。在Linux中,Vim编辑器是一个非常强大的文本编辑工具,它提供了多种模式和命令来满足不同的编辑需求。以下是Vim的一些常用命令和操作:
一、启动与退出Vim
- 直接启动Vim并进入命令模式:
vim
- 启动Vim并打开(或创建)指定文件名的文件:
vim filename
- 在打开文件前,先执行指定的命令:
vim -c cmd file
- 恢复上次异常退出的文件:
vim -r file
- 以只读的方式打开文件,但可以强制保存:
vim -R file
- 保存修改并退出Vim:
:wq
或ZZ
- 强制退出Vim,不保存修改:
:q!
- 如果未对文件进行修改,则退出Vim;如果文件已修改,则提示保存或放弃修改:
:q
启动Vim并创建文件text.txt
启动Vim并打开上次保存的文件text.txt
二、Vim的模式
- 命令模式(Normal Mode):在此模式下,可以使用快捷键进行光标移动、复制粘贴、删除等操作。
- 插入模式(Insert Mode):在此模式下,可以输入文本。按下Esc键可以回到命令模式。
- 可视模式(Visual Mode):按下v进入字符选择模式,V进入行选择模式,Ctrl+v进入块选择模式。在可视模式下,可以使用移动命令来选择文本区域,然后执行复制、粘贴、删除等操作。
插入模式
可视模式
三、光标移动
- 使用上下左右箭头键h, j, k, l或↑, ↓, ←, →移动光标。
$
移动到光标所在行的行尾。0
或Home移动到本行第一个字符。gg
移动到文件头部。G
或Shift+g移动到文件底部。
四、文本编辑
- y复制。
- d删除。
- p粘贴。
- u撤销。
- 进入插入模式:按i进入插入模式,在光标前插入;按a在光标后插入;按o另起一行
五、查找与替换
- /string查找字符串。使用n查找下一个匹配项,使用N查找上一个匹配项。
- :s/old/new/g在当前行替换字符串。
- :%s/old/new/g在全文替换字符串。
查找字符串
六、删除操作
dd
删除当前行。Ndd
删除当前行和接下来的N-1行。:start,endd
删除从start到end之间的所有行。:g/pattern/d
删除所有匹配pattern的行。
七、其他命令
:set nu
显示行号。:set nonu
隐藏行号。:w
保存文件但不退出Vim。:e /path/to/file
打开指定路径的文件。
显示行号
另外常用的命令提示:
- 1G ,2G,3G........NG ,跳到第1.2.3 N 行开头
- /^d 快速定位到以 d 开头的行
- /txt$ 快速定位的到以txt 结尾的行
- y 复制. yy 3yy ygg yG (以行为单位)
- d 删除 dd 3dd dgg dG(以行为单位)
- ndd:删除光标所在的向下n行
- ESC 回到一般模式
- u 恢复前一个操作
- v 进入可视模式
- ^v 进入可视块模式 Ctrl +v
- V 进入可视行模式
- A shift + A 在当前行尾插入
- :![Command] 在vi编辑器中执行外部Command命令 【:!date】查看当前时间
- R 进入替换模式 在光标后进行批量替换,类似于为Windows上的 文本Insert
- /string ---> 查找字符串【n继续向下查找,N反向继续查找,支持正则表达式查找: /^the】
- 翻页:Ctrl+f(PageDown)向下翻一页,Ctrl+d向下翻半页;Ctrl+b(PageUp)向上翻一页,Ctrl+u向上翻半页
快速定位到以 3 开头的行
八、替换命令
:s 命令实现字符串替换
- :s/str1/str2/ ---> [:范围s/ old/ new] 默认当前行
- :s/str1/str2/g ---> g 全部替换,不加g只替换一个
- : .,$s/str1/str2/g ---> 当前行到最后一行,全部替换
- :1,$s/str1/str2/g ---> 第一行到最后一行,全文
- : %s/str1/str2/g ---> 全文
九、多文件编辑
vim 后面可以有多个文件
vim mybatis.config test.txt
- n 编辑下一个文件
- N 编辑上一个文件
- files 显示当前正在编辑的所有文件
十、多视窗编辑
可以支持在同一个窗口打开多个文件,使用 :sp filename 命令
:sp /home/filename
- 每一个窗口都有自己单独的模式和命令
- Ctrl+w+↓ 切换到下一个窗口
- Ctrl+w+↑ 切换到上一个窗口