“Linux vi 编辑器”的版本间的差异
来自CloudWiki
(→三种模式及其切换) |
|||
第12行: | 第12行: | ||
/usr/bin/vim</nowiki> | /usr/bin/vim</nowiki> | ||
− | == | + | ==工作模式== |
[[文件:linux3-2.png]] | [[文件:linux3-2.png]] | ||
主要操作: i ,/,:w ,:q (插入,查找,保存,退出) | 主要操作: i ,/,:w ,:q (插入,查找,保存,退出) | ||
+ | |||
+ | ===三种工作模式=== | ||
1)'''命令模式''':启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作 | 1)'''命令模式''':启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作 | ||
第26行: | 第28行: | ||
===模式的切换=== | ===模式的切换=== | ||
− | *在命令模式下输入 i(插入)、c(修改)、o(另起一行) 命令时进入输入模式;按 esc | + | *在命令模式下输入 i(插入)、c(修改)、o(另起一行) 命令时进入输入模式;按 esc 键退回到命令模式。 |
*在命令模式下输入冒号(:)可以进入末行模式。输入完命令按回车,命令执行完后会自动退回命令模式。 | *在命令模式下输入冒号(:)可以进入末行模式。输入完命令按回车,命令执行完后会自动退回命令模式。 | ||
*如果不确定当前处于哪种模式,按两次 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> | ||
===光标移动=== | ===光标移动=== |
2019年6月16日 (日) 08:01的版本
目录
文本编辑器的作用
- 创建或修改文本文件
- 维护Linux系统中的各种配置文件
Linux中最常用的文本编辑器
- vi:类Unix系统中默认的文本编辑器
- vim:vi编辑器的增强版本,习惯上也称为vi
alias vi='/usr/bin/vim' [root@maxin ~]# which vi alias vi='/usr/bin/vim' /usr/bin/vim
工作模式
主要操作: i ,/,:w ,:q (插入,查找,保存,退出)
三种工作模式
1)命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作
2)输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-- INSERT --”的状态提示信息
3)末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符
模式的切换
- 在命令模式下输入 i(插入)、c(修改)、o(另起一行) 命令时进入输入模式;按 esc 键退回到命令模式。
- 在命令模式下输入冒号(:)可以进入末行模式。输入完命令按回车,命令执行完后会自动退回命令模式。
- 如果不确定当前处于哪种模式,按两次 Esc 键将回到普通模式。
常用操作
插入文本命令:i
i 命令将文本插入到光标所在位置前。此时 vi 处于文本插入状态,
屏幕最下行显示 “--INSERT--”说明信息。
这时就可以在屏幕上光标活动处任意插入文字。
如果要插入的文字不在一处,还可以使用方向键或分页键移动光标
插入完成后,按 esc 键退回到命令模式。
退出文件
一般在命令模式下退出 vi 编辑器。
退出命令 说明 q 如果文件未被修改,会直接退回到Shell;否则提示保存文件。 q! 强行退出,不保存修改内容。 wq w 命令保存文件,q 命令退出 vi,合起来就是保存并退出。
练习:新建文本文件test.txt ,输入以下文字并退出:
#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); } }
光标移动
操作类型 | 操作键 | 功能 |
---|---|---|
光标移动 | 上下左右 | 上下左右 |
翻页 | Page Up/Page Down | 示例 |
行内快速跳转 | Home键 | 跳转至行首 |
行内快速跳转 | End键 | 跳转至行尾 |
行间快速跳转 | :0 | 跳转到文件的首行 |
行间快速跳转 | :$ | 跳转到文件的末尾行 |
行间快速跳转 | :n | 跳转到文件中的第#行 |
行号显示 | :set nu | 在编辑器中显示行号 |
行号显示 | :set nonu | 取消编辑器中的行号显示 |
- 着重讲解最常用的操作键(能够迅速提高文本编辑效率),其余的有个印象就可以了
- 从本页开始,分4部分简单介绍命令模式中的常用操作,然后集中进行演示
复制、粘贴、删除
操作类型 | 操作键 | 功能 |
---|---|---|
删除 | x或Del | 删除光标处的单个字符 |
删除 | dd | 删除当前光标所在行 |
删除 | #dd | 删除从光标处开始的#行内容 |
删除 | d^ | 删除当前光标之前到行首的所有字符 |
删除 | d$ | 删除当前光标处到行尾的所有字符 |
复制 | yy | 复制当前行整行的内容到剪贴板 |
复制 | #yy | 复制从光标处开始的#行内容 |
粘贴 | p | 将缓冲区中的内容粘贴到光标位置处之后 |
粘贴 | P | 粘贴到光标位置处之前 |
查找和替换
操作类型 | 操作键 | 功能 |
---|---|---|
查找 | /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命令,将对每个替换动作提示用户进行确认 |
- 字符串替换命令相对查找命令的格式要复杂得多,在讲解时需要着重演示字符串替换的范围和替换确认机制
保存、撤销及退出
操作类型 | 操作键 | 功能 |
---|---|---|
撤销 | u | 按一次取消最近的一次操作
多次重复按u键,恢复已进行的多步操作 |
撤销 | U | 用于取消对当前行所做的所有编辑 |
保存 | :w | |
保存 | :w /root/newfile | 另存为其它文件 |
退出 | :wq | 保存退出 |
退出 | :q! | 放弃对文件内容的修改,并退出vi |