查看“Linux vi 编辑器”的源代码
←
Linux vi 编辑器
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==文本编辑器的作用== *创建或修改文本文件 *维护Linux系统中的各种配置文件 ==Linux中最常用的文本编辑器== *vi:类Unix系统中默认的文本编辑器 *vim:vi编辑器的增强版本,习惯上也称为vi <nowiki>alias vi='/usr/bin/vim' [root@maxin ~]# which vi alias vi='/usr/bin/vim' /usr/bin/vim</nowiki> ==工作模式== [[文件:linux3-2.png]] 主要操作: i ,/,:w ,:q (插入,查找,保存,退出) ===三种工作模式=== 1)'''命令模式''':启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作 2)'''输入模式''':该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-- INSERT --”的状态提示信息 3)'''末行模式''':该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符 ===模式的切换=== *在命令模式下输入 i(插入)、c(修改)、o(另起一行) 命令时进入输入模式;按 esc 键退回到命令模式。 *在命令模式下输入冒号(:)可以进入末行模式。输入完命令按回车,命令执行完后会自动退回命令模式。 *如果不确定当前处于哪种模式,按两次 Esc 键将回到普通模式。 ==常用操作== ===插入文本命令:i === i 命令将文本插入到光标所在位置前。此时 vi 处于文本插入状态, 屏幕最下行显示 “--INSERT--”说明信息。 这时就可以在屏幕上光标活动处任意插入文字。 如果要插入的文字不在一处,还可以使用方向键或分页键移动光标 插入完成后,按 esc 键退回到命令模式。 [[文件:linux3-12.png]] ===退出文件=== 一般在'''命令模式'''下退出 vi 编辑器。 <nowiki>退出命令 说明 :q 如果文件未被修改,会直接退回到Shell;否则提示保存文件。 :q! 强行退出,不保存修改内容。 :wq w 命令保存文件,q 命令退出 vi,合起来就是保存并退出。</nowiki> 练习:新建文本文件test.txt ,输入以下文字并退出: <nowiki>#include <stdio.h> int add(int a, int b) { return a + b; } int main(void) { int i, sum; for (i = 0; i < 3; i++) { sum = add(i, i + 1); printf("%d\n", sum); } }</nowiki> ===光标移动=== {| class="wikitable" |- ! 操作类型 !! 操作键 !! 功能 |- | 光标移动 || 上下左右 || 上下左右 |- | 翻页 || Page Up/Page Down || 示例 |- | 行内快速跳转 || Home键 || 跳转至行首 |- | 行内快速跳转 || End键 || 跳转至行尾 |- | 行间快速跳转 || :0 || 跳转到文件的首行 |- | 行间快速跳转 ||:$ ||跳转到文件的末尾行 |- | 行间快速跳转 ||:n ||跳转到文件中的第#行 |- | 行号显示 ||:set nu ||在编辑器中显示行号 |- | 行号显示 ||:set nonu ||取消编辑器中的行号显示 |} [[文件:linux5-6.png]] *着重讲解最常用的操作键(能够迅速提高文本编辑效率),其余的有个印象就可以了 *从本页开始,分4部分简单介绍命令模式中的常用操作,然后集中进行演示 ===复制、粘贴、删除=== 在命令模式下 *dd : 删除当前光标所在行 *yy : 复制当前行整行的内容到剪贴板 *p : 将缓冲区中的内容粘贴到光标位置处之后 ===查找和替换=== 查找和替换一般在末行模式下进行: *:/word :从上而下在文件中查找字符串“word” * n :定位下一个匹配的被查找字符串 常见的提示: *E486: Pattern not found: word :没有找到字符串word *search hit TOP, continuing at BOTTOM :查找已到顶端,再查将会回退到底端继续查找。 :% s/old/new/g || 在整个文件范围内替换所有的字符串“old”为“new” 常见的提示: *10 substitutions on 2 lines :在2行中完成了10个替换。 练习: *在刚才编写的程序中,用vi编辑器显示行号 *跳转到第5行 *查找源代码中所有的sum *将源代码中所有的sum替换为Sum ==详细操作== 以下命令初学者可以先不看。 ===复制、粘贴、删除=== {| class="wikitable" |- ! 操作类型 !! 操作键 !! 功能 |- | 删除 ||x或Del ||删除光标处的单个字符 |- | 删除 ||dd ||删除当前光标所在行 |- | 删除 ||#dd ||删除从光标处开始的#行内容 |- | 删除 ||d^ ||删除当前光标之前到行首的所有字符 |- | 删除 ||d$ ||删除当前光标处到行尾的所有字符 |- | 复制 ||yy ||复制当前行整行的内容到剪贴板 |- | 复制 ||#yy ||复制从光标处开始的#行内容 |- | 粘贴 ||p ||将缓冲区中的内容粘贴到光标位置处之后 |- | 粘贴 ||P ||粘贴到光标位置处之前 |} ===查找和替换=== {| class="wikitable" |- ! 操作类型 !! 操作键 !! 功能 |- | 查找 || /word || 从上而下在文件中查找字符串“word” |- | 查找 || ?word || 从下而上在文件中查找字符串“word” |- | 查找 || n || 定位下一个匹配的被查找字符串 |- | 查找 || N || 定位上一个匹配的被查找字符串 |- | 替换 || :s /old/new || 将当前行中查找到的第一个字符“old” 串替换为“new” |- | 替换 ||:s /old/new/g || 将当前行中查找到的所有字符串“old” 替换为“new” |- | 替换 || :#,# s/old/new/g || 在行号“#,#”范围内替换所有的字符串“old”为“new” |- | 替换 || :% s/old/new/g || 在整个文件范围内替换所有的字符串“old”为“new” |- | 替换 || :s /old/new/c || 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |} *字符串替换命令相对查找命令的格式要复杂得多,在讲解时需要着重演示字符串替换的范围和替换确认机制 ===保存、撤销及退出=== {| class="wikitable" |- ! 操作类型 !! 操作键 !! 功能 |- | 撤销 || u || 按一次取消最近的一次操作 多次重复按u键,恢复已进行的多步操作 |- | 撤销 || U || 用于取消对当前行所做的所有编辑 |- | 保存 || :w || |- | 保存 || :w /root/newfile || 另存为其它文件 |- | 退出 || :wq || 保存退出 |- | 退出 || :q! || 放弃对文件内容的修改,并退出vi |}
返回至
Linux vi 编辑器
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息