vi编辑器
vi是一个命令,也是一个命令行下的编辑器, 它有如下功能:
• 打开文件,新建文件,保存文件
• 光标移动
• 文本编辑
• (多行间 | 多列间)复制,黏贴,删除
• 查找和替换
很多人不习惯在命令行下编辑文件,在实际开发中也不会经常在命令行下编辑文件. 但是在Linux系统中对文件做些简单修改时, 使用vi命令的效率非常高,并且在很多时候,比如现场调试,并没有GUI形式的编辑工具,vi是唯一选择.
(1)模式
vi编辑器有三种模式,各个模式侧重点不一样:
(a)一般模式(光标移动,复制,黏贴,删除)
(b)编辑模式(编辑文本)
©命令行模式(查找和替换)
vi编辑器的三种模式间切换如下图所示:
注意:
• 当不知道处于何种模式时, 按ESC键返回到一般模式
• wq(write quit)
• i(insert)
(2)文件的打开/新建/保存
打开文件, 新建文件,命令如下(如果文件存在则打开文件,否则新建文件并打开)
vi 文件名
修改结束之后,输入 “:” 进入命令行模式, 再输入 "wq"保存退出:
:wq 保存并退出文件
**注意:**如果文件不存在,也需要输入":wq"才可以保存新文件,否则不会新建文件.
在编辑完成时,返回一般模式,方法如下:
第1步 输入":w" 则保存文件,如果已经保存文件, 输入":q" 则退出文件
第2步 直接输入 “:wq” 保存退出
第3步 如果不想保存被修改的内容,则输入":q!"强制退出
这些命令列表如下:
命令描述x保存当前文档并且退出q退出w保存文档q!退出vi/vim, 不保存文档
(3)编辑文件
打开文件后,默认处于"一般模式",这是可以输入以下字母:
指令描述i在当前光标所在字符的前面,转为编辑模式I在当前光标所在的行的行首转换为编辑模式a在当前光标所在的字符的后面,转为编辑模式A在光标所在行的行尾,转换为编辑模式o在当前光标所在行的下方,新建一行,并转为编辑模式O在当前光标所在行的上方,新建一行,并转为编辑模式
(4)快速移动光标
在一般模式下, 可以使用下面快捷键移动光标或是翻页:
移动光标
h(或左方向键)光标左移一个字符l(或右方向键)光标右移一个字符j(或下方向键)光标下移一行k(或上方向键)光标上移一行nG或ngg光标移动到第n行首n+光标下移n行n-光标上移n行
屏幕翻滚
ctrl+f屏幕向下翻一页,相当于下一页ctrl+b屏幕向下翻一页,相当于上一页
详细介绍如下:
① 快速的定位到某一行: 文件头, 文件尾, 指定某一行
• ngg: 光标移至第n行的行首(n为数字,想要跳转的行)
• 1gg: 就跳到第一行的行首,就是文件头
• 2gg: 就跳到第二行的行首
• G : 转至文件结尾
② 在某一行如何快速定位到某一列
• 0: (数字零)光标移至当前行行首
• $: 光标移至当前行行末
• fx: 搜索当前行中下一个出现字母x的地方
注意:当你不知道vi处于何种模式时,使用esc键回到一般模式
(5)文本复制/粘贴/删除/撤销
a) 复制
yy //复制当前行(y:yank(复制))
nyy //复制当前行及其后的 n-1 行(n 是数字)
b) 粘贴
p //粘贴(p:paste)
c) 删除
dd //删除光标所在行(d:delete)
ndd //删除当前行及其后的 n-1 行(n 是数字)
x //删除光标所在位置的字符
d) 撤销
u //撤销上一步操作
(6)文本查找和替换
在一般模式下,可以执行以下命令。
a) 查找
/pattern //从光标开始处向文件尾搜索 pattern,后按下 n 或 N
注意:
• n:在同一个方向重复上一次搜索命令
• N:在反方向重复上一次搜索命令
• 在/pattern 之前先跳到第一行则进行全文件搜索。
b) 替换
• :%s/p1/p2/g //将文件中所有的 p1 均用 p2 替换
• :%s/p1/p2/gc //替换时需要确认
• “s“ 全称:substitute 替换;
• “g“ 全称:global 全局;
• “c“ 全称:confirm,确认
参考:
Linux 命令大全 | 菜鸟教程 (runoob.com)
(7)vi编辑器使用示例
本例创建一个名为 hello.txt 的文件,添加如下 2 行文件字,再回退去删
除第 2 行的字母“X”:
www.100ask.net
wiki.100askX.net
首先执行以下命令,如果当前目录下没有 hello.txt 它就会新建并打开该文件,
否则直接打开该文件:
vi hello.txt
界面如下:
输入字符“i”,它表示“insert”,即在光标前输入字符,界面如下:
在上述界面中,可以输入字符了,可以使用回车键、删除键、箭头键等等,跟
一般得文本工具没什么差别,如下:
无论当前是否处于编辑模式,都可以使用箭头键移动光标。
•在编辑模式下,使用删除键(Backspace)删除字符;
• 不在编辑模式下时,使用“x”删除光标所在的字符;
最后输入“:wq”保存并退出,“:”表示进入命令行模式,“wq”表示“write
and quit”,即写入并退出。如果不想保存则可以输入“:q!”,它表示“退出、
不保存”:
最后执行“cat hello.txt”命令验证一下:
版权归原作者 无数碎片寻你 所有, 如有侵权,请联系我们删除。