记录自己的学习过程
一、vim
vim有三种模式:
- 命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作
- 输入模式:正常的文本录入
- 末行模式:保存或退出文档,以及设置编辑环境
他们之间的关系如图所示:
在每次运行Vim编辑器时,默认进入命令模式,此时需要先切换到输入模式(a,i,o)后再进行文档编写工作,而每次在编写完文档后需要先返回命令模式(esc),然后再进入末行模式(:),执行文档的保存或退出操作。在Vim中,无法直接从输入模式切换到末行模式。Vim编辑器中内置的命令有成百上千种用法。
1、命令模式
操作类型 | 操作键 | 功能 |
---|---|---|
光标方向移动 | ↑,↓,←,→ | 上,下,左,右 |
翻页 | Ctrl+F | 向下翻动一整页内容 |
Ctrl+B | 向上翻动一整页内容 | |
行内快速跳转 | 0 | 跳转至行首 |
$ | 跳转至行尾 | |
文档中快速跳转 | gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 | |
:G | 跳转到文件的第G行 | |
行号显示 | :set nu | 在编辑器中显示行号 |
:set nonu | 取消显示行号 | |
删除 | x | 删除光标处的单个字符 |
dd | 删除光标所在行 | |
#dd | 删除从光标往下的#行 | |
d^ | 删除从光标处到该行行首的所有字符 | |
d$ | 删除从光标处到该行行尾的所有字符 | |
复制 | yy | 复制光标所处整行的内容 |
#yy | 复制从光标处开始往下#行的内容 | |
粘贴 | p | 将复制的内容粘贴到光标后 |
P | 将复制的内容粘贴到光标后 | |
查找 | /word | 从上往下在文件中查找字符串word |
?word | 从下往上在文件中查找字符串word | |
n | 定位下一个被查找的字符串 | |
N | 定位上一个被查找的字符串 | |
撤销 | u | 取消最近的操作 |
U | 取消对当前行所做的所有编辑 | |
ZZ | 保存并退出 |
2、末行模式
功能 | 操作键 | 备注 |
---|---|---|
保存文件 | :w | 上,下,左,右 |
:w /root/newfile | 另存为其他文件 | |
未修改退出 | :q | |
放弃对文件内容的修改,并退出vim | :q! | |
保存并退出vim | :wq | |
打开新文件进行编辑 | :e ~/install.log | |
在当前文件中读入其他文件内容 | :r /etc/filesystems | |
将当前行中查找到的第一个字符old替换为new | : s /old/new | |
将当前行中查找到的所有字符old替换为new | : s /old/new/g | |
在行号#,#范围内替换所有的old为new | :#,# s/old/new/g | |
在整个文件范围内替换所有old为new | :% s/old/new/g | |
在替换命令末尾加入c,将对每个替换动作提示用户进行确认 | : s /old/new/c |
!!!!!!!! : s之间是没有空格的!!!!!!!!!
编辑器没有空格输入会成这样 😒
练习:
1.使用两种方式创建文本文件text1.txt, text2.txt
a.使用Vim在文件text1.txt中写入
Welcome to my Linux.
You are the best.
This is my first file to create on linux
b.在命令模式下,复制第二行,并粘贴到第三行下边
c.在命令模式下,先跳转文件的末尾行,然后跳转到文件的首行
d.删除第二行
e.替换文件中所有的to单词
f.保存并退出
[root@my-rhel ~]# ll
total 4
-rw-------. 1 root root 1766 Aug 4 13:34 anaconda-ks.cfg
drwxr-xr-x. 3 root root 37 Aug 7 18:38 llll
[root@my-rhel ~]# touch text1.txt
[root@my-rhel ~]# vim text2.txt
[root@my-rhel ~]# ll
total 4
-rw-------. 1 root root 1766 Aug 4 13:34 anaconda-ks.cfg
drwxr-xr-x. 3 root root 37 Aug 7 18:38 llll
-rw-r--r--. 1 root root 0 Aug 7 20:14 text1.txt
-rw-r--r--. 1 root root 0 Aug 7 20:15 text2.txt
[root@my-rhel ~]# vim text1.txt
[root@my-rhel ~]# more text1.txt
Welcome to my Linux.
You are the best.
this is my first file to create on linux
[root@my-rhel ~]# vim text1.txt
[root@my-rhel ~]# more text1.txt
Welcome 6666 my Linux.
this is my first file 6666 create on linux.
You are the best.