vim编辑器是Linux系统中功能最强大的全屏幕文本编辑器,相信接触过Linux的玩家和爱好者一定对此不陌生,基本是首选的编辑器,此外,它还可以根据用户的需求来进行定制。
在使用时,只需要在命令提示符或终端上直接输入vim或vim 加文件名就可以启动vim编辑器,下面就来介绍一下vim的各种使用:
vim的工作模式
vim编辑器有3种工作模式,分别是命令模式、输入/编辑模式、末行/指令模式,它们之间的转换关系如图所示:
1)命令模式
无论用户当前处于何种模式,只要按下ESC键,则立即进入命令模式,在该模式中允许用户输入vim命令对文件进行管理,常见的命令如:
命令 说明
光标定位:
- g 该命令用于跳到文件最后一行
- o 移动光标到当前行的首行
- $ 移动光标到当前行的尾行
字符的搜索
- /想要搜索的字符 如/str 正向查找,从当前页开始向后搜索字符串str
- ?想要搜索的字符 如?str 反向查找,从当前页开始向前搜索字符串str
- n 往相同方向移动到下一个符合被搜索字符串的位置
- N 往相反方向移动到下一个符合被搜索字符串的位置
复制、粘贴和删除
- dd 删除光标当前所在行
- ndd 删除光标当前所在行开始的n行
- yy 复制光标当前所在行
- nyy 复制光标当前所在行开始的n行
- p 将复制的内容粘贴到当前光标所在行的下一行
- x 删除当前光标所在位置的一个字符
-nx 删除从光标所在位置开始向右的n个字符
撤销与重复
- u 取消所有不恰当的或错误的操作,回到操作之前
- . 重新执行一遍刚刚执行完的操作
保存与退出
- wq,x 保存并退出
- q! 不保存强制退出
- wq! 强制保存退出
- q 退出
2)输入模式
该模式也称插入模式或编辑模式,在该模式下用户输入的内容即成为文件正文并显示在命令模式下,输入i、o、a命令都可以进入该模式,实现对文件的管理,常见命令如:
命令 说明
光标跳转
1、行间跳转
- nG 游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入:set nu以显示行号)
- gg (G) 游标移动到到第一行(到最后一行)
2、行内跳转
- w 到下一个单词的开头
- e 到当前单词的结尾
- b (ge) 到前一个单词的开头 (到前一个单词的结尾)
- 0或^ ($) 到行头 (到行尾)
- f<字母> 【F<字母>】 向后【前】搜索<字母>并跳转到第一个匹配的位置(非常实用)
3)末行模式
在命令模式下按下shift+“:”键既可进入该模式,此时在编辑器屏幕的最后一行将显示“:”提示符,在后面输入命令并回车就可以执行,常见命令如:;
命令 说明
字符串搜索与替换
- /str/ 从当前光标开始向后移动到被搜索的字符串str的位置
- ?str? 从当前光标开始向前移动到被搜索的字符串str的位置
- :/str/ w file 将包含str的行都写到文件file文件中
- :/str1,str2/ w file 将从str1开始到str2技结束的内容都写到文件file文件中
- :s/str1/str2/g 将所有str1替换成str2 //不带参数g则表示将该行的str1替换成str2
光标的移动
- :n 如:“:42” 输入要移动的行号回车定位到此行,如移动到第42行
文件相关操作
- :w 将当前内容保存
- :w file 将当前文件的内容写到file文件中
- :n1,n2 w file 将从n1到n2的内容写到file文件中
文件的复制、粘贴和删除
- :d 删除当前光标所在的行
- :nd 删除从光标所在行开始的n行
- :n1,n2 co n3 将从n1到n2之间的内容复制到n3后面
- :n1,n2 m n3 将从n1到n2之间的内容移动到n3后面
- n1,n2 d 删除n1到n2之间的所有内容
- :,$d 删除当前行到行尾之间的所有内容 //将,换成^则表示从开头到行尾之间的所有内容
- :/str1/,/str2/d 删除从str1到str2之间所有的内容
分屏操作
在配合ctrl +w 和上下左右键可以实现同时编辑多个文件
- :sp 1.txt 打开新的水平分屏视窗来编辑1.txt
- :vsp 2.txt 打开新的垂直分屏视窗来编辑2.txt
其它操作
1)恢复文件
如果因为断电等原因造成文档没有保存,可以采用恢复方式,vim -r进入文档后,输入:ewcover 1.txt来恢复
2)vim创建加密文件:#vim -x file1 ,然后进去后输入密码后就可以了;或在保存退出时输入大写的X就可
3)在vim执行外部命令:(在命令行模式中输入!可以执行外部的shell命令)如:
:!ls 用于显示当前目录的内容
:!rm FILENAME 用于删除名为 FILENAME 的文件
:w FILENAME 可将当前 VIM 中正在编辑的文件另存为 FILENAME 文件
4)进入vim后想要打开新文件在不使用分屏的情况下:
以下操作在命令模式下
输入:e 3.txt 打开新文件3.txt
输入:e# 回到前一个文件
输入:ls 可以列出以前编辑过的文档
输入:b 2.txt(或者编号)可以直接进入文件2.txt编辑
输入:bd 2.txt(或者编号)可以删除以前编辑过的列表中的文件项目
输入:e! 4.txt, 新打开文件4.txt,放弃正在编辑的文件
输入:f 显示正在编辑的文件名
输入:f new.txt, 改变正在编辑的文件名字为new.txt