如果您像我一样喜欢轻量级且可靠的 VIM 文本编辑器,并且想要坚持使用它而不是迁移到像 Pycharm 这样更新、更高级的集成开发环境,那么您来对地方了。 众所周知,像 Vim 和 Emacs 这样的文本编辑器具有很强的可扩展性,在本教程中,我们将研究一些方法来使用这种可扩展性,使 Vim 更像一个 IDE,同时仍然保持其轻量级的吸引力。
Vim 教程 – 开始使用 VIM 所需的一切
你的 Vim IDE 会发生什么?
显然,我们无法在 Vim 中实现像 Pycharm 这样广泛的 IDE 的所有功能。 在本教程中,我们将着眼于实现可以改善您的编码体验的基本功能。 这包括语法高亮、自动完成、git 集成等。
先决条件
对于这里提到的很多功能,我们将通过 vim-plug 和 Vundle 安装插件。 因此,请确保您已经安装并设置了 vim-plug 和 Vundle 并知道如何使用它。 如果您在设置它们时需要任何帮助,请参阅 vim-plug 和 vundle 文章。
1. 语法和缩进支持
在任何文本编辑器或 IDE 中,您首先需要的是每种语言的语法高亮显示。 值得庆幸的是,Vim 默认带有内置的语法高亮。
要在 vim 中启用语法高亮,请转到 /etc/vim/vimrc 或 /etc/vimrc 并取消注释以下行。 通过取消注释,我的意思是删除这些行之前可能存在的 # (哈希)。 如果他们已经被评论,那么你很高兴。
if has("syntax") syntax on endif
现在,您可以随时从文本编辑器启用或禁用语法。
要启用语法,请转到正常模式并键入
:syntax on
并禁用语法突出显示,您可以使用
:syntax off
作为替代方案,您可以安装 vim-polyglot 以获得语法和缩进支持。 如前所述,我将使用 vim-plug 来安装这个插件。 要安装 vim-plug,请执行以下命令。
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
安装 vim-plug 后,打开 ~/.vimrc(如果它不存在,则打开它)并输入以下行。
set nocompatible call plug#begin() Plug 'sheerun/vim-polyglot' call plug#end()
在此之后,在 vim 中使用以下命令来获取配置。
:source %
这个命令安装 vimrc 中提到的所有插件。
:PlugInstall
有关如何使用 vim-plug 的更详细说明,请参阅本文。
2. 行号
就像语法高亮一样,您也可以直接从 vim 命令启用行号。 要启用行号,请进入正常模式,然后使用命令
:set number
可以使用命令禁用此模式
: set nonumber
3.文件管理器集成
文件管理器集成是我们将使用外部插件的第一个功能。 我将为此安装的插件是 NerdTree。
要安装 NerdTree,请在 vimrc 中输入以下行。
call plug#begin() Plug 'https://github.com/preservim/nerdtree', { 'on': 'NERDTreeToggle' } call plug#end()
然后,像我们在第一部分中所做的那样安装插件。
现在您可以使用以下命令打开和关闭 NerdTree :NERDTreeToggle
4. 配对自动完成
成对自动补全是指成对插入或删除括号、括号和引号。 这可以通过可以通过 vim-plug 安装的 Auto-pairs 插件来实现。
只需将存储库添加到 ~/.vimrc
如下并点击 :PlugInstall
就像我们以前做过的那样。
call plug#begin() Plug 'LunarWatcher/auto-pairs' call plug#end()
您可以通过在 vimrc 中为它设置一个键来打开和关闭自动配对,如下所示。
let g:AutoPairsShortcutToggle="<C-P>"
在这种情况下,切换键是 Ctrl + P
5.关键字自动完成
关键字自动完成可能是任何 IDE 中最受追捧的功能。 虽然在不设置语言服务器的情况下很难获得非常复杂的关键字自动完成,但我们仍然可以使用 simple-complete 来使用基本的关键字自动完成。
如下将插件添加到vimrc并使用安装 :PlugInstall
call plug#begin() Plug 'maxboisvert/vim-simple-complete' call plug#end()
simple-autocomplete 在您键入两个字母并使用 tab 自动完成单词后尝试完成关键字。
6. Git 集成
Git 是任何程序员或开发人员生活中必不可少的一部分,让 vim 使用 git 并不是使用 git 的最有效方式。 为此,传奇的 vim 插件艺术家 Tim Pope 自己创建了 vim-fugitive。 Vim-fugitive 使得从 vim 终端本身使用 git 命令成为可能。
要安装 vim-fugitive,我们不会使用任何外部插件管理器,而是使用 Vim 使用的默认插件管理系统。 这需要创建一个 ~/.vim 文件夹并将插件存储库放入其中。 为此,请执行以下命令。
mkdir -p ~/.vim/pack/tpope/start cd ~/.vim/pack/tpope/start git clone https://tpope.io/vim/fugitive.git vim -u NONE -c "helptags fugitive/doc" -c q
现在下次你在 vim 中打开一个与 git 绑定的文本文件时,执行 :Git
要么 :G
在 vim 中。 这将打开一个摘要窗口,其中包含脏文件以及未推送和未拉取的提交。 几乎所有传统上在 git 中使用的命令都可以在这里使用。 这里有一些常见的。
:Git add <filename>
: 将文件添加到暂存区:g?
:用于许多操作的映射列表,包括差异、暂存、提交、变基和存储:Git commit
:提交分阶段的内容。:Git push
:将暂存内容推送到远程存储库。
附加命令:
:GMove :
做一个git mv
在当前文件上:GDelete
: 有没有git rm
在当前文件上,同时删除缓冲区:GBrowse
:在网络浏览器中打开远程仓库。:Gread
: 变体git checkout -- filename
对缓冲区而不是文件本身进行操作:Ggrep
: 像git grep
其他使 Vim 更高效的插件
1.VIM移动
Vim Move 或 Move 允许您以可视方式上下移动线条和选择。 它可以通过 Vundle 安装。 这个取自 Github 页面的演示令人印象深刻,足以说服任何人安装它。
2. Fswitch 和 Protodef (C++)
如果你经常使用 C++,那么你很幸运。 Fswitch 和 Protodef 允许您在实现文件和头文件之间切换,以及从头文件中提取函数原型。 它们都可以通过 vim 插件安装。
call plug#begin() Plug 'derekwyatt/vim-fswitch' Plug 'derekwyatt/vim-protodef' call plug#end()
如需使用指南,请参阅此处和此处的 Vim 页面。
结论
在本文中,我们讨论了一些可以让您的准系统 vim 设置更像 IDE 的方法。 这包括弄乱配置和安装一堆插件。 这种设置非常适合喜欢使用快速最小软件的人。 要找到更多有趣的 vim 插件来安装,您可以访问 VimAwesome 并浏览类别。 玩得开心,继续探索。