在本章节介绍vim工具。
2.1什么是vim
vim是一种Linux命令行类型的文本编辑器。vim指的是"vi improved",意思是vi工具的升级版。vim是基于vi实现的,它提供了额外的功能,例如提升用户体验、增强文本编辑器的工作效率等。如果安装了vim程序,只需要输入命令就可以启动vim工具:
vim filename
vim是 " Vi Improved “的缩写,它是一款免费、开源、跨平台的文本编辑器,它是Bram Moolenaar在1991年在类UNIX系统上开发出来的。vim编辑器是基于vi实现的,而vi编辑器是Bill Joy在1976年开发的,当时vi工具非常流行,但到了90年代,相比较于Emacs编辑器来说,vi缺少了很多功能,因此Bram Moolenaar开发了一些新的功能,并给这个编辑器起名为vim。
2.2 什么是vi
vi是一种标准的命令行类型文本编辑器。vi指的是"visual interface”,意思是可视化的界面。vi始于UNIX命令行文本编辑器,当时它还不是vi,而是叫做"ed"的一款命令行文本编辑器,而且衍生出了不同类型的编辑器,最后才形成vi编辑器。要使用vi工具,只需要在命令行输入:
vi filename
vi是一种模式类型的编辑器,而且它有很多种模式。当我们打开一个文本文件的时候,会进入到"command mode",在"command mode"命令模式下,无法输入内容。如果要切换到"insert mode" 插入模式,可以按下"i"键:
i
在编辑内容完成后,可以按下"Esc"键返回到"command mode",保存并退出,可以输入:
:wq
w:write,表示写入。
q:quit,表示退出。
不保存仅退出,可以输入:
:q
2.3 安装vim
vim是一款跨平台的编辑器,可以在Windows、Linux和Mac上运行。在Windows下安装vim,可以去vim的官网下载,点击这里下载vim。在大部分的*nix操作系统上都预装了vim,如果没有安装的话,可以使用命令进行安装,不同的Linux发行版的安装命令不同,下面列出在centos7下安装vim:
sudo yum -y install vim*
为了确保你正确的安装vim,你可以使用命令查看安装的vim路径:
which vim
如果是下面的输出,则说明vim已经安装好了:
/usr/bin/vim
3.1打开vim
你可以在命令行输入vim,就可以打开vim编辑器:
vim
vim界面:
3.2 vim中的模式
这里需要理解一个概念:在vim中任何东西都视为一种模式。如果你理解了vim中的模式,那么你使用vim就会如鱼得水。在vim中有很多种模式,这里介绍vim中最重要的4种模式:
3.3 什么是命令模式?
命令行输入vim,打开的vim界面默认就是命令模式,也叫做(Normal mode)普通模式。在命令模式下,可以切换到其它任何模式。一般情况下,你要从一个模式切换到另一种模式,首先你要转到命令模式,然后再切换到其它模式。当你在执行一个命令的时候,如果这个命令不是以冒号开始的(" : "),那就表明你现在处于命令模式。
3.4 什么是插入模式?
在插入模式下,你可以随心所欲的编辑文本内容,只要按下i键就可以转到插入模式。在窗口的左下角,会显示一个单词:INSERT,表明当前处于插入模式,当你编辑内容完成后,你可以按下Esc键退回到命令模式,此时输入内容:wq就可以保存文本内容并退出vim。
3.5 什么是命令行模式?
在命令行模式下,可以执行一些命令。但是这些命令要以冒号开头(:),你可以在命令模式下输入冒号(:)切换至命令行模式,上面讲到的保存退出,就是命令行模式:
:wq
3.6 什么是视图模式?
在视图模式下,你可以选择一些文本或运行一些命令,通过按下v键切换到视图模式。
3.7 四种模式之间切换图
4.1创建一个文件
使用vim创建文件非常简单!创建文件有两种方式,一种是打开终端,输入命令:
[user@192 tmp]$ vim simple.txt
如果当前目录下simple.txt这个文件不存在,则创建这个文件;如果当前目录下simple.txt文件存在,则打开这个文件;
另外一种创建文件的方式是,在命令行模式(命令模式切换到命令行模式,只需要输入:冒号即可),输入:
:edit simple.txt
输入完成后,提示:
"simple.txt" [New File]
则说明已经创建了simple.txt文件,需要向文件中输入内容,只需要按下i键,切换至插入模式(insert mode),左下角会显示一个英文单词:INSERT,说明当前处于Insert mode,可以向文件中输入任何你想要输入的内容:
4.2 保存文件并退出
保存文件并退出,只需要切换到命令行模式,从插入模式切换到命令行模式,你需要按下Esc键,这时候,左下角不在显示英文单词:INSERT,输入冒号(:)将切换至命令行模式,
insert mode --> command mode: 按下Esc键
command mode -->command-line mode: 输入冒号(:)
:wq
4.3 如何编辑一个文件
编辑一个文件,你需要使用vim打开一个文件,并切换至插入模式。打开文件:
vim simple.txt
打开一个文件,默认是处于命令模式或普通模式,编辑文件,需要切换至插入模式,命令模式切换至插入模式,按下i键。
按下Esc键,回到命令模式,输入:w 保存文件,输入:q不保存文件退出,你也可以保存退出一起输入,像这样:wq,表示保存文件并退出vim,如果不想保存文件直接退出,可以输入:q! ,!号表示强制。
在默认模式下,按下v键进入视图模式。视图模式可以选取文本,选择内容后,按y键复制,p键粘贴,d键剪切。
5.1查找和替换
在一段文本中查找和替换也很简单,只需要一条命令就可以完成操作,下面是语法:
:[range]s/[pattern]/[string]/[flags]
单独解释每个部分是如何工作的:
例如,上面的文本内容,有2个"早上好",要求将文本中出现的所有的早上好,替换成好久不见,可以输入以下命令:
:%s/早上好/好久不见/g
5.2 指定行号查找和替换
例如,现在有一个新的要求,把第4行到第7行出现的 “幸福快乐每一天” 替换成 “开心每一天”,并且替换前需要确认。可以在命令行模式下输入以下命令:
:3,5s/幸福快乐每一天/开心每一天/gci
在命令行模式下,输入以下命令,可以显示行号:
:set nu
不显示行号:
:set nonu
有时,当你在编辑一个文件的时候,你可能删错了一行,或者是在编辑的时候改变注意了,这时候需要执行撤销操作,返回上一步。在vim中撤销操作,你可以在命令模式下按下u键,即可取消之前的操作,按两下u键,返回前两步操作。
撤销操作:
1.命令模式下,按下u键
2.命令行模式下,输入:u
3.命令行模式下,输入:undo
4.命令行模式下,:2u表示返回前两步,:4u表示返回前4步,以此类推。
重做操作(反撤销):
1.命令模式下按下ctrl+r :重做,重新执行一遍之前的操作
2.命令行模式下,输入:redo
重做4步,可以按下4ctrl+r(按下4键,再按下ctrl键不放,按r键。)
一个简单的vim例子完结。在本章节只介绍了vim的基本操作,学完本篇vim例子可以帮助你更好的使用vim工具。虽然在本篇中只介绍了vim的1%的内容,但是这些基本操作会帮助到你更好的理解和应用vim。如果有什么想问的问题,可以在评论下方留言,如果发现有错误的地方或有待提高的地方,欢迎指正!