持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
Hi~,我是一碗周,如果写的文章有幸可以得到你的青睐,万分有幸~
🍈 写在前面
先来介绍一下新开的这个专栏:《前端&运维那点事儿》将会从前端的角度,依次学习Linux→Nginx→Docker→持续集成→k8s,从而打造一个属于站在前端角度的运维专栏。
这篇文字来介绍一下vi和vim编辑器,在Linux中编辑文档离不开的就是vi和vim编辑器了,vim又有编辑器之神的称号;vi和vim的区别简单的说vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面,vi使用于文本编辑,但是vim更适用于coding。
对于前端来说熟练使用vim我感觉是可以但是没有必要,我曾经有一段时间强制自己使用vim,使用了一段时间后最终还是放弃了,对于前端来说几乎永远不可能释放鼠标,再加上身边的朋友和同事几乎没有人使用vim,就切换回普通的编辑器了;
所以我感觉对于一个前端来说,vim只需要做到会用就可以,想熟练掌握还是看个人精力吧,毕竟vim的学习曲线还是非常陡峭的。
🍐 vim的工作模式
vim是vi的升级,这里直接介绍vim,在概念和基本操作上与vi是相同的,如果当前所使用的Linux发行版没有vim的话安装命令如下:
yum -y install vim*
vim编辑器具有多种工作模式,常用的工作模式有一般模式(也有资料叫普通模式或指令模式)、插入模式、末行模式现在来简单介绍一下这几个模式:
🍑 一般模式
使用Vim编辑文件时,默认处于命令模式。此模式下,可使用方向键(上、下、左、右)或k、j、h、i移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
如果想要从一般模式进入插入模式可以按下如下按键进入:
| 按键 | 描述 |
|---|---|
i | 当前位置插入 |
I | 行首插入 |
a | 光标右侧插入 |
A | 行尾插入 |
o | 开始新的一行并插入 |
O | 从当前行的上一行进行插入 |
🍏 插入模式
在插入模式vim可以对文件执行写操作,类似于在Windows系统的文档中输入内容,按【ESC】键可以退回到一般模式。
🍎 末行模式
如果想要进入末行模式,可以在一般模式中键入:即可进入末行模式,在末行模式中输入特定的指令就可以实现保存与退出功能,常用的指令如下:
| 指令 | 描述 |
|---|---|
:q! | 退出并不保存 |
:wq | 保存并退出 |
:x | 保存并退出 |
:w | 保存 |
:w y.txt | 另存为y.txt |
🥭 常用模式的切换
🍍 vim的常规操作
现在开始来介绍一些vim的常规操作,如果不是将vim作为主力编辑器的话,掌握这些操作就可以了。
🍌 光标操作
前面我们说了,可以在一般模式中使用k、j、h、i移动光标的位置,不过说真的,这4个键用起来真的很不习惯,还是习惯使用方向键来移动;现在来介绍其他更快速的操作光标的方法:
| 快捷键 | 描述 |
|---|---|
gg | 移动光标到文件首行 |
G | 移动光标到文件末尾 |
nG | 移动光标到第n行,例如20G就是移动到第20行 |
^ | 光标移动到行首 |
$ | 光标移动到行尾 |
fx | 光标移动到前端行的下一个x字符处 |
Fx | 光标移动到前端行的上一个x字符处 |
w | 光标向后移动一个单词 |
nw | 光标向后移动n个单词 |
b | 光标向前移动一个单词 |
nb | 光标向前移动n个单词 |
到这就是常用的一些光标操作
🍋 编辑操作
这里说的编辑操作并不是进入插入模式编辑文档,而是在一般模式下用过快捷键来操作文档,常用的命令如下:
| 快捷键 | 描述 |
|---|---|
x | 删除光标当前字符 |
dd | 删除一行 |
ndd | 删除n行 |
d$ | 从当前位置删除到行尾 |
u | 撤销上一步的操作 |
rx | 将光标当前字符替换为x,x可以是键盘上输入的任意字符 |
yy | 复制当前行 |
p | 粘贴至当前行之后 |
P | 粘贴至当前行之前 |
🍊 查找操作
vim中的操作操作是在一般模式中进行的,具体操作如下:
-
在一般模式中键入
/ywanzhou,就会在当前光标处向下寻找ywanzhou这个字符串,按下快捷键n则向下寻找匹配的,N向上寻找匹配的; -
键入
?ywanzhou则会在当前光标处向上寻找ywanzhou这个字符串,按下快捷键n则向下寻找匹配的,N向上寻找匹配的。
🍉 替换操作
vim中的替换操作是在末行模式中进行的,替换命令为:s,s也就是substitute;基于语法如下:
:[range] s/{pattern}/{string}/[flags]
-
[range]表示搜索范围,允许你指定搜索替换的范围,可以是整个文件,或者是指定的行,如果没有给出[range],将在光标所在行进行搜索替换; -
{pattern}表示搜索的模式,它可以正则表达式,字符串,单词。也可以是任意字符串; -
{string}允许你指定字符串替换与模式匹配项。它可以是任意字符,包括空白字符串。当没有指定该参数时,将会删除与模式匹配的项。 -
[flags]表示标识,常用的有g表示全局,c表示每次都需要进行确认,i表示忽略大小写
示例如下:
:s /zhou/ywanzhou # 将当前行第一个zhou替换为ywanzhou
:s /zhou/ywanzhou/g # 将当前行所有的zhou替换为ywanzhou
:2,5 /zhou/ywanzhou/gic # 将2-5行所有的zhou替换为ywanzhou,且不区分大小写以及每次替换都需要进行确定
:% s/zhou/ywanzhou/g # 将当前文档中所有的zhou替换为ywanzhou
🥝 配置文件
默认的vim的显示效果与vi没有太大的区别,但是我们可以配置vim的配置文件,从而达到自定义的效果。
全局的配置文件是放在/etc/vim/vimrc中,具体用户的是放在~/.vimrc中的,也就是家目录的.vimrc文件。
现在我们就来介绍一下基础的配置信息:
set nu "显示行号
syntax on "自动语法高亮
set shiftwidth=4 "默认缩进4个空格
set softtabstop=4 "使用tab时 tab空格数
set tabstop=4 "tab 代表4个空格
set expandtab "使用空格替换tab
更多配置项如果感兴趣可以自行百度,这样可以了解更多信息。
🍇 写在最后
这篇文章到这就结束了,如果你对vim有兴趣,可以多花点时间去联系一下,这个东西真的可以提高一些你的coding速度。