如果你和很多人一样,你知道 Vim 是你打开来调整配置文件然后无法退出的编辑器。 另一方面,如果你经常使用 Vim,你就会知道它的模态编辑功能有多强大。 如果您运行 Linux 或任何其他 Unix 风格,Vim 值得学习。
也就是说,Vim 很容易显示它的年龄。 默认情况下,它缺少我们在现代文本编辑器中依赖的许多功能。 也就是说,安装几个包,Vim 就可以使用 Visual Studio Code、Sublime Text 等。
插件管理:Vim-Plug
现代文本编辑器的一个关键特性是能够使用插件对其进行扩展。 虽然 Vim 在 8.0 版本中添加了本地包管理,但与第三方包管理器相比,许多人觉得它很麻烦。 最受欢迎的包管理器之一是 Vim-Plug。
在开始使用 Vim-Plug 之前,您需要安装它。 在 Linux 或 macOS 等 Unix 系统上,在终端中运行以下命令以下载并安装 vim-plug。
curl -fLo ~/.vim/autoload/plug.vim --create-dirs
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
如果您在 Windows 中使用 Vim,您可以通过将以下内容粘贴到 PowerShell 中来安装 Vim-Plug。
md ~vimfilesautoload
$uri = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
(New-Object Net.WebClient).DownloadFile(
$uri,
$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath(
"~vimfilesautoloadplug.vim"
)
)
现在,您可以通过将插件添加到您的
~/.vimrc
文件。 您需要在文件中添加两个新行:
call plug#begin('~/.vim/plugged')
call plug#end()
要安装插件,请添加
Plug
后面是其 GitHub URL 的一部分
https://www.github.com
在单引号中。 为了 example,要安装 Solarized 配色方案,您的配置文件将包含以下内容:
call plug#begin('~/.vim/plugged')
Plug 'altercation/vim-colors-solarized'
call plug#end()
有关如何安装包管理器的更多信息,请参阅 Vim-Plug GitHub 页面.
错误检查:综合
许多人开始依赖的另一个功能是您选择的编辑器会在您编写的代码无效时告诉您。 这通常被称为“linting”。 它不会阻止您编写无法运行的代码,但它会捕获您可能没有注意到的基本语法错误。
顾名思义,Syntastic 是 Vim 的语法检查插件。 对于许多语言,它本身实际上并没有做太多事情。 相反,您需要为您选择的一种或多种语言安装一个 linter 或语法检查器。 Syntastic 会将检查器集成到 Vim 中,每次保存文件时都会检查您的代码。
Syntastic 支持的语言比我们在此列出的更多,因此很可能支持您使用的语言。 有关如何配置插件的说明,请参阅 合成 GitHub 页面.
代码完成:YouCompleteMe
语法检查很好,但如果您来自 Visual Studio Code 或类似功能丰富的编辑器,您可能会遗漏其他内容。 这是代码竞赛,在 Visual Studio 世界中也称为 Intellisense。 如果你使用 vim 的目的不仅仅是编辑配置文件,它会让你的生活变得更轻松。
代码完成通过在您键入时弹出建议使编写代码更容易。 如果您使用的是高度嵌套的方法,这很好,因此您不必记住整个字符串。
YouCompleteMe 是 Vim 的代码完成引擎,它是您可以安装的更强大的插件之一。 与其他插件相比,它的安装也有些棘手。 您可以使用 Vim-Plug 之类的包管理器安装基础知识,但您需要对其进行编译。
编译插件最简单的方法是使用包含的
install.py
脚本。 要在 macOS 或 Linux 上执行此操作,请输入以下内容:
cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer
请注意,在 Linux 上,您必须先安装开发工具、CMake 和所需的头文件,然后才能编译 YouCompleteMe。
有关在其他系统上安装和编译 YouCompleteMe 的说明或更多信息,请参阅 YouCompleteMe GitHub 页面.
模糊搜索:CtrlP
如果你正在处理一个包含许多不同文件的项目,Vim 打开文件的方法可能会让你感到沮丧。 这
:e
命令具有基本的自动完成功能,但您仍然需要知道文件的位置。 你可以通过命令行来找到它,但是如果你能直接从 Vim 中做这件事不是更好吗?
幸运的是,你可以。 CtrlP 插件可以搜索文件,但它还可以做更多的事情。 这 CtrlP GitHub 页面 将其描述为“Vim 的完整路径模糊文件、缓冲区、mru、标签……查找器”。 该插件类似于 Sublime Text 的“Goto Anything”命令,令人惊讶的是,它的键盘快捷键为 Ctrl + P 或者 命令 + P.
在大多数现代文本编辑器中都可以找到此功能或等效功能,如果您发现自己缺少它,那么在 Vim 中拥有它真是太好了。
文件浏览:NERDTree
您可能更喜欢更传统的文件浏览类型。 如果你错过了在许多编辑器中找到的文件的左侧面板显示,你会很高兴知道它在 Vim 中可用。 这要归功于 NERDTree 插件.
与 Sublime Text、Visual Studio Code 等中的左侧菜单不同,NERDTree 是一个完整的文件系统资源管理器。 您可以在计算机上的任何位置导航,而不是只显示您的项目目录。 如果您正在处理跨多个项目的文件,这可能是一个非常方便的功能。
要在 Vim 中打开 NERDTree,只需使用
:NERDTree
命令。 如果您希望将其绑定到命令,则可以使用
~/.vimrc
选项如下:
map <C-n> :NERDTreeToggle<CR>
这将使您只需按 Ctrl + N 即可打开并 close NERDTree 面板。
Git 集成:fugitive.vim
Git 集成已成为现代文本编辑器的必备功能,因此很高兴知道它在 Vim 中也可用。 项目 GitHub 页面将 fugitive.vim 描述为“一个非常棒的 Git 包装器,它应该是非法的”。
跑步
:GStatus
会带来类似于你看到的东西
git status
命令。 如果您已完成文件工作并准备提交,请运行
:GCommit %
. 这将允许您在当前运行的 Vim 窗口中编辑提交消息。
这里要列出的命令太多了,另外你可以通过运行来运行任何标准的 Git 命令
:Git
. 有关更多信息(包括截屏视频),请参阅 fugitive.vim GitHub 页面.
您在寻找更多 Vim 技巧吗?
以上提示将有助于使 Vim 现代化,但它们远非您可以根据自己的喜好自定义编辑器的唯一方法。 正如您在阅读本文时可能已经猜到的那样,Vim 是一个非常可调整的编辑器。
如果您准备好更多,请查看我们的 Vim 自定义列表以使其变得更好。