vi编辑器常用命令大全
在UNIX下,vi是标准的文本编辑器之一。vi编辑器是Linux下应用最广泛的文本编辑器,在日常工作中几乎每时每刻都会用到vi编辑器,熟悉vi下的一些常用功能有助于提高工作效率。vi编辑器有三种操作模式:命令模式、插入模式、末行模式,插入模式即为编辑模式,下面着重介绍命令模式和末行模式。
以下内容中:小写字母(如 a)代表按下相应的键,大写字母(如 A)代表同时按下Shift+字母,特殊字符如$表示需要按下Shift+4,跟正常输入相同。
一、三种命令模式的切换
命令模式<==>插入模式
我们使用vi打开一个文件,默认模式就是命令模式,键入’a’或’i’就会进入插入模式,在插入模式下按下Esc键就重新回到了命令模式。
命令模式<==>末行模式
在命式模式时键入’:’即可进入末行模式,在末行模式下按下Esc键就重新回到了命令模式。
插入模式<==>末行模式
在插入模式想进入末行模式,先按下Esc键就进入命令模式,再键入’:’即可进入末行模式
在末行模式想进入插入模式,先按下Esc键就进入命令模式,再键入’a’或’i’就会进入插入模式
二、常用命令汇总
1.命令模式
操作 | 命令 |
---|---|
光标右移 | l(小写的L) |
光标右移n个字符 | nl |
光标左移 | h |
光标左移n个字符 | nh |
光标下移 | j |
光标下移n个字符 | nj |
光标上移 | k |
光标上移n个字符 | nk |
移动光标到行首 | 0(数字0) |
移动光标到行末 | $ |
移动光标到文件末尾 | G |
移动光标到文件开头 | gg |
移动光标到下一个单词开头 | w |
移动光标到当前或下一个单词结尾 | e |
移动光标到当前或下一个单词开头 | b |
移动光标到该行第一个非空白字符 | ^ |
移动光标到句尾 | ) |
移动光标到句首 | ( 注:vi中句子用半角句号后加一个空格(. )分割 |
移动光标到段尾 | ) |
移动光标到段首 | ( 注:vi中段落以空行分割 |
将光标定位到第n行的开头 | nG |
将光标下移n行 | n+ |
将光标上移n行 | n- |
将光标下移n行并置于行尾 | n$ |
移动光标到屏幕最顶行 | H |
移动光标到屏幕最底行 | L |
移动光标到当前屏幕中间行 | M |
当前行往右移动8个字符 | >>(相当于tab键) |
当前行往左移动8个字符 | >>(相当于Shfit键+tab键) |
改变当前光标所在字符大小写 | ~(大写变小写,小写变大写) |
删除当前字符到单词尾所有字符 | dw |
复制当前光标所在行 | yy |
复制n行 | nyy(当前光标以下n行) |
复制光标所在位置到单词尾字符(不包括空格)的内容到vi缓存区,相当于复制一个单词 | yw |
nyw | 复制n个单词 |
复制光标所在位置到行尾内容到缓存区 | y$ |
复制光标所在位置到行首内容到缓存区 | y^ |
将缓存区的内容粘贴到当前行的下方 | p |
将缓存区的内容粘贴到当前行的上方 | P |
x | 删除光标所在位的字符 |
ndd | 删除n行 |
dd | 删除光标所在的行 |
rx | 使用x替代光标所在位置的字符 |
i | 进入插入模式 |
a | 将光标移至当前所在位置的右侧,并进入插入模式 |
o | 在光标所在行下一行增添新行,并进入插入模式 |
O | 在光标所在行上一行增添新行,并进入插入模式 |
I | 将光标定位到行开头,并进入插入模式 |
A | 将光标定位到行末尾,并进入插入模式 |
撤销最近一次的操作 | u(可以多次使用恢复到原来的内容) |
撤销所有操作 | U |
2.末行模式
操作 | 命令 |
---|---|
保存文件 | w |
将当前文件的内容保存到file文件 | w file |
保存文件并退出vi编辑器 | wq |
将当前文件的内容写入file 文件,然后退出vi编辑器 | wq file |
将文件file的内容插入当前光标所在行的后面 | r file |
关闭当前文件,并打开新文件file | e file |
将当前文件重命名为file | f file |
打印当前文件名称和状态 | f |
退出vi编辑器 | q |
强制退出vi编辑器(不保存修改) | q! |
将光标移到第n行 | n |
删除第m至第n行的内容 | m,nd |
复制第m行到第n行的内容 | m,ny |
用new_str替换光标所在行中首次出现的old_str | s/old_str/new_str |
用new_str替换光标所在行中的所有old_str | s/old_str/new_str/g |
用new_str替换第m行至第n行的所有old_str | m,ns/old_str/new_str/g |
用new_str替换所有的old_str | %s/old_str/new_str/g |
从当前光标处往下查找与pattern匹配的行,然后在该行上用new_str替换掉所有的old_str | /pattern/s/old_str/new_str/g |
关于行号的一些特殊表示:
‘.’表示光标所在行的行号
‘
′表示文件最后一行行号
-1表示倒数第二行
一些例子(以下命令都是在末行模式下执行的):
操作 | 命令 |
---|---|
光标从当前行向下移动6行 | .+6 |
将光标移到文件的最后一行 | $ |
将第5行到第10行内容写入file文件 | 5,15w file |
将第1行到当前行内容写入file文件 | 1,.w file |
将当前行到文件末尾内容写入file文件 | .,$w file |
3.vi临时文件
vi在编辑某一个文件时,会生成一个临时文件,这个文件以. 开头并以.swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,在我们下次编辑该文件时会被要求选择以下命令处理:
O 只读打开,不改变文件内容
E 继续编辑文件,不恢复.swp文件保存的内容
R 将恢复上次编辑以后未保存文件内容
Q 退出vi
D 删除.swp文件
更多推荐
所有评论(0)