重点:光标的移动,模式切换,删除,查找,替换,复制,粘贴和撤销命令的使用。
三种模式:命令模式,编辑模式(输入模式)、末行模式(尾行模式)
末行模式:可以在末行输出命令来对文件进行操作(搜索,替换,保存,退出,撤销,高亮等等)
Vim打开文件的方式
#vim 文件路径 (打开指定文件)
#vim +数字 文件路径 (打开指定文件,并且将光标移动到指定行)
#vim +/关键词 文件路径 (打开指定的文件,并且高亮显示关键词)
#vim 文件路径1 文件路径2 文件路径3(同时打开多个文件)
{
查看当前已经打开文件,输入":files"【%a(active)表示当前正打开的文件,#表示上一个打开的文件】
切换指定文件,输入":open 已经打开的文件的文件名"
切换上一个/下一个文件,输入":bp"/":bn"【back previous】【back next】
}
模式间的切换
从命令模式开始
1输入“:”进入末行模式。按1下或者2下Esc【删除末行全部输入字符】,退出末行模式进入命令模式
2按下i、a等进入编辑模式。按1下Esc,退出编辑模式进入命令模式
命令模式
光标移动
行首: 按键shift+6或者^
行尾:按键shift+4或者$
首行:按键gg
末行:按键G
翻屏:向上翻屏按键ctrl+b 【before】/Pgup 向下翻屏按键ctrl+f 【after】/Pgdn
1按键:数字G(快速将光标移动到指定行)
2按键:数字↑ 数字↓ 数字← 数字→(以当前光标为准向上/下/左/右移动n行/字符)
3输入英文“:”,然后输入行数数字,按下回车(在末行模式下快速移动方式,移动到指定的行)
复制
1按键:yy(复制光标所在行)
2按键:数字yy(以光标所在行为准【包含当前行】,向下复制指定行数)
3按键:ctrl+v键,按下上下左右方向键来选中需要复制的区块【选择需要的内容】,按下yy键进行复制。
粘贴:要粘贴的位置按p键
剪切/删除
1按键:dd(剪切/删除光标所在行,删除后下一行上移)
2按键:数字dd(剪切/删除光标所在行为准【包含当前行】,向下删除指定行)
3按键:D(剪切/删除当前行,但删除之后下一行不上移,当前行会变成空白行)
撤销/恢复
撤销:输入:u 【不属于命令模式】 冒号加小u 或者直接按u【undo】
恢复:ctrl+r (恢复【取消】之前的撤销操作)
末行模式
保存操作
输入":w"(保存文件)
输入":w 路径"(另存为)
退出
输入":q"(退出文件)
输入":wq"(保存并退出)
强制("!")
输入":q!"(强制退出,刚才做到的修改操作不保存)
搜索/查找
输入"/关键词"(在搜索结果中切换上一个/下一个,输入N/n)
替换
输入”:s/搜索的关键词/新的内容“(替换光标所在行的第一处符合条件的内容)
输入”:s/搜索的关键词/新的内容/g“(替换光标所在行的全部符合条件的内容)
输入”:%s/搜索的关键词/新的内容“(替换整个文档中每行的第一处符合条件的内容)
输入”:%s/搜索的关键词/新的内容/g“(替换整个文档中符合条件的内容)
{%表示整个文件,g表示全局【global】}
显示行号
输入":set nu" 【number】
输入":set nonu"(取消显示)
输入“:nohl”【no highlight】取消高亮
编辑模式
a:在光标所在字符后开始插入。【after】(光标会向后移一格)
i:在光标所在字符前开始插入。【insert】
实用功能
代码着色
显示颜色,输入"syntax on"【syntax语法】
关闭显示,输入"syntax off"
vim中计算器的使用
进入编辑模式,按下"ctrl+R",然后输入“=”,此时光标会变到最后一行。
输入需要计算的内容,按下回车。【撇会变成结果】
调用外部命令(了解)
输入":!外部命令"(当外部命令执行结束之后按下任意键回到vim)
扩展内容
1 vim的配置
(a.末行模式的临时配置 b.个人配置文件【~/.vimrc,可以自行新建】 c.全局配置文件【vim自带,/etc/vimrc】)
新键个人配置文件,编辑写入"set nu"【显示行号】
全局配置文件,【个人配置文件比全局配置文件优先级高】
2 异常退出问题
在编辑文件之后并没有正常保存退出(wq),而是遇到突然关闭终端或者断电的情况,则会出现异常退出。(无法重新编辑)
解决办法:删除产生的交换文件即可【在编辑过程中产生的临时文件,为隐藏文件】
(".文件名.swp")
3 别名机制(作用:创建一些属于自己的命令)
别名机制依靠一个别名映射文件;~/.bashrc
#vim ~/.bashrc
alias cp='cp -i'
alias cls='clear'
保存后重新登陆才能生效,或者source ~/.bashrc
4 退出方式【推荐】
vim还支持使用":x"进行退出。
(":x"在文件没有被修改的情况下,表示直接退出;在文件修改了的情况下,表示保存并退出。)
【如果文件没有被修改,但是使用wq进行退出的话,则文件的修改时间会更新;但使用x进行退出,则文件修改时间不会被更新】
【大X表示对文件进行加密!!!】