谁说 Vim 不好用?送你一个五彩斑斓的编辑器!
相信大家在使用各种各样强大的 IDE 写代码时都会注意到,代码中各种类型的关键字会用独特的颜色标记出来,然后形成一套语法高亮规则。这样不仅美观,而且方便代码的阅读。
而在上古神器 Vim 中,我们通常看到的是黑底白字,没有任何其它颜色。难道我们的 Vim 就这么枯燥乏味吗?当然不是,Vim 隐藏了非常多非常实用的功能与技巧,不是老司机根本就不知道。下面来详细介绍。
在开始之前,我们要先检查一下系统中是否安装了 Vim 编辑器。一般来说 Ubuntu 系统是默认自带的,没有的小伙伴请先自行安装。
$ sudo apt-get install vim
然后我们运行以下命令来查看安装好的 Vim 编辑器的版本。
$ vim -version
接下来,我们就可以为 Vim 编辑器添加配色方案。为了能看出效果,我们准备了一个名为 login.sh
的 bash
文件,它的内容如下:
login.sh
!/bin/bash
echo "Type your username"
read username
echo "Type your password"
read password
if [[ ( $username == "admin" && $password == "secret" ) ]]; then
echo "Authorized user"
else
echo "Unauthorized user"
fi
运行以下命令使用 Vim 编辑器打开该文件:
$ vim login.sh
2020 精选 阿里/腾讯等一线大厂 面试、简历、进阶、电子书 公众号「良许Linux」后台回复「资料」免费获取
启用/禁用语法高亮显示
有些发行版的 Vim 编辑器已经帮你默认启用语法高亮,而有些发行版却没有。如果没有默认打开语法高亮,那么我们就需要自行打开。
打开的方法其实也很简单。在 Vim 编辑器中打开 login.sh
文件后,按 ESC
键并键入 :syntax on
,语法高亮显示就打开了,非常方便。
同样,关闭语法高亮也很简单,只需按 ESC
键并键入 :syntax off
即可。
永久启用或禁用语法高亮显示
刚刚那种打开语法高亮的方法只是暂时性的,一旦当前文件关闭,下次打开文件就需要重新打开语法高亮。
如果想要永久启用或禁用语法高亮显示,就需要修改 .vimrc
文件。首先,我们使用 Vim 打开 .vimrc
文件。
$ sudo vim ~ / .vimrc
然后,在打开的文件中添加一句 syntax on
命令,代表永久启用语法高亮显示。最后再输入 :wq
保存并关闭文件。
如果想要永久禁用语法高亮,则添加 syntax off
命令即可。
改变配色方案
在默认情况下,打开语法高亮后 Vim 为你应用了一套默认的配色方案,而实际上 Vim 还有很多套配色方案可供我们使用,我们可以自行去修改。
安装 Vim 后,颜色方案文件位于 /usr/share/vim/vim*/colors/
中。我们可以运行以下命令来查看 Vim 配色方案文件的列表。
$ ls -l /usr/share/vim/vim*/colors/
可以看出 Vim 为我们提供了非常多的配色方案,我们可以根据自己的需要自由选择。假设,我们有一个 hello.html
的 html
文件,我们想要将它的的配色方案改为 morning 类型。
2020 精选 阿里/腾讯等一线大厂 面试、简历、进阶、电子书 公众号「良许Linux」后台回复「资料」免费获取
hello.html
<html>
<head>
<title> Welcome </title>
</head>
<body>
<p> Hello Everybody, Welcome to our site </p>
</body>
</html>
我们首先运行以下命令在 Vim 中打开这个 html 文件。
$ vim hello.html
按 ESC
并键入 :colorscheme morning
,这样我们就更改了文件当前的颜色方案。
应用新颜色方案后,效果如下图显示。但这种更改依然是暂时的,关闭编辑器后配色方案将被重置。
如果想要永久设置特定的配色方案及背景,那么我们需要再次打开 .vimrc
文件并添加以下命令文本。下面配置的是夜晚配色方案,会将背景颜色设置为深色。
color evening
set background=dark
之后再重新打开刚才的文件,效果就会变成如下图所示。
根据语言选择配色方案
Vim 编辑器支持多种语言的语法,例如 PHP,Perl,Python,awk 等。根据不同语言,它会应用一套相应语言的配色方案。
比如现在有一个名为 average.py
的 Python 文件,我们用 Vim 编辑器打开它。通过 Vim 编辑器的默认配色方案,文件的显示效果如下图所示。
这是一个 Python 文件,但如果我们想以 Perl 的语法风格来显示,要怎么操作?我们只需输入 :set syntax=perl
,按 Enter
键就可以了,效果如下图所示。
:set syntax=perl
2020 精选 阿里/腾讯等一线大厂 面试、简历、进阶、电子书 公众号「良许Linux」后台回复「资料」免费获取
自定义配色方案
前面所介绍的那些配色方案,其实都是系统自带的,我们只是选择一下而已。如果我们想要个性化一点,自定义一套配色方案,要怎么操作?强大的 Vim 也是支持你这个需求的!
一般而言,语法需要高亮的无非就是 **变量、注释、常量 **之类的,Vim 编辑器支持的语法高亮组有如下 9 个:
Group Name | Description |
---|---|
Identifier | 变量 |
Statement | 关键字,例如 if,else,do,while等 |
Comment | 注释 |
Type | 数据类型,如 int、double、string等 |
PreProc | 预处理器语句,比如 #include |
Constant | 常量,如数字、带引号的字符串、真/假等 |
Special | 特殊符号,如“\t”、“\n”等 |
Underlined | 带下划线的文本 |
Error | 错误 |
下面举个例子。在 Vim 编辑器中打开名为 leap.py
的 Python 脚本文件。默认情况下,该文件的语法高亮显示如下图所示。
如果我们想把关键字变为红色,该怎么操作?只需输入 :hi Statement ctermfg=red
即可。这时,if
和 else
的颜色将变为红色。
:hi Statement ctermfg=red
当然,对于注释、常量、数据类型,我们也可以使用同样的方法来改变颜色。这样一来,你就会形成一套自己的配色方案,感觉是不是很酸爽?
看完的都是真爱,点个赞再走呗?您的「三连」就是良许持续创作的最大动力!
- 关注原创公众号「良许Linux」,第一时间获取最新Linux干货!
- 公众号后台回复【资料】【面试】【简历】获取精选一线大厂面试、自我提升、简历等资料。
- 关注我的博客:lxlinux.net
谁说 Vim 不好用?送你一个五彩斑斓的编辑器!的更多相关文章
- [译] 通过 contentEditable 属性创建一个所见即所得的编辑器(富文本编辑器)
译者注 这只是一篇入门教程,介绍了一些基础知识,仅供参考,切不可因此觉得富文本编辑器很简单. 创建富文本编辑器是一个非常复杂的工程,需要考虑到方方面面,也有很多坑(请参考原文第一条评论). 为免误导大 ...
- 使用 TypeScript,React,ANTLR 和 Monaco Editor 创建一个自定义 Web 编辑器(二)
译文来源 欢迎阅读如何使用 TypeScript, React, ANTLR4, Monaco Editor 创建一个自定义 Web 编辑器系列的第二章节, 在这之前建议您阅读使用 TypeScrip ...
- 用Scratch2.0源码定制一个自己的编辑器
用Scratch2.0源码定制一个自己的编辑器,换成自己的软件名称和图标,添加中文字体,修复汉化错误等等1.准备:下载Scratch2.0源码.安装开发工具Adobe Flash Builder4.7 ...
- 让我们写一个 Win32 文本编辑器吧 - 2. 计划和显示
让我们写一个 Win32 文本编辑器吧 - 2. 计划和显示 如果你已经阅读了简介,相信你已经对我们接下来要做的事情有所了解. 本文,将会把简介中基础程序修改为一个窗体应用程序.并对编辑器接下来的编辑 ...
- Vim安装jedi-vim提示的一个错误
(仅为了提醒自己) 第一次的安装方法好像是通过 bundle安装的,好像是通过这个安装的并不是最新的版本,然后删除了通过下面的方法,最重要的是要执行 git submodule update --in ...
- 抓到Dubbo异步调用的小BUG,再送你一个贡献开源代码的机会
hello,大家好呀,我是小楼. 最近一个技术群有同学at我,问我是否熟悉Dubbo,这我熟啊~ 他说遇到了一个Dubbo异步调用的问题,怀疑是个BUG,提到BUG我可就不困了,说不定可以水,哦不.. ...
- [JZOJ5511] 送你一个DAG
题目描述: 给出一个 \(n\) 个点 \(m\) 条边的 \(DAG\) 和参数 \(k\). 定义一条经过 \(l\) 条边的路径的权值为 \(l^k\). 对于 \(i = 1-n\), 求出所 ...
- Python You-Get (送你一个免广告的视频和音乐网站 VIP)
You-get可以在仅仅提供URL情况下就可以实现下载视频.图片.音乐等信息.也可以通过播放器在线观看视频或听音乐,重要的是再也不用烦恼弹出的广告了,如果你想观看视频,但又不想观看广告,并且你还想把视 ...
- 送你一个Python 数据排序的好方法
摘要:学习 Pandas排序方法是开始或练习使用 Python进行基本数据分析的好方法.最常见的数据分析是使用电子表格.SQL或pandas 完成的.使用 Pandas 的一大优点是它可以处理大量数据 ...
随机推荐
- 滑动窗口-Moving Stones Until Consecutive II
2020-02-20 16:34:16 问题描述: 问题求解: public int[] numMovesStonesII(int[] stones) { int n = stones.length; ...
- Android之练习MVVM+DataBinding框架模式
最近简单学习了MVVM框架,记录一下. 结果演示: 分析其功能在不同框架下的构成: 无框架 可以明显感受到在无框架下,虽然一个单独的Activity即可实现功能,但其负担过重,代码复查时繁琐,一旦需要 ...
- C# 基础知识系列- 6 Lambda表达式和Linq简单介绍
前言 C#的lambda和Linq可以说是一大亮点,C#的Lambda无处不在,Linq在数据查询上也有着举足轻重的地位. 那么什么是Linq呢,Linq是 Language Intergrated ...
- 粒子群优化算法(PSO)之基于离散化的特征选择(FS)(一)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 作者:Geppetto 在机器学习中,离散化(Discretiza ...
- coding++:Spring Boot 全局事务解释及使用(二)
什么是全局事务: Spring Boot(Spring) 事务是通过 aop(aop相关术语:通知(Advice).连接点(Joinpoint).切入点(Pointcut).切面(Aspect).目标 ...
- war 和 war exploded
IDEA 开发项目时,部署 tomcat 的 Deployment 选项出现: war 模式 可以称之为发布模式.先将 WEB 工程打成 war 包,然后再将其上传到服务器进行发布. war expl ...
- centos7中安装mysql
centos7中安装mysql网上已经很多资源了,我就不在赘述了.我这里只是记录下我安装的时候出现的一些问题. 原文:https://www.cnblogs.com/bigbrotherer/p/72 ...
- Java面试金典
1,将构造函数声明为私有的作用 构造函数私有化,保证类以外的地方不能直接实例化该类,这种情况下,要创建这个类的实例,只能提供一个公共静态方法,像工厂方法模式,由于构造函数私有化,不能被继承. 2,在t ...
- 用css3实现摩天轮旋转的动画效果
用css3实现摩天轮旋转的动画效果 1.CSS3 @keyframes 规则如需在 CSS3 中创建动画,您需要学习 @keyframes 规则.@keyframes 规则用于创建动画.在 @keyf ...
- 万物互联—MQTT协议
一.简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),最早是1999年由IBM开发的基于发布/订阅范式的消息协议,是一种极其简单和轻量级的消息 ...