vim
一、vim常用的工作模式
前言
这玩意命令太多,记得几个常用即可
命令模式
命令模式:使用vi(vim)打开某个文件的时候默认进入的模式就是命令模式。
这种模式下最基础的功能就是上下左右键,还可以使用按键组合的方式复制粘贴、删除功能
命令模式下的命令
命令 | 作用 |
---|
a | 在光标所在字符后插入 |
A | 在光标所在行尾插入 |
i | 在光标所在字符前插入 |
I | 在光标所在行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
操作类型 | 操作键 | 功能 |
---|
光标方向移动 | 上下左右 | 上下左右 |
字母移动 | h j k l | 左 下 上 右 |
翻页 | Page Down 或ctrl+f/b | 向上/向下,翻页 |
行内快速跳转 | Home键或^或数字0 | 跳转至行首 |
| End键或$键 | 跳转至行尾 |
行间跳转 | IG(是数字1)或者gg | 跳转到文件的首行 |
| G | 跳转到文件的末行 |
| 数字 n+shift+g(数字加大写G) | 跳转到文件中的第n行 |
删除 | x或Del | 删除光标处的单个字符 |
| dd | 删除或剪切从光标处开始的当前行内容 |
| d^ | 删除当前光标之前到行首的所有字符(不包含光标) |
| d$ | 删除当前光标之前到行尾的所有字符包含光标 |
复制 | yy | 复制当前行整行的内容到剪贴板 |
| nyy | 复制光标处开始的n行内容 |
粘贴 | p | 将缓冲区中的内容粘贴到光标位置出之后(下一行) |
| P(大) | 粘贴到光标位置处之前(上一行) |
替换 | r | 替换光标所在字符 |
| R | 从光标处开始替换,按ESC键结束 |
操作键 | 功能 |
---|
u | 按一次取消最近的一次操作,多次重复按u键,回复以进行的多步操作 |
U | 用于取消对当前行所做的所有编辑 |
shift+zz或ZZ | 保存当前的文件内容并退出vi编辑器 |
插入/编辑模式
插入\编辑模式:在命令模式下,按i键或者insert键可以进入编辑模式。
在编辑模式下,依然还可以使用上下左右键移动光标,同时还可以输入文字到文件中。
从编辑模式下返回到命令模式下需要按ESC键
末行模式
末行模式:在一般模式中,按 : / ? 就会在当前视图的最后一行出现相应的符号,
就代表进入了相应的末行命令模式下。
功能 | 命令 | 备注 |
---|
保存文件 | :w | 保存所作操作 |
| :w /root/newfile | 另存为其他文件 |
退出vim | :q | 未修改退出 |
| :q! | 未修改强制退出 |
| :wq | 保存并退出 |
删除多行文件 | :n,nd | |
命令 | 功能 |
---|
:e ~/install.log | 打开新的文件进行编辑 |
:r /etc/filesystems | 在当前文件中读入其他文件内容 |
:! 命令 | vim中查看命令结果 |
:r !命令 | 导入命令结果到光标所在处 |
:s /old/new/ | 在当前行中查找到第一个字符“old”替换为“new” |
: s /old/new/g | 将当前行中查找到的所有字符串“old”替换为“new” |
:m,ns /old/new/g | 在行号“m,n”范围内替换所有的字符串“old“为”new“ |
: %s /old/new/g | 在整个文件范围内替换所有的字符串”old”为“new” |
😒 /old/new/og | 在命令末尾加入c命令,将对每个替换动作提示用户进行确认 |
vim使用技巧—设置快捷键
在末行模式下输入:map 快捷键 快捷键执行的命令
例1::map ^P I(效果:当输入crtl+p快捷键时在光标当前行首添加^需要输入crtl+VP需要输入crtl+P
例2::map ^D dd <esc>^需要输入crtl+VD需要输入crtl+D当输入crtl+D的时候,删除光标当前行。
例3::map ^B ^x当输入crtl+B快捷键时,光标会移动到行首,然后删除第一个字符。
注:如果想让这些快捷键永久生效,可以吸入vim的配置文件,/etc/vimec把需要的快捷键写入行尾。保存退出后执行. /etc/vimrc来加载配置文件。
二、V模式
进入v模式,移动光标选择区域,常用于编辑文件多行注释使用
CTRL+v 进入列模式
向上或向下移动光标,把需要注释、编辑的行的开头选中
按大写I
再插入注释符或需要批量擦汗如的符号
再按ESC键,完成添加
三、意外关闭产生的交换文件
交换文件的产生于非正常关闭文件中。再次打开时会有报错信息产生。
并在源文件的目录下会产生以.开头swp结尾的文件。
如果向恢复未保存的内容使用 vim -r 源文件名 可以进行回复。
只是想要解决报错信息只要删除.开头swp结尾的文件即可