目录
前言
vim 是一个交互式的文本编辑器,在linux环境中是每个人必会的工具之一,文章主要介绍了一些常用的操作指令和一些快捷的方法,能大大的提高操作的效率。
提示:以下是本篇文章正文内容,下面案例可供参考
vim的四种模式
命令模式
打开文件时默认的模式,也可以使用组合键 Esc+: 进入命令模式,在该模式下可操作的场景有:
-
光标跳转
操作类型 | 指令 | 用途 |
移动光标 | 方向键 | 上,下,左,右 |
翻页 | pageup 或者 ctrl+b | 上一页 |
pagedown 或者 ctrl+l | 下一页 | |
光标行内跳转 | home | 跳转到行首 |
end | 跳转到行尾 | |
光标行间跳转 | gg | 跳转到全文首行 |
G | 跳转到全文末尾行 |
-
复制,粘贴,删除
操作类型 | 指令 | 用途 |
复制 | yy 或者#yy | 光标所在一行,或者向下复制#行,这里的#代表行数(1,2,3...) |
y^ 或者 y$ | 光标到所在行的行首或行尾 | |
yG | 光标所在行到文档末尾; 这里的G 为大写 | |
粘贴 | p 或者 P | p:粘贴到光标所在的下一行,P: 粘贴到光标所在的上一行 |
删除 | dd 或者 #dd | 删除光标所在的1行,或者向下删除光标所在的#行;#代表行数(1,2,3...) |
x 或者 delete键 | 删除光标处的单个字符,向右删除 | |
d0 | 删除光标所在位置到行首,这里是数字0,不是单词o | |
D | 删除光标所在位置到行尾 | |
删除&插入 | C(大写) | 删除光标所在位置到行尾,并进入到插入模式。非常好用的一个快捷键 |
温馨提示:复制,粘贴,删除,插入 的非常频繁的操作,一定要多练习。
-
撤销,查询,保存
操作类型 | 指令 | 用途 |
撤销 | u | 撤销最近一次的操作; 常用。 |
U | 撤销当前行的所有操作 | |
Ctrl+r | 回退最近一次的撤销 | |
保存 | ZZ | 保存并退出,大写的ZZ。也是非常常用的快捷键。 |
查找 | /word | 向后查找字符 ,word 为输入的关键字字符 |
?word | 向前查找字符 | |
n 或者N | n:查找下一个,N:查找上一个 |
-
选取
操作类型 | 指令 | 用途 |
选取 | v | 根据方向键自定义选取字符 |
V | 选取光标所在的当前行 | |
Ctrl+v | 连续多行选取(结合方向键),一般用于多行的注释,步骤为:首先进行选取要注释的行,然后按I(大写)进入编辑模式,输入注释符号,最后ESC退出即可。 | |
复制 | y | 选取中的字符进行复制, |
删除 | d | 选取中的字符进行删除 |
提示:被选取之后的内容进行复制时使用一个y ,删除也一样。
末行模式
-
保存,退出,替换,文件操作
操作类型 | 指令 | 用途 |
保存与退出 | :w | 只保存 |
:wq 或者 :x | 保存并退出 | |
:q! | 不保存强制退出 | |
文件操作 | :w /root/newfile | 另存为其他文件 |
:r /etc/filesystem :r! sed -n "/^192/p" < /etc/hosts | 读入其他文件的内容,内容会插入光标所在的下一行 读取外部文件指定范围的内容,这里使用了sed 进行过滤条件的筛选,!号表示 暂时离开 | |
替换 | :s /old_word/new_word | 替换当前行第一个 old_word |
:s /old_word/new_word/g | 替换当前行所有的 old_word;g代表全局的意思 | |
:%s /old_word/new_word/g | 替换全文所有的 old_word | |
:%s /old_word/new_word/gc | 替换全部所有的old_word时都需要询问,c代表询问 | |
: 行号 s/old/new/g | 按指定行替换,连续的行用,号隔开 |
-
开关设置
设置指令 | 用途 |
:set nu|nonu | 显示|取消行号 |
:syntax on|off | 启用/关闭语法高亮 |
:set autoindent | onautoident | 启用/关闭自动缩进 |
:set paste | 开启粘贴板,开启之后复制的内容就不会缺失并且保持原样 |
插入模式
操作类型 | 指令 | 用途 |
插入 | o | 向光标所在的下一行,进行插入 |
O | 向光标所在的上一行,进行插入 | |
i | 光标所在位置进行插入 |
多窗口模式
操作类型 | 指令 | 用途 |
打开多个文件 | vim file1 file2 | 默认进入第一个文件 |
切换窗口 | :sp | 水平切分出一个窗口 |
:vsp | 垂直切分出一个窗口 | |
ctrl+2w | 在多个窗口中,来回切换 | |
ctrl+↑或↓ | 上下切换窗口 | |
关闭窗口 | q 1 | 关闭第一个窗 |
提示:多窗口模式不常用了解即可
总结
vim 编辑器比起sed 来说是有后悔药可以服用,有对应的撤销指令并且可以直观的看到操作动作之后带来的效果,光说不练假把式,一句话得多练习,just do it。