先引入一个教程,大家可以看看,因为笔者水平也很low,手上几本书都是介绍vi的,上一章,我也说了,vim是vi的改进版,但是使用vi也没什么问题,所以,我在这里就直接写vi的使用了哈。
1.vi的基本模式
vi编辑器有3种工作模式,分别为:
- 命令行模式(command mode):在命令行模式下,用户可以输入命令来控制屏幕光标的移动,删除字符、单词或行,移动复制某区段,也可以进入到底行模式或者插入模式。
- 插入模式(insert mode):用户只有在插入模式下,才能进行字符输入,用户摁【ESC】键可以回到命令行模式下。
- 底行模式(last line mode):在底行模式下,用户可以将文件保存或退出,也可以设置编辑环境,如查找字符串、显示行号等。一般底行模式以”:“开始。
在使用的时候,我们可以将vi简化成两个模式,把底行模式也归到命令行模式中。
2.vi的基本操作
2.1.关于linux命令的介绍
我目前学习,使用的是VM虚拟机的Ubuntu系统(linux系统下的一种),具体虚拟机的安装方法,大家可以自己去找资源,如果实在找不到,可以私信我(不想引流,单纯不想找麻烦,最好自己找)。
在linux系统里,会有终端,可以在里面可以使用很多linux命令,来完成对文件的一些操作,比如,我这里的ls,就是展示当前文件夹的文件。
linux命令功能查询
这个教程里,主要是对于文件和目录、系统管理、网络等常用指令的查询,部分比如文本编辑指令、shell编程指令,并没有介绍,可以先浏览参考参考。
2.2.关于shell脚本的介绍
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
目前用不到,这里先放一个教程。
Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux 的 Shell 种类众多,常见的有:
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
……
本教程关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数 Linux 系统默认的 Shell。
在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为#!/bin/bash。
告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
2.3.进入与离开vi
进入:vi hello.c
此时,如果在当前文件夹里存在hello.c这个文件,那么就会进入这个文件,如果没有hello.c这个文件,就会在当前文件夹里新建这样一个文件,并进入到这个文件当中(此时刚进入处于命令行模式)
退出:此时如果处于命令行模式,需要先按一下【ESC】进入到命令行模式中,按照参考文档的说法,这个时候再输入”:“可以视为进入底行模式,再输入命令如q(不保存离开),wq(保存离开)。
但其实可以换一种角度看,就是把vi编辑器只看做有两种模式:插入模式和命令行&底行模式,摁【ESC】进入到命令行&底行模式时,正常输入命令就可以了。
2.4.命令行&底行模式—转为—>插入模式
到插入模式中,因为每个人的使用习惯不同,想实现的要求也不同,所以又细分了几种进入后的输入特征,我本人常用的就是a。
- 新增
a:从光标所在位置后面开始新增
A:从光标所在行最后面开始新增
2.插入
i:从光标所在位置前面开始新增
I:从光标所在行最前面开始新增
3.开始
o:从光标所在行下,新增一行,开始输入
O:从光标所在行上,新增一行,开始输入
当然,还有其他的输入特征,比如取代(r, R),删除(s,S),我放在下面了。
3.vi在插入模式下的操作
按照正常编译器的操作就行,没什么说的。
4.vi在命令行&底行模式下的操作
4.1.命令行模式的指令
注意,n时具体的数字,要代数进去。
- 剪切/删除
nx:剪切从光标所在字符开始的n个字符
ncb:剪切光标所在的前n个单词(cut before)
ncw:剪切光标所在的后n个单词(cut word)
n$:剪切从光标所在字符到行尾的所有字符
ndd:剪切自光标所在行开始的n行,如果到结尾不够n行,那就到结尾为止
s:删除光标所在的字符,并进入插入模式
S:删除光标所在行,并进入插入模式
- 修改
r:修改光标所在的字符,并进入插入模式
R:进入取代状态,可移动光标键入所指位置的修改字符,该取代状态知道摁【ESC】才结束
- 复制
nyb:复制光标所在的前n个单词
nyw:复制光标所在的后n个单词
y$:复制从光标所在字符到行尾的所有字符
ydd:复制自光标所在行开始的n行,如果到结尾不够n行,那就到结尾为止
- 粘贴
p:粘贴
- 撤回
u:取消上一次的文本操作
- 光标移动
这个内容有点多,放一篇搜到的文章,大家可以看一下。
- 查找
/<字符>:向下查找
?<字符>:向上查找
4.2.底行模式的指令
- 替换
:n1,n2s/word1/word2/g:n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 。
举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。
:1,$s/word1/word2/gc:从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 ,且在取代前显示提示字符给用户确认 (confirm) 是否需要取代。
- 文件操作指令
:q:结束编译,退出vi
:q!:不保存编辑过的文档
:w:保存文档,其后,可加要保存的文件名
:wq:保存文档并退出。
:zz和:x也是保存文档退出
以上就是vi编辑器的使用,接下来就是介绍linux编译器GCC的使用了。