备注:本文为《Linux Vim入门教程》第1篇文章。

1、Vim是什么?

vi/vim是Linux最基本的文本编辑工具,Vim起源于vi,其官网是这样介绍的:

Vim is a greatly improved version of the good old UNIX editor Vi.

vim的名字来源于:vi improved。vim是vi的进化版,vi是一款由加州大学伯克利分校的Bill Joy研究开发的文本编辑器。

备注:关于Bill Joy,则更具传奇色彩,他是美国著名计算机科学家。1982年,Joy作为联合创始人和首席科学家参与了Sun微系统公司的成立,设计了Sparc微处理器,并将之前自己领导开发的BSD继续发展成为Solaris操作系统。另外,他还是Java和Jini的主要作者之一。

2、Vim的工作模式

vim有三种基本的工作模式:


vim.png

2.1、命令模式:

打开文件首先进入命令模式,是使用vim编辑器的入口。在命令模式下,通过使用命令对文件进行常规的编辑操作,例如:复制、粘贴、删除、定位、翻页等等。

2.2、末行模式:

末行模式是vim编辑器的出口,要退出vim,必须要在末行模式下。在末行模式下,执行退出文件、保存并退出文件等操作。

2.3、编辑模式:

正常的编辑文字模式。

2.4、三种模式的切换

(1)vim打开一个文件进入的就是命令模式,另外两种模式需要回到命令模式才能进入彼此。

(2)在命令模式中按下【i,I,o,O,a,A,r,R】任何一个字母后进入编辑模式,进入编辑模式后,下方会出现【INSERT】或者【REPLACE】字样,按【Esc】键退出编辑模式,回到命令模式。

(3)在命令模式中按下【:,/,?】中任意一个即可进入末行模式,末行模式可以对文档或者vim环境进行操作,例如查找,读取,存盘,替换,离开,显示行号等。

3、Vim保存和退出命令

命令

简单说明

:w

英文:write。保存编辑后的文件内容,但不退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中。

:w!

强制写文件,即强制覆盖原有文件。如果原有文件的访问权限不允许写入文件,例如,原有的文件为只读文件,则可使用这个命令强制写入。但是,这种命令用法仅当用户是文件的属主时才适用,而超级用户则不受此限制。

:wq

英文:write & quit。保存文件内容后退出vim编辑器。这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中,然后退出vim编辑器。另外一种替代的方法是用ZZ命令。备注:ZZ常用于描述睡觉的呼噜声,指人睡着了。用在vim中,也很形象贴切,退出vim编辑器让文件“睡觉”,不再打扰它。

:wq!

强制保存文件内容后退出vim编辑器。这个命令的作用是把内存缓冲区中的数据强制写到启动vim时指定的文件中,然后退出vim编辑器。

ZZ

使用ZZ命令时,如果文件已经做过编辑处理,则把内存缓冲区中的数据写到启动vim时指定的文件中,然后退出vim编辑器。否则,只是退出vim而已。注意,ZZ命令前面无需加冒号“:”,也无需按Enter键。

:q

在未做任何编辑处理而准备退出vim时,可以使用此命令。如果已做过编辑处理,则vim不允许用户使用“:q”命令退出,同时还会输出下列警告信息:

No write since last change (:quit! overrides)

:q!

强制退出vim编辑器,放弃编辑处理的结果。如果确实不需要保存修改后的文件内容,可输入“:q!”命令,强行退出vim编辑器。

:w filename

把编辑处理后的结果写到指定的文件中保存

:w! filename

把编辑处理后的结果强制保存到指定的文件中,如果文件已经存在,则覆盖现有的文件。

:wq! filename

把编辑处理后的结果强制保存到指定的文件中,如果文件已经存在,则覆盖现有文件,并退出vim编辑器。

备注:感叹号!多用于强制执行,例如CSS中用“!important”强制提升样式的权重。


文末思考题:给各位站长徒弟留个疑问:当文件未做任何修改,执行:wq和:wq!有什么区别吗?请仔细思考一下。如果实在想不明白,可以找站长私聊。

标签: none

添加新评论