vim的3种模式
(1) 命令模式,vim fileName 默认就是进入命令模式;
(2) 编辑模式(输入模式),在命令模式下按i、o、a键都能进入编辑模式进行文本编辑,退出编辑模式按Esc键;
(3) 末行模式(尾行模式),在命令模式下按冒号就进入了末行模式。
编辑模式按Esc键就退出了编辑模式进入到命令模式,在命令模式下按冒号就进入了末行模式。
命令行模式
按键 | 作用 |
---|
gg | 跳转到文件开头(很实用) | G或shift+g | 跳转到文件末尾 (很实用) | PgUp | 向上翻屏(很实用) | PgDn | 向下翻屏 (很实用) | Ctrl+b (before) | 向上翻屏 | Ctrl+f (after) | 向下翻屏 | Ctrl+u (up) | 向上翻半屏 | Ctrl+d (down) | 向下翻半屏 | 行号+G | 快速定位到指定行 ,如按 50+shift+g就能快速定位到第50行 | yy | 复制:复制光标所在行(很实用) | 数字+yy ,如:5yy | 从当前行(含当前行)开始向下复制多行,数字+yy,如:5yy,则表示从当前行(含当前行)开始向下复制5行 | p | 粘贴到光标所在行的下一行 (很实用) | P | 粘贴到光标所在行之前 | dd | 剪切/删除光标所在行,下一行上移,使用p可以粘贴,如果不粘贴就相当于删除了 (很实用) | 数字+dd,如:5dd | 剪切/删除从当前行(含当前行)开始向下剪切/删除多行,使用p可以粘贴,如果不粘贴就相当于删除了 | D | 也是剪切/删除的功能,但是下一行不上移,剪切的那行变成空白行 | dG | d+shift+G表示删除光标以下所有内容,当光标在文件首行(按gg)时,dG就是删除文件全部内容了 | u | 撤销,可以撤销多次 | Ctrl+r | 恢复 ,可以撤销多次 | 小结 | gg首行;G末行;50G快速定位到第50行;yy复制当前行;5yy复制当前行及以下行共5行;p粘贴;dd剪切/删除当前行;5dd剪切/删除当前行及以下行共5行,剪切行之后可以使用p进行粘贴,如果不粘贴其实就是删除功能了;dG删除光标行及以下所有行,当光标在首行,这时按dG就是删除全部文件内容了;u撤销;Ctrl+r恢复 |
末行模式
在命令行模式按:进入末行模式
按键 | 功能 |
---|
:w | 保存 (很实用) | :q | 退出,必须是保存好才能正常退出 (很实用) | :q! | 强制退出,不管有没有保存都强制退出 (很实用) | :wq | 保存并退出 | :x | 保存并退出 (很实用) | ZZ | 保存并退出,这个需要在命令行模式下直接按shift+zz即可快速保存并退出 | /key | 按enter回车键,开始往下搜索key关键字,按n继续搜索下一个匹配的关键字,按N向上搜索 (很实用,在日志搜索中很实用) | ?key | 按enter回车键,开始往上搜索key关键字,按n继续往上搜索下一个匹配的关键字,按N向下搜索 (很实用,在日志搜索中很实用) | :noh | 取消高亮 (很实用) | :set nu | 设置行号 (很实用) | :set nonu | 取消行号 (很实用) | :set paste | 从其他复制数据然后粘贴到vim的文件里,vim默认启动自动缩进,从而可能导致粘贴乱序,而启动paste模式告诉vim只是纯拷贝粘贴数据不进行自动缩进,这样粘贴的数据就不会乱序了(很实用) | :set nopaste | 关闭paste模式 | :s/要替换的关键词/替换后的关键词/g | 仅针对光标所在行,进行搜索关键词并执行替换 | :%s/要替换的关键词/替换后的关键词/g | 加了%号表示针对全局整个文件内容,进行搜索关键词并执行替换 | | |
编辑模式
在命令行模式按i、o、a都能进入编辑模式,编辑模式就是对文件内容进行编辑,没啥好说的。 按i、a键都能在光标处输入内容,而o则会在光标行之后另起一行进行编辑插入。
按键 | 功能 |
---|
i | i=insert,进入编辑模式,小写的i键会在光标所在字符之前插入内容 | a | a=append,进入编辑模式,小写的a键会在光标所在字符之后插入内容 | o | 进入编辑模式,并在光标所在行的下一行插入新的一行 |
可视化模式
在命令行模式中,直接按Ctrl+v(可视块)或V(可视行)或v(可视),然后按上下左右↑↓←→箭头来选择要复制的区块,按y键进行复制(不要按下yy),最后按p键进行粘贴。退出可视化模式按Esc即可。
注释多行
Ctrl+v进入可视块模式,按上下箭头选择多行,按I键进行插入#号,按Esc退出可视块模式,即可看到刚才选择的多行已经都被注释掉了。
去除多行注释
Ctrl+v进入可视块模式,上下箭头选择行,但d即可删掉#号去除注释。
代码着色
:syntax on 开启代码着色 :syntax off 关闭代码着色
|