【前端&运维那点事儿】二:Linux中离不开的vim编辑器该怎么玩

1,126 阅读6分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 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的模式切换_Uwcf1d6N5K.png

🍍 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速度。

如果喜欢这个专栏,可以给专栏点个关注~