一 vim文本编辑器
在正式开始介绍vim之前,先思考一个问题:学编程语言,前前后后装了这么多东西,这些东西都是做什么的?
1.1 python“随从”们
![](https://img.haomeiwen.com/i10420503/e675f3329aadcdd6.png)
无论脚本语言还是编译型语言,编码的时候,我们都需要使用人类语言进行编写,但运行的时候都需要转化为二进制。脚本语言是在每次运行时,由解释器将人类语言(代码)转化为二进制的。python
就属于脚本类语言。
在学习python时,我们都安装了哪些东西?学python,至少会安装两个东西:
-
从python官网下载一个
python
安上
python
-
找个
pycharm
或者vscode
其他的安装上
pycharm
作用:
- 官网下载的
python
你安装python
时,并不是安装了一门语言叫python
。编程语言本身是不需要安装的。你安装python
时,其实是安装的我们上文所说的。而python官方主要的工作,就是开发这个解释器、以及制定语言的语法。
-
pycharm
或vscode
python
并不是必须使用pycharm
或vscode
才能编写,也不是必须基于某个特别开发的软件才能编写;基于任何文本编辑器
都可以写python。区别在哪?区别在文本编辑器提供的插件功能,是不是具有python
语法的支持,如果有支持,那么可以自动补全,可以帮我们检查我们是不是写错了;如果没有语法支持,也可以写,但就需要自己从头写到尾,并且自己检查自己是不是写错了,否则就只能等着执行的时候看看是不是错了。
执行的时候错了,就是第一步,python解释器
给报出来的错了;书写的时候,是文本编辑器
给检查和提示的错误
1.2 奉若神明的Vim
Vim
的作者刚刚去世(2023-08-03)。去世当天社区很多人发表纪念。vim
编辑器在linux中是经常使用的编辑器,也是类UNIX系统中,普遍随系统自带的编辑器。初学的时候有人会对它各种鄙视、甚至恨之入骨;但遇到一些极端情况后,就会庆幸系统里还有Vim
。
![](https://img.haomeiwen.com/i10420503/c85cd28612969957.png)
Vim
的缺点是,真正想用熟练比较难,因为有好多需要记忆的东西。快捷操作比较多,不太会的人一通乱按,很可能不知道进了哪个模式,把文件搞乱。显示的也不像现代编辑器那样美观。
优点:
- 有很多快捷键,几乎不需要鼠标的参与。当我们为专业人士设计软件时,如果讲究操作速度,都会提出无鼠标化操作。比如某些财务软件。当追求快速操作时,拿鼠标一下一下点,很让人崩溃。
- 无需
GUI
。GUI
可以理解为界面。Vim
是使用全命令行操作的,这就代表了它可以运行在全命令行(server)linux上。这在某些情况下是非常重要的,比如小型嵌入式linux系统(性能不足以长时间支撑桌面环境)、需要远程连接和操作服务器时、桌面环境无法打开的情况。
1.3 ubuntu使用Vim
1.3.1 安装
系统安装完成后,自带的编辑器是vi
,vi
是Vim
的精简版本(毕竟少了个m
);我们需要安装一下vim
。
![](https://img.haomeiwen.com/i10420503/afa84cfa294bf008.png)
当在windows下,我们说个安装软件,有些时候会头疼,但这个过程在linux下,很多时候要简单很多。运行命令如下,注意:确保系统可以连接网络。
sudo apt update && sudo apt install vim -y
![](https://img.haomeiwen.com/i10420503/24338c18a1aff16e.png)
1.3.2 使用
启动命令:
# vim <文件名>
vim ./test.txt
要编辑的文件可以不存在,不存在的话,当你退出编辑并保存时,会自动创建一个文件。当刚刚打开一个文件时。显示信息如下:
- 底部从左到右,依次是
文件名
、文件包含的行数
、文件的大小
; -
上部空白区域,为文件内容的显示区域,如果没内容是空白的。
打开一个文件
三种模式:
Vim
提供了三种模式,每种有它自己的功能:命令模式、输入模式、末行模式。这三种模式中,我们对文本内容的主要编辑操作,是在输入模式
下完成的,其他两种模式,主要是为了提供一些快捷操作、必要操作设置的。快捷操作主要集中在命令模式
下,也是Vim
难学难记的核心。但我们只需要几个简单的命令即可。
打开文件,什么也不按下的情况下,是在命令模式。
三种模式,通过不同的操作进行切换。命令模式
相当于父节点
,输入模式
和末行模式
相当于子节点,子节点都是和父节点进行来回切换的。所以
- 能由
命令模式
进入输入模式
(按i
,o
或a
),由输入模式
返回命令模式
(按Esc
) - 能由
命令模式
进入末行模式
(按:
),由末行模式
返回命令模式
(按Esc
) -
输入模式
和末行模式
无法直接切换
三种模式的截图如下:
命令模式下,无法对文本进行编辑
![](https://img.haomeiwen.com/i10420503/297ccec4af0440a8.png)
按下i
,o
或a
进入编辑模式
,此时可以对文件进行编辑。成功进入编辑模式
的特征,是底部会有一个--INSERT--
的提示
![](https://img.haomeiwen.com/i10420503/9110be8df2b32d13.png)
在编辑模式下,按Esc
,返回命令模式,再次变成无法编辑文本的模式,底部--INSERT--
提示消失
![](https://img.haomeiwen.com/i10420503/0d056d2e88ad8198.png)
在命令模式下,按下:
,进入末行模式
。在末行模式下:
- 输入
q!
会放弃所有更改直接退出 - 输入
wq
会保存并退出
末行模式
进入编辑模式
各有不同
按键 | 进入编辑模式的状态 | 示意图 |
---|---|---|
i(不区分大小写) | 在光标当前位置进入编辑模式,新写入时从光标当前位置前写入 |
![]() |
a(不区分大小写) | 在当前光标的下一个字符开始编辑 |
![]() |
o(不区分大小写) | 在当前光标的下一行插入一个新行 |
![]() |
一点快捷操作
-
显示行号
按:
,需要进入末行模式
。输入set number
。 可以看到出现了行号。当我们进行代码修改的时候,有行号会方便很多。
显示行号
-
不显示行号也可以,显示后跳转方便一些。命令模式下,直接输入
nG
,可以跳转到第n
行。G
得大写。6G
二 shell脚本文件
前面我们已经讲到过shell
脚本,但我们前面的文章里,shell
脚本都是在命令行里一条一条的敲进去的。那么,当我们实际需要运行多条指令、要每个周期执行重复的指令时,应该如何解决?
我们可以把脚本写入文件中,需要运行时,直接调用脚本文件即可。Linux中,脚本文件后缀为
.sh
,windows中为.bat
。因为是每次需要处理一批指令,而不是一条,所以也叫做批处理文件
vim ./test.sh
#!/bin/bash
ls
echo $PATH
sudo chmod +x ./test.sh
./test.sh
习题
请使用shell脚本文件,一次性分行输出你的:
- 用户名
- 主目录路径
- 默认的shell版本
![](https://img.haomeiwen.com/i10420503/498964cde938a6eb.png)
网友评论