在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
关闭当前文件,并打开新文件filee file
将当前文件重命名为filef file
打印当前文件名称和状态f
退出vi编辑器q
强制退出vi编辑器(不保存修改)q!
将光标移到第n行n
删除第m至第n行的内容m,nd
复制第m行到第n行的内容m,ny
用new_str替换光标所在行中首次出现的old_strs/old_str/new_str
用new_str替换光标所在行中的所有old_strs/old_str/new_str/g
用new_str替换第m行至第n行的所有old_strm,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文件

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐