2.3.7 vi 编辑器
编辑文件2种方法:1.windows方法:直接双击等,不再赘述。2.命令行使用 gedit
实例:
gedit 1.txt 打开并修改某个文件
ls -l /etc/environment 查看权限和位置。我们的权限是最低层权限,权限不能写,即不能修改。需要使用sudo临时改变权限来修改。
vi编译器:
linux没有图形界面,所以使用vi命令。vi 是一个命令,也是一个命令行下的编辑器,它有如下功能:
⚫ 打开文件、新建文件、保存文件
⚫ 光标移动
⚫ 文本编辑
⚫ (多行间|多列间)复制、粘贴、删除
⚫ 查找和替换
应用场景:在 Linux 系统中对文件做些简单修改时,使用 vi 命令的效率非 常高。并且在很多时候,比如现场调试时,并没有 GUI 形式的编辑工具,vi 是 唯一选择。
1. 模式
vi 编辑器有三种模式,各个模式侧重点不一样: a) 一般模式(光标移动、复制、粘贴、删除) b) 编辑模式(编辑文本) c) 命令行模式(查找和替换) vi 编辑器的三种模式间切换如下图所示:
⚫ 当不知道处于何种模式时,按 ESC 键返回到一般模式(连续按也可以)。
⚫ wq(write quit)
⚫ i(insert)
2. 文件的打开/新建/保存
打开文件、新建文件,命令如下(如果文件存在则打开文件,否则新建文件 并打开): $ vi 文件名 修改结束之后,输入“:” 进入命令行模式,再输入“wq”保存退出: :wq 保存并退出文件 注意:如果文件不存在,也需要输入“:wq”才可以保存新文件,否则不会新建 文件。在编辑完成时,返回一般模式,方法如下:
第1步 输入“:w”则保存文件,如果已经保存文件,输入“:q”则退出文件
第2步 直接输入“:wq”保存并退出
第3步 如果不想保存被修改的内容,则输入“:q!”强制退出。
3. 编辑文件
打开文件后,默认处于“一般模式”,这时可以输入以下字母:
i 在当前光标所在字符的前面,转为编辑模式。
I 在当前光标所在行的行首转换为编辑模式。
a 在当前光标所在字符的后面,转为编辑模式。
A 在光标所在行的行尾,转换为编辑模式。
o 在当前光标所在行的下方,新建一行,并转为编辑模式。
O 在当前光标所在行的上方,新建一行,并转为编辑模式。
4. 快速移动光标
在一般模式下,可以使用下面快捷键移动光标或是翻页:
h (或左方向键) 光标左移一个字符。
l (或右方向键) 光标右移一个字符。
j (或下方向键) 光标下移一行。
k (或上方向键) 光标上移一行。
nG 或 ngg 光标移动到第 n 行首。
n+ 光标下移 n 行。
n- 光标上移 n 行。
Ctrl + f 屏幕向下翻一页,相当于下一页。
Ctrl + b 屏幕向上翻一页,相当于上一页。
:set number 显示行号; :set nonumber隐藏行号。
快速的定位到某一行:文件头、文件尾、指定某一行
⚫ ngg:光标移至第 n 行的行首(n 为数字,想要跳转的行),
⚫ 1gg:就跳到第一行的行首,就是文件头
⚫ 2gg:就跳到第二行的行首
⚫ G:转至文件结尾 ② 在某一行如何快速定位到某一列:
⚫ 0:(数字零)光标移至当前行行首
⚫ $:光标移至当前行行末
⚫ fx:搜索当前行中下一个出现字母 x 的地方
注意:当你不知道 vi 当前处于何种模式时,使用 esc 键返回到一般模式。
实例:
vi 2.txt 使用vi编译,创建并编译txt(此处直接使用:wq退出了,所有2.txt是0字节,无内容)
ls -l 查看
vi 2.txt 第二次修改,我加入了www.baidu.com www.zhongwen.com jiayouya等
cat 2.txt 显示2.txt里的内容。
5. 文本复制/粘贴/删除/撤销
在一般模式下,可以执行以下命令:(不推荐一般模式下的操作)
cc 删除整行,并且修改整行内容。
dd 删除该行,不提供修改功能。
ndd 删除当前行向下 n 行。(如删除改行下面的4行,4dd)
x 删除光标所在的字符。
X 删除光标前面的一个字符。
nyy 复制当前行及其下面 n 行。
p 粘贴最近复制的内容。
s 删除光标所在字符。
r 替换光标处字符。
a) 复制 yy //复制当前行(光标处开始) nyy //复制当前行及其后的 n-1 行(n 是行数)(光标处开始)
b) 粘贴 p //粘贴(光标处开始)
c) 删除 dd //删除光标所在行(d:delete) ndd //删除当前行及其后的 n-1 行(n 是数字) x //删除光标所在位置的字符
d) 撤销 u //撤销上一步操作
在编辑模式中:(推荐编辑模式下的操作)
backspace,删除光标所在处。
dw:删除整个单词(光标在首字母处)
D:删除光标之后这一行的所有内容。
o:增加新行,可输入新的内容
a) 复制 yy //复制当前行(光标处开始) nyy //复制当前行及其后的 n-1 行(n 是行数)(光标处开始)
b) 粘贴 p //粘贴(光标处开始)
6. 文本查找和替换
在一般模式下,可以执行以下命令。(先输入 /xxxx)
a) 查找
⚫ n:在同一个方向重复上一次搜索命令
⚫ N:在反方向重复上一次搜索命令
⚫ 在/pattern 之前先跳到第一行则进行全文件搜索。
b) 替换
⚫ :%s/p1/p2/g //将文件中所有的 p1 均用 p2 替换
⚫ :%s/p1/p2/gc //替换时需要确认