文本编辑

视频讲解

vi 操作:命令模式和插入模式

点击这里,看视频讲解


vi 操作:底行模式

点击这里,看视频讲解

前言

大家都习惯了Windows下面的文本编辑。用 Word、记事本这些软件来编辑。

但是,前面曾经说过,Linux下面的操作往往都是在命令行窗口(术语叫字符终端)里面进行的。

字符终端窗口没有图形界面,在这里面编辑文件 最常用的 就是 大名鼎鼎的 vi

学习vi并不是容易的事情,但是 几乎所有UNIX、LINUX系统都预装vi。

而且刚才也说了,我们操作Linux 往往是远程操作,没有图形界面,我们要修改一个文本文件,那么最快捷的方式就是用 vi。

vi有个加强版本叫做vim,两者常用的功能没有什么大的区别。

在比较新的CentOS发行版本里面,都缺省将vi别名为vim了。

在命令行里敲入 vi 后面加要编辑的文件名,比如 vi byhy.txt ,就进入vi的界面了。

学习vi时,大家可能最不习惯的 就是: vi 有 3 种使用模式。

不同的模式,用户可以干的事情不同。

命令模式

执行vi abc.txt 文件名 命令,就打开了vi去编辑文件abc.txt,默认进入的就是命令模式

在该模式下,不可以输入文字,那干什么呢?

那命令模式下面我们通常可以干什么呢?

首先就是移动光标

键盘h  光标左移一个字符
键盘j  光标下移一个字符
键盘k  光标上移一个字符
键盘l  光标右移一个字符

当然 也可以通过键盘 方向键 来移动光标位置。

另外还支持下面的按键操作

0^  光标移动到所在行的行首
按$     光标移动到所在行的行尾
输入gg  把光标移到文件开始位置
输入G   把光标移到文件末尾
输入Ctrl + f    往下翻一页
输入Ctrl + b    往上翻一页


删除文字也是我们常做的操作

x   删除光标所在字符
dd  删除光标所在行
dw  删除光标所在处到词尾的内容
d$  删除光标所在处到行尾的内容


另外,还有下面这些操作

yy  复制光标所在的行
p  黏贴
v,然后移动光标,可以选择内容,再按y复制选中的内容
u  撤销刚才所做的操作
Ctrl+r  重做被撤销当前所做的操作
.  重复刚才所做的操作


可能大家也发现了,上面说的命令模式下面的操作,都不可以直接输入文字到文件中。

要输入文字,就必须 切换到插入模式。

怎么切换到插入模式呢?

从命令模式进入插入模式的方式有:

a-将在光标所在位置之后插入文本(append
i-将在光标所在位置之前插入文本(insert)
o-将在光标所在行之后插入一新行

进入到插入模式,就可以输入文字了。


另外,在命令模式下,我们还可以按冒号按键,切换到底线模式。 底线模式干什么? 后面再讲。

插入模式

插入模式是用来让 用户进行文件内容的输入的。

用户刚进入vi是命令模式, 想敲字符输入内容是不行的。必须进入插入模式,你才能输入字符。

在插入模式下,可以通过键盘方向键,来移动光标。

但是不能再 通过 ghjk 来移动光标了,因为现在你按这些按键就是输入对应的字符了。

在插入模式下,编辑文件的过程中,你经常需要切换回 命令模式,来删除字符、删除行,跳到上一页,到最后一行等等。

所以,我们使用vi,会非常频繁的在插入模式 和 命令模式之间切换, 大家要熟悉这种切换。

从插入模式切换到命令模式,就是输入按键 Esc,就是键盘左上角的那个按键。

底行模式

所谓 底行模式,就是在屏幕底部打开命令行,用来输入命令。

底行模式 主要是 输入命令 来 保存文件 或 退出vi程序、寻找字符串、列出行号等

注意:我们只能从命令模式进入底行模式。

所以,如果你现在是处于插入模式,必须先按Esc键进入命令模式后,再按冒号 / 进入底行模式。

底线模式常用操作有如下这些:

:wq 保存文件并退出

:q 不保存文件,并退出,如果文件做了修改,但有不想保存,需要用:q!

:q! 不保存文件,强制退出

:w 只保存文件,但是不退出vi,可以切换到输入模式下面继续编辑文件

:set nu 显示行号

/abc 在文件中查找abc字符。按 n 不停的往下查找,按 N 往上查找

:1,$s/string/replace/g 替换功能,把文件中的string,替换为replace 按Esc键,切换到命令模式


作业和练习

请根据本节教程,

  • 使用vi编辑一个新文本文件,名为byhy.txt 先输入如下内容
I had the same hyhy question. 

It took me a while to find this, byhy until I finally saw the note in the SEE ALSO section about using the command:

info coreutils 'ls invocation'

  • 找到并 删除其中所有的 ‘hyhy’ 名词

  • 将最后一行 复制粘贴 10 遍

  • 保存并退出vi


扫码分享给朋友,一起学更有动力哦




上一页

下一页