俗话说得好,工欲善其事,必先利其器,有了前面那么多的命令铺垫,终于可以讲一下文本编辑器vi的使用了,学了这个之后就可以开始真正的shell编程了。除开VI这种终端下命令行试的编辑工具,还有gedit,kate等图形化的文本编辑工具。但是用下来还是习惯vi。为什么会形成这样的习惯呢?首先图形化的工具需要安装桌面环境,这跑起来费资源,二是因为vi基本系统上都是自带的,默认安装。记得我刚才学习编程时主要就是vi直接写代码的。vi玩得溜的话也是很方便的。今天只是学习基本的使用。写代码是够了的。下面我们开始。
学习vi看似枯燥无味,但当你实践起来时发现像打游戏一样,只要熟悉了之后其实还是很快的。
一、VI的三种操作模式介绍
1.1命令模式
该模式直接通过命令编辑,像删除,复制等
1.2文本编辑模式
主要用于输入文本时切换此模式
1.3底行命令模式
主要用于字符搜索,替换,定位某行,对vi进行简单设置等。
二、VI的命令模式
2.1 在命令模式下进入文本编辑模式的方法
首先进入VI,在终端上直接输入vi my_file回车就进入了vi的编辑器了。此时默认进入的是命令模式,切换到文本编辑模式的方法有三种:
在命令模式下按下i键表示在光标所处的位置插入文字
在命令模式下按下a键表示在光标所处的位置下一个字插入文字
在命令模式下按下o键表示在当前行的下面插入新的一行,开始写文字。
进入了文本编辑模式之后啊,就可以进行自由的输入文本了,写代码了。
如何退出文本编辑模式呢?在文本编辑模式下按下键盘ESC键就切换到了命令模式。
2.2 光标的移动
有两种一种键盘上面方向键来移动,一种是字母:h向左,j向下,k向上,l向右。这就跟玩游戏的应该差不多吧。
2.3位置快捷键
ctrl+f 向前翻页
shift+9 光标定位到行首
shift+0 光标定位到行尾
w 下一个单词的开始
e 下一个单词的结尾
b 上一个单词开头
shift+$ 移动光标到所在行的行尾
2.4删除文字
x 删除光标位置后面的一个字符
x 例如5x删除光标后面的5个字符
X 也就是shift + x删除光标位置的前面一个字符
X 例如5X,也就是5、shift、x依次下按。删除光标前面5个字符
dd 删除光标所在的行
dd 例如5dd删除光标所在行及下面的5行,注意了,这里包括当前行相当于共删除了6行。
2.5复制粘贴
p 粘贴缓冲区的内容
yw 将光标所在位置字符一直到单词结尾复制到缓冲区
yy 复制光标所在行到缓冲区
yy 如5yy复制光标所在行以及下面5行到缓冲区
2.6取代
r 取代当标所处的字符,当按下r键后再按要取代为的字符。
R 一直取代,直到按下ESC键。当按下R键后,持续输入要取代为的字符,直接到按下ESC键。
2.7恢复或者撤销
按u键是撤销操作,一直按就一直撤销上一步操作。
2.8跳到指定的行
ctrl+g 列出当前行行号在最下面可以看到。
G 这个命令的意思就是如果想跳到第2行,则按下2、shift、g依次按下这三个键就可以了。
3.底行命令模式
3.1进行入底行命令模式
在命令模式下按shft+:进入底行命令模式
3.2列出每一行的行号
在底行命令模式下:set nu 回车。
3.3跳到指定的行
在底行命令模式下输入行号,回车。
3.4搜索关键字
在底行命令模式下输入/后面关键字,回车。
n 跳到下一个关键字出现的位置
N 也就是shift+n跳到上一个关键字出现的位置
/n个空格回车 取消选中
3.5替换字符串
在底行命令模式输入: %s/string/replace/g
作用是全局搜索string并替换为replace.
3.6保存退出
保存文件-在底行命令模式输入:w 回车
保存并退出-在底行命令模式输入:wq 回车
不保存并强制退出-在底行命令模式输入:q! 回车
退出-在底行命令模式输入:q 回车
这一期到这里就把vi的基本用法给介绍完了。后面我们再抽空继续。感谢大家支持。