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-dev# cmake 构建工具sudo apt-get install cmakecmake --version # 确认安装成功# Node.jssudo apt-get install nodejsnodejs --version# Gosudo apt-get install golang-gogo version# npmsudo apt-get install npmnpm --version# Mono(.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('~/.vim/bundle')Plugin 'VundleVim/Vundle.vim'Plugin 'scrooloose/nerdtree' " 文件目录树Plugin 'jistr/vim-nerdtree-tabs' " Tab 切换目录树Plugin 'ycm-core/YouCompleteMe' " 代码补全Plugin 'nvie/vim-flake8' " PEP8 风格检查Plugin 'jnurmine/Zenburn' " 配色方案Plugin 'altercation/vim-colors-solarized' " 配色方案Plugin 'tomasr/molokai' " 配色方案Plugin 'tmhedberg/SimpylFold' " 代码折叠Plugin 'vim-scripts/indentpython.vim' " Python 自动缩进Plugin 'kien/ctrlp.vim' " 文件搜索Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}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=['\.pyc$', '\~$']" ---- YCM 补全设置 ----let g:ycm_key_list_select_completion = ['<Down>']let g:ycm_key_list_previous_completion = ['<Up>']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('gui_running') 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 |
|
↓/↑ |
|
掌握了这几个快捷键,你就能感受到 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/
夜雨聆风