请在 /root 这个目录下建立一个名为 vitest 的目录;
mkdir /root/vitest
进入 vitest 这个目录当中;
cd /root/vitest
将 /etc/man.config 拷贝到本目录底下;
cp /etc/man.config .
使用 vi 开启本目录下的 man.config 这个档案;
viman.config
在 vi 中设定一下行号;
set nu
移动到第58 行,向右移动 40 个字符,请问您看到的双引号内是什么目录?
58gg 40+
移动到第一行,并且向下搜寻一下『 text 』这个字符串,请问他在第几行?
1gg /text
接着下来,我要将 50 到 100 行之间的 man 改为 MAN ,并且一个一个挑选是否需要修改,如何下达指令?
:50,100s/man/MAN/gc
修改完之后,突然反悔了,要全部复原,有哪些方法?
u
我要复制 51 到 60 行这十行的内容,并且贴到最后一行之后;
51G 10yy G p
删除 11 到 30 行之间的 20 行;
11G 20dd
将这个档案另存成一个 man.test.config 的檔名;
:wman.test.config
去到第 29 行,并且删除 15 个字符;
29gg 15x
请问目前的档案有多少行与多少字符?
储存后离开吧
操作类型 | 操作键 | 功能 |
光标方向移动 | á、â、ß、à | 上、下、左、右 |
翻页 | Page Down或Ctrl+F | 向下翻动一整页内容 |
Page Up或Ctrl+B | 向上翻动一整页内容 | |
行内快速跳转 | Home键或“^”、数字“0” | 跳转至行首 |
End键或“$”键 | 跳转到行尾 | |
行间快速跳转 | 1G或者gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 | |
#G | 跳转到文件中的第#行 | |
行号显示 | :set nu | 在编辑器中显示行号 |
:set nonu | 取消编辑器中的行号显示 |
操作类型 | 操作键 | 功能 |
剪切 | x或Del (15x) | 删除光标处的单个字符 |
dd (12dd) | 删除当前光标所在行 | |
#dd | 删除从光标处开始的#行内容 | |
d^ | 删除当前光标之前到行首的所有字符 | |
d$ | 删除当前光标处到行尾的所有字符 | |
复制 | yy(20yy) | 复制当前行整行的内容到剪贴板 |
#yy | 复制从光标处开始的#行内容 | |
粘贴 | p | 将缓冲区中的内容粘贴到光标位置处之后 |
P | 粘贴到光标位置处之前 |
功能 | 命令 | 备注 |
保存文件 | :w | |
:w /root/newfile | 另存为其它文件 | |
退出vi | :q | 未修改退出 |
:q! | 放弃对文件内容的修改,并退出vi | |
保存文件退出vi | :wq |
/word | 向光标之后寻找一个字符串 名称为word 的字符串。 |
:n1,n2s/word1/word2/g | 在第n1 与n2 行之间 寻找word1 这个字符串, 并将该字符串取代为word2 ! |
:1,$s/word1/word2/g | 从第一行到最后一行 寻找word1 字符串, 并将该字符串取代为word2 ! |
:1,$s/word1/word2/gc | 从第一行到最后一行 寻找word1 字符串, 并将该字符串取代为word2 ! 且在取代前显示提示字符 给使用者确认(conform)是否需要取代! |