乐于分享
好东西不私藏

Vim安装与配置:打造属于你的高效编辑器

Vim安装与配置:打造属于你的高效编辑器

工欲善其事,必先利其器。Vim 作为一款”编辑器之神”,用好它,你的编码效率将立刻起飞 🚀

前言

大家好!每次看到身边的朋友还在用鼠标在代码里点点点,我都忍不住想安利一波 Vim。但很多人被它的上手门槛劝退了——安装配置太复杂?插件管理太麻烦?

别担心,今天这篇保姆级教程,手把手带你从零搭建一个功能齐全的 Vim 开发环境,包含自动补全、目录树、代码折叠等实用功能,看完就能直接用!


一、安装 Vim 🛠️

大多数 Linux 发行版都自带 vi,但我们需要功能更强大的 vim。安装非常简单:

sudo apt install vim

装完后用 vim --version 确认一下即可。

如果需要最新版本,可以通过 PPA 手动升级(文末 Q&A 有详细步骤)。


二、安装插件管理器 Vundle 📦

Vundle(Vim Bundle)是 Vim 的经典插件管理器,安装它之后,管理插件就和使用 pip 一样轻松。

2.1 克隆仓库

cd ~git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

这条命令会将 Vundle 的源码克隆到 ~/.vim/bundle/Vundle.vim 目录下,没有该目录的话会自动创建。

2.2 配置 .vimrc

用 vim 打开配置文件:

vim ~/.vimrc

填入以下基础配置:

set nocompatible              " 关闭 vi 兼容模式filetype off                  " 必须" 设置 Vundle 运行路径并初始化set rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin()" 让 Vundle 管理自身Plugin 'VundleVim/Vundle.vim'" 示例插件(可根据需要调整)Plugin 'tpope/vim-fugitive'Plugin 'git://git.wincent.com/command-t.git'Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}call vundle#end()            " 必须filetype plugin indent on    " 必须

保存退出后,在 vim 中输入 :PluginInstall,回车,Vundle 就会自动安装所有声明的插件。

Vundle 常用命令速查:

  • • :PluginList — 查看已安装插件
  • • :PluginInstall — 安装插件
  • • :PluginUpdate — 更新插件
  • • :PluginClean — 清除无用插件
  • • :PluginSearch <关键词> — 搜索插件

三、安装 YCM(YouCompleteMe)——代码补全神器 🔥

YCM 是 Vim 下最强的代码补全插件,支持 C/C++、Python、JavaScript、Go 等多种语言。安装步骤稍多,一步步来!

3.1 安装依赖

Python3 开发头文件sudo apt-get install python3-devcmake 构建工具sudo apt-get install cmakecmake --version  # 确认安装成功Node.jssudo apt-get install nodejsnodejs --versionGosudo apt-get install golang-gogo versionnpmsudo apt-get install npmnpm --versionMono(.NET 支持)sudo apt-get install mono-completemono --version

💡 如果需要更高版本的 cmake,可以参考 Kitware APT 仓库[1] 的安装方式。

3.2 下载与编译 YCM

克隆 YCM 仓库cd ~/.vim/bundlegit clone https://github.com/ycm-core/YouCompleteMe.git更新子模块cd ~/.vim/bundle/YouCompleteMegit submodule update --init --recursive编译(以 clangd 补全为例)python3 install.py --clangd-completer

编译需要几分钟,耐心等待,完成后就可以享受飞一般的补全体验了 ✨


四、进阶配置:完整的 .vimrc 🎨

下面分享一份开箱即用的完整配置文件,包含目录树、代码折叠、配色方案、窗口管理等功能:

set nocompatiblefiletype off" Vundle 插件管理set rtp+=~/.vim/bundle/Vundle.vimcall vundle#begin(&#x27;~/.vim/bundle&#x27;)Plugin &#x27;VundleVim/Vundle.vim&#x27;Plugin &#x27;scrooloose/nerdtree&#x27;              " 文件目录树Plugin &#x27;jistr/vim-nerdtree-tabs&#x27;          " Tab 切换目录树Plugin &#x27;ycm-core/YouCompleteMe&#x27;            " 代码补全Plugin &#x27;nvie/vim-flake8&#x27;                   " PEP8 风格检查Plugin &#x27;jnurmine/Zenburn&#x27;                  " 配色方案Plugin &#x27;altercation/vim-colors-solarized&#x27;  " 配色方案Plugin &#x27;tomasr/molokai&#x27;                    " 配色方案Plugin &#x27;tmhedberg/SimpylFold&#x27;              " 代码折叠Plugin &#x27;vim-scripts/indentpython.vim&#x27;      " Python 自动缩进Plugin &#x27;kien/ctrlp.vim&#x27;                    " 文件搜索Plugin &#x27;Lokaltog/powerline&#x27;, {&#x27;rtp&#x27;: &#x27;powerline/bindings/vim/&#x27;}call vundle#end()" ---- Powerline 状态栏 ----set laststatus=2" ---- 分割窗口设置 ----set splitbelowset splitrightnnoremap <C-J> <C-W><C-J>nnoremap <C-K> <C-W><C-K>nnoremap <C-L> <C-W><C-L>nnoremap <C-H> <C-W><C-H>" ---- NERDTree 设置 ----map <F2> :NERDTreeToggle<CR>let NERDTreeIgnore=[&#x27;\.pyc$&#x27;, &#x27;\~$&#x27;]" ---- YCM 补全设置 ----let g:ycm_key_list_select_completion = [&#x27;<Down>&#x27;]let g:ycm_key_list_previous_completion = [&#x27;<Up>&#x27;]let g:ycm_confirm_extra_conf = 0let g:ycm_collect_identifiers_from_tags_files = 1let g:ycm_min_num_of_chars_for_completion = 2let g:ycm_cache_omnifunc = 0let g:ycm_seed_identifiers_with_syntax = 1let g:ycm_complete_in_comments = 1let g:ycm_complete_in_strings = 1nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>" ---- 配色方案 ----set t_Co=256set background=darkif has(&#x27;gui_running&#x27;)  colorscheme solarizedelse  colorscheme molokaiendifif &diff    colors blueendif" ---- 代码折叠 ----set foldmethod=indentset foldlevel=99nnoremap <space> zalet g:SimpylFold_docstring_preview=1" ---- Python PEP8 缩进 ----au BufNewFile,BufRead *.py,*.pyw set tabstop=4au BufNewFile,BufRead *.py,*.pyw set softtabstop=4au BufNewFile,BufRead *.py,*.pyw set shiftwidth=4au BufNewFile,BufRead *.py,*.pyw set expandtabau BufNewFile,BufRead *.py,*.pyw set textwidth=79au BufNewFile,BufRead *.py,*.pyw set autoindentau BufNewFile,BufRead *.py,*.pyw set fileformat=unix" ---- Web 前端缩进 ----au BufNewFile,BufRead *.js,*.html,*.css set tabstop=2au BufNewFile,BufRead *.js,*.html,*.css set softtabstop=2au BufNewFile,BufRead *.js,*.html,*.css set shiftwidth=2" ---- 通用设置 ----set nu                    " 显示行号set encoding=utf-8        " 编码syntax on                 " 语法高亮filetype plugin indent onset backspace=indent,eol,startset cursorlineset history=1000set hlsearchset clipboard=unnamedset expandtabset softtabstop=4set tabstop=4set shiftwidth=4" ---- 高亮多余空白字符 ----highlight Whitespace ctermbg=red guibg=redau BufRead,BufNewFile *.py,*.pyw,*.c,*.h match Whitespace /\s\+$\ \+/

将以上内容保存到 ~/.vimrc,重新打开 vim 后运行 :PluginInstall,一键完成所有插件的安装。


五、快捷键速查 🎯

配置完成后,这些快捷键你得记住:

快捷键
功能
F2
打开/关闭文件目录树
Ctrl+J/K/L/H
在分割窗口间移动
空格
折叠/展开代码块
F5
强制触发 YCM 分析
↓/↑
在补全列表中上下选择

掌握了这几个快捷键,你就能感受到 Vim 的丝滑体验了!


Q&A ❓

Q:如何手动升级 Vim 到最新版?

sudo add-apt-repository ppa:jonathonf/vimsudo apt updatesudo apt install vim

写在最后 🎁

Vim 的学习曲线确实有点陡,但一旦迈过那道坎,你会发现它就像一个无限扩展的「编辑器操作系统」。今天这份配置只是一个起点,你可以根据自己的需求继续加装插件,打造独一无二的 Vim。

如果你觉得这篇文章有帮助,欢迎点赞、在看、转发三连,让更多朋友用上 Vim!  🙌


欢迎关注 羽您码上聊,更多技术干货持续更新中!

引用链接

[1] Kitware APT 仓库: https://apt.kitware.com/