中文

如何创建Vim Dotfile?

你想创建一个Vim-Dotfile吗?我们可以满足你的要求。在今天的文章中,我们将会介绍如何创建一个Vim-Dotfile。

如果你对编程不陌生的话,你肯定已经知道dotfile的重要性了。Dotfile是系统里的隐藏文件,它是专门给更高级的用户,如开发者、程序员或工程师使用的,让他们用来调整系统。

那么,基本而言,Dotfiles指的是什么文件呢?

Dotfiles是系统里的一个强大实体,这些文件用它们自己的方式保存配置。从技术上来说,它们储存被一个程序或系统使用的值。它们的文件名是以(.)开头的,例如.xyz, 并且所有文件都隐藏起来了,普通用户是无法使用它们的。

当弄清楚了dotfiles的概念后,现在我们可以着重讨论Vim以及在Vim的文件编辑器中dotfiles的作用。

另外,你还可以阅读以下文章;

  • 10个只有电脑程序员才知道的习惯和事情
  • 一个来自康涅狄格洲的HTML-CSS编程导师

如何创建Vim Dotfile

如果你对Linux/Unix系统不陌生的话,你肯定已经知道Vim代表了最强大的文本编辑器。它的可置配性取决于dotfiles。不仅是Vim,Unix/Linux系统的其它组件同样使用dotfiles储存配置以及其它对系统的正确运作十分重要的资料。例如,Unix基本系统的配置文件就是以(.)开头的,如.gitgnore or .bash_profile。

你可以用无数方法来使用Vim

Vim具有很高的可定制性。它也可以按你想要的方式来工作。要做到这样的话,你需要使用dotfiles。Dotfiles容易编辑和操作。你要做的是学习Vimscript和根据你自己的偏好来定制脚本。

在我们探讨Vim dotfile前,让我们先探索一下,人们为什么会选择Vim而不是其它文本编辑器。

选择Vim的原因

Vim是一个丰富的文本编辑器。使用Vim有很多好处,列举如下:

  • Vim是一个全面定制化的IDE。它的性能排在CLI工具的首位,它可以轻易地提高工作经验。
  • 与其它任何一个框架一样,文本编辑器同样要求群落。Vim是最古老的文本编辑器之一,因此关于Vim,有太多常见问题的解决方法了。如果你被某些问题难住了,你可以通过google搜索,迅速找到解决方法。
  • Vim的通用性是它的另一个优势。Linux/Unix已经把Vim集成,令所有人可以轻松上手。
  • 与现在的文本编辑器相比 ,Vim是轻量型的,而且更快。
  • Vim在持续开发中。在常规情况下集成新功能。例如,在顶点的多个光标,当Vim释放后,可以马上生效。
  • Vim的学习过程是令人畏惧的,但假以时日,它会变得比较简单,作为一个程序员,你将从中受益。
  • Vim对于使用哪一种编程语言是没有限制的。它可以使用任何一种语言。

关于Vim Dotfiles的更多信息

Vim (它是“Vi Improved”的简称),用来储存dotfile中文本编辑器的配置。Dotfile在Linux/Unix的基本系统上以“.vimrc”命名。如果你正在使用Windows系统,文件名可以是“_vimrc”。

要正确使用dotfile,你需要根据自己的偏好来编辑它。下面我们来看一下如何编辑一个Vim dotfile。

创建Vim Dotfile

首先,你要检查一下.vimrc文件是否存在。要确定这个文件是否可用,可以运行以下命令。

command 1

出于很多原因,”Vimrc”文件有可能已经不存在了。要手动创建.vimrc文件,在你的Linux/Unix终端运行以下代码。

command 2

当创建文件后,现在我们可以继续通过一些例子来看一下如何使用.vimrc文件。

Vim文件的编辑及实例

Vim dotfile可以在任何一种文本编辑器中编辑。你可以使用Gedit,Nano,甚至是Vim。在打开文件后,你需要使用VimScript来配置它。

Vim使用Vimscript。所以如果你想在你的工作环境中添加配置以及在这个过程中创建dotfile的话,你得学习Vimscript。但不用担心,Vimscript是很容易学的,你在几小时内就可以掌握它了。

那么,它是如何完成的?让我们来看一些Vim dotfiles配置的例子。

  1. 设置自动缩进和文本宽度

其中一个你可以使用的最简单的配置是:为你的文本编辑器设置自动缩进和文本宽度。要做到这点,你只要把以下的代码放进你的dotfile就可以了。

command 3

自动缩进可以自动设置一些编程语言所要求的缩格。例如,Python。文本宽度设定每行字符的宽度,在这里,设定为80。

2. 设置好跳格

跳格设置是代码可读性的一个重要部分。如果你用的是Python,你肯定已经知道跳格设置有多重要了。没有正确的跳格设置,你的Python代码将不能读取,并且有可能无法正常工作。

要确保缩格的设置正确,应该在你的Vim dotfile中使用以下代码。

command 4

以上两个例子足够让你见识到dotfile配置的厉害了。

你还可以在Github上保存你的dotfiles, 方便你使用它们。它不但节省时间,还可以消除在程序配置过程中错误传播的机会。

学习VimScriptVim

你可以在网上找一些很棒的资源去学习Vimscript。例如这篇learn Vimscript the hard way。另一方面,你可以观看Livecoding.tv上一些直播名人的视频。例如alexbooker,他分享了一个由两部分组成的视频,目的是教你如何使用Vim和配置它。你还可以在这里浏览和下载Alexbooker的dotfiles。

cruro

下面列出的是一些Vim的很有用的工具和资源插件。

有用的Vim的工具、插件和资源清单

  1. Thoughtful dotfiles

Thoughtful dotfiles是一个出色的dotfiles文件集。你可以查看这个文件集并使用最适合你程序的代码。如果你担心出错,记住解决错误的方法是实践。

Cmizony 在livecoding.tv上经常使用Vim来进行开发工作。他也希望你会成为下一个Vim专家。查看他的amazing in-depth project,了解如何成为Vim专家。他还分享了他的一些看法,教你以学习为目的去改动别人的.vimrc文件。

alex

2. Base 16 Vim

Base16是一个颜色方案,同时也是一个模板系统。它提供了16种颜色。你可以使用Base16 Vim来配置你的Vim颜色方案。它支持图形Vim和控制台Vim。

要启用语法高亮显示,你可以在你的终端使用以下命令。

command 5

3. Vundle

Vundle是一个Vim插件管理器,它可以令你的生活更轻松。这不但可以追踪所有插件和在.vimrc文件中的配置,还能帮助你安装和更新正在运行中的配置插件。它的其它主要功能包括搜索Vim的脚本,清除没有使用过的插件,并在交互模式中提供单一的按键,确保你无需输入整个命令。

结束语

Vim是一个强大的文本编辑器。学习如何结合Vim定制dotfile对你目前和将来的项目会有很大帮助。对于那些刚开始学习Vim和dotfiles整体理念的人来说 ,可能会觉得Vim有点可怕。但是不用害怕,因为现在有很多优秀的直播者正在使用Vim开发复杂的项目。其中一个很突出的例子,就是Halo 5 map分析工具项目,它就是广泛使用了vim。这个项目由godlyperfection执行。不要错过他的直播,学习更多有关Vim的知识和使用方法。

那么,你现在准备好配置你的Vim文本编辑器了吗?欢迎发表你的意见,和我们分享你对定制化的看法。

Avatar
About author

I, Dr. Michael J. Garbade is the co-founder of the Education Ecosystem (aka LiveEdu), ex-Amazon, GE, Rebate Networks, Y-combinator. Python, Django, and DevOps Engineer. Serial Entrepreneur. Experienced in raising venture funding. I speak English and German as mother tongues. I have a Masters in Business Administration and Physics, and a Ph.D. in Venture Capital Financing. Currently, I am the Project Lead on the community project -Nationalcoronalvirus Hotline I write subject matter expert technical and business articles in leading blogs like Opensource.com, Dzone.com, Cybrary, Businessinsider, Entrepreneur.com, TechinAsia, Coindesk, and Cointelegraph. I am a frequent speaker and panelist at tech and blockchain conferences around the globe. I serve as a start-up mentor at Axel Springer Accelerator, NY Edtech Accelerator, Seedstars, and Learnlaunch Accelerator. I love hackathons and often serve as a technical judge on hackathon panels.