Vim配置完整示例详解

 更新时间:2024年01月05日 10:06:38   作者:Varden  
这篇文章主要介绍了Vim配置的相关资料,包括通用配置,常用插件配置,设置插件的方法,本文给大家讲解的非常详细,需要的朋友可以参考

1. 通用配置

在用户家目录下创建配置文件~/.vimrc,通用配置如下:

"===通用配置==="
"去掉vi的一致性"
set nocompatible
"显示行号"
"set number
"隐藏滚动条"
set guioptions-=r 
set guioptions-=L
set guioptions-=b
"隐藏顶部标签栏"
set showtabline=0
"设置字体"
set guifont=Monaco:h13
"开启语法高亮"
syntax on
"solarized主题设置在终端下的设置"
let g:solarized_termcolors=256
"设置背景色"
set background=dark
"颜色主题"
colorscheme solarized
"设置不折行"
set nowrap
"设置以unix的格式保存文件"
set fileformat=unix
"设置C样式的缩进格式"
set cindent
"设置tab长度"
set tabstop=4
set shiftwidth=4
"显示匹配的括号"
set showmatch
"距离顶部和底部5行"
set scrolloff=5
"命令行为两行"
set laststatus=2
"文件编码"
set fenc=utf-8
set backspace=2
"启用鼠标"
set mouse=a
set selection=exclusive
set selectmode=mouse,key
set matchtime=5
"忽略大小写"
set ignorecase
set incsearch
"高亮搜索项"
set hlsearch
"不允许扩展tab"
set noexpandtab
set whichwrap+=<,>,h,l
set autoread
"突出显示当前行"
"set cursorline
"突出显示当前列"
set cursorcolumn
"按F9进入粘贴模式"
set nopaste
set pastetoggle=<F9>

2. 常用插件配置

2.1 环境说明

Ubuntu 18.04.4 LTS
Vim 8.0
Python 3.6.7

2.2 安装并设置Vundle核心插件

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

编辑~/.vimrc文件,添加以下内容:

"===设置Vundle核心插件==="
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"安装的插件列表"
"核心插件,用于安装其他所有插件"
Plugin 'VundleVim/Vundle.vim'
"美化状态栏"
Plugin 'powerline/powerline'
"类似IDE的补全插件"
Plugin 'ycm-core/YouCompleteMe'
"添加一个树形目录"
Plugin 'preservim/nerdtree'
"缩进指示线"
Plugin 'Yggdroot/indentLine'
"自动格式化代码"
Plugin 'tell-k/vim-autopep8'
"括号和引号自动补全"
Plugin 'jiangmiao/auto-pairs'
"多行注释"
Plugin 'preservim/nerdcommenter'
"实时语法检查"
Plugin 'vim-syntastic/syntastic'
"美化状态栏"
Plugin 'Lokaltog/vim-powerline'
call vundle#end()
"开启文件类型自动检测,编写代码时自动换行对齐"
filetype plugin indent on

保存文件并使用以下命令安装插件:

:PluginInstall

2.3 编译YouCompleteMe插件

apt-get install build-essential cmake
apt-get install python3-dev
apt-get install python-dev  ##可选,最新版Debian系统bullseye(testing版本)已经移除python2,只支持python3
cd ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive
./install.py

遇到的问题:

YouCompleteMe unavailable: requires Vim 8.1.2269+.

Vim提示以上错误,原因是当前最新版的YouCompleteMe插件要求Vim的版本为8.1.2269+,必须升级Vim,Debian 10自带的Vim版本达不到要求。
源码编译安装Vim太麻烦,可以考虑使用Debian bullseye(testing版本)自带的Vim 8.2以上的版本。

The ycmd server SHUT DOWN (restart with ':YcmRestartServer'). Unexpected error while loading the YCM core library. Type ':YcmToggleLogs ycmd_46199_stderr_zazh98c3.log' to check the logs.

  File "/root/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/utils.py", line 498, in ImportAndCheckCore
    ycm_core = ImportCore()
  File "/root/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/utils.py", line 489, in ImportCore
    import ycm_core as ycm_core
ImportError: Python version mismatch: module was compiled for Python 3.7, but the interpreter version is incompatible: 3.8.5 (default, Aug  2 2020, 15:09:07)
[GCC 10.2.0].

Vim提示以上错误,原因是Python版本从3.7升级到了3.8,原来编译的YouCompleteMe插件不兼容Python 3.8,必须重新基于3.8版本编译此插件。

3. 设置插件

3.1 设置一键运行Python代码(可用)

"===设置按F5运行Python==="
map <F5> :Autopep8<CR> :w<CR> :call RunPython()<CR>
function RunPython()
    let mp = &makeprg
    let ef = &errorformat
    let exeFile = expand("%:t")
    setlocal makeprg=python3\ -u
    set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
    silent make %
    copen
    let &makeprg = mp
    let &errorformat = ef
endfunction

必须安装依赖包:

pip3 install autopep8

3.2 设置YouCompleteMe插件(可用)

"===设置YouCompleteMe插件==="
"默认配置文件路径"
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
"打开vim时不再询问是否加载ycm_extra_conf.py配置"
let g:ycm_confirm_extra_conf=0
set completeopt=longest,menu
"Python解释器路径"
let g:ycm_path_to_python_interpreter='/usr/bin/python3'
"是否开启语义补全"
let g:ycm_seed_identifiers_with_syntax=1
"是否在注释中也开启补全"
let g:ycm_complete_in_comments=1
let g:ycm_collect_identifiers_from_comments_and_strings = 0
"开始补全的字符数"
let g:ycm_min_num_of_chars_for_completion=2
"补全后自动关机预览窗口"
let g:ycm_autoclose_preview_window_after_completion=1
"禁止缓存匹配项,每次都重新生成匹配项"
let g:ycm_cache_omnifunc=0
"字符串中也开启补全"
let g:ycm_complete_in_strings = 1
"离开插入模式后自动关闭预览窗口"
autocmd InsertLeave * if pumvisible() == 0|pclose|endif

debian 10自带vim不支持python问题,vim打开文件会有以下提示:

YouCompleteMe unavailable: requires Vim compiled with Python (3.6.0+) support. Press ENTER or type command to continue

必须安装以下依赖包:

apt-get install vim-gtk

3.3 设置NERDTree插件(可用)

"===设置NERDTree插件==="
"F2开启和关闭树"
map <F2> :NERDTreeToggle<CR>
let NERDTreeChDirMode=1
"显示书签"
let NERDTreeShowBookmarks=1
"设置忽略文件类型"
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
"窗口大小"
let NERDTreeWinSize=25

3.4 设置indentLine插件(可用)

"===设置indentLine插件==="
"缩进指示线"
let g:indentLine_char='┆'
let g:indentLine_enabled = 1

3.5 设置autopep8插件(可用)

"===设置autopep8插件==="
let g:autopep8_disable_show_diff=1

3.6 设置nerdcommenter插件(可用)

"nerdcommenter的leader默认为\,可以用下面的命令更改"
let mapleader=','
"在normal模式下按v并移动光标选择需要注释的行,再按F4就可以为所有选中的行添加注释"
map <F4> <leader>ci <CR>

4. 完整配置示例

"===通用配置==="
"去掉vi的一致性"
set nocompatible
"显示行号"
"set number
"隐藏滚动条"
set guioptions-=r
set guioptions-=L
set guioptions-=b
"隐藏顶部标签栏"
set showtabline=0
"设置字体"
set guifont=Monaco:h13
"开启语法高亮"
syntax on
"solarized主题设置在终端下的设置"
let g:solarized_termcolors=256
"设置背景色"
set background=dark
"设置不折行"
set nowrap
"设置以unix的格式保存文件"
set fileformat=unix
"设置C样式的缩进格式"
set cindent
"设置tab长度"
set tabstop=4
set shiftwidth=4
"显示匹配的括号"
set showmatch
"距离顶部和底部5行"
set scrolloff=5
"命令行为两行"
set laststatus=2
"文件编码"
set fenc=utf-8
set backspace=2
"忽略大小写"
set ignorecase
set incsearch
"高亮搜索项"
set hlsearch
"不允许扩展tab"
set noexpandtab
set whichwrap+=<,>,h,l
set autoread
"突出显示当前行"
"set cursorline
"突出显示当前列"
set cursorcolumn
"按F9进入粘贴模式"
set nopaste
set pastetoggle=<F9>
"===设置Vundle核心插件==="
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
"安装的插件列表"
Plugin 'VundleVim/Vundle.vim'
Plugin 'powerline/powerline'
Plugin 'ycm-core/YouCompleteMe'
Plugin 'preservim/nerdtree'
Plugin 'Yggdroot/indentLine'
Plugin 'tell-k/vim-autopep8'
Plugin 'jiangmiao/auto-pairs'
Plugin 'preservim/nerdcommenter'
Plugin 'vim-syntastic/syntastic'
Plugin 'Lokaltog/vim-powerline'
call vundle#end()
"开启文件类型自动检测,编写代码时自动换行对齐"
filetype plugin indent on
"===设置按F5运行Python==="
map <F5> :Autopep8<CR> :w<CR> :call RunPython()<CR>
function RunPython()
    let mp = &makeprg
    let ef = &errorformat
    let exeFile = expand("%:t")
    setlocal makeprg=python3\ -u
    set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
    silent make %
    copen
    let &makeprg = mp
    let &errorformat = ef
endfunction
"===设置YouCompleteMe插件==="
"默认配置文件路径"
let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
"打开vim时不再询问是否加载ycm_extra_conf.py配置"
let g:ycm_confirm_extra_conf=0
set completeopt=longest,menu
"Python解释器路径"
let g:ycm_path_to_python_interpreter='/usr/bin/python3'
"是否开启语义补全"
let g:ycm_seed_identifiers_with_syntax=1
"是否在注释中也开启补全"
let g:ycm_complete_in_comments=1
let g:ycm_collect_identifiers_from_comments_and_strings = 0
"开始补全的字符数"
let g:ycm_min_num_of_chars_for_completion=2
"补全后自动关机预览窗口"
let g:ycm_autoclose_preview_window_after_completion=1
"禁止缓存匹配项,每次都重新生成匹配项"
let g:ycm_cache_omnifunc=0
"字符串中也开启补全"
let g:ycm_complete_in_strings = 1
"离开插入模式后自动关闭预览窗口"
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
"===设置NERDTree插件==="
"F2开启和关闭树"
map <F2> :NERDTreeToggle<CR>
let NERDTreeChDirMode=1
"显示书签"
let NERDTreeShowBookmarks=1
"设置忽略文件类型"
let NERDTreeIgnore=['\~$', '\.pyc$', '\.swp$']
"窗口大小"
let NERDTreeWinSize=25
"===设置indentLine插件==="
"缩进指示线"
let g:indentLine_char='┆'
let g:indentLine_enabled = 1
"===设置autopep8插件==="
let g:autopep8_disable_show_diff=1
"===设置nerdcommenter插件==="
"nerdcommenter的leader默认为\,可以用下面的命令更改"
let mapleader=','
"在normal模式下按v并移动光标选择需要注释的行,再按F4就可以为所有选中的行添加注释"
map <F4> <leader>ci <CR>

Debian的vim右键进入visual模式:

Debian默认装好vim之后,右键不能粘贴,反而进入了visual模式,甚是恼人,可通过如下方法修改。

vim版本:version 8.1.0875

修改方法:

编辑/usr/share/vim/vim81/defaults.vim文件,定位到第79行,在mouse=a的=前面加个-,如下:

if has('mouse')
    set mouse-=a
endif

保存退出即可生效。

到此这篇关于Vim配置详解的文章就介绍到这了,更多相关Vim配置详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MacOS上Homebrew 安装、配置、更改国内镜像源及使用图文详解

    MacOS上Homebrew 安装、配置、更改国内镜像源及使用图文详解

    Homebrew是一个强大的包管理器,适用于macOS和Linux系统,可以简化软件的安装、升级和卸载过程,它包括brew、homebrew-core、homebrew-cask和homebrew-bottles四个主要部分,通过tap和cask可以扩展功能,安装图形界面应用,Homebrew还提供了各种命令来管理和维护已安装的软件包
    2024-11-11
  • prometheus安装和使用过程

    prometheus安装和使用过程

    Prometheus是一个开源的系统监控和报警系统,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群,这篇文章主要介绍了prometheus安装和使用记录,需要的朋友可以参考下
    2023-06-06
  • 如何将ChatGPT整合到Word中

    如何将ChatGPT整合到Word中

    使用ChatGPT修改语言时,需要将文本复制到网页版的chatGPT中,省掉复制粘贴的过程,能提升效率,这篇文章主要介绍了如何将ChatGPT整合到Word中,需要的朋友可以参考下
    2023-02-02
  • 2018年最值得一读的互联网书单

    2018年最值得一读的互联网书单

    2018年已经过去了近三分之二了,是不是感觉时光匆匆、一去不复返,过去的时间我们追不回,但是我们可以更加珍惜以后的时间!下面这篇文章主要给大家分享了2018年最值得一读的互联网书单,希望以后的日子里大家可以多读书,读好书
    2018-08-08
  • Trae AI IDE的使用教程(全网最全)

    Trae AI IDE的使用教程(全网最全)

    字节推出TraeAIIDE专为中文开发者设计,集AI编码、Builder/Chat模式于一体,支持代码编辑、运行、样式改造及交互增强,提升开发效率与体验,感兴趣的可以了解一下
    2025-07-07
  • Unity新手入门学习殿堂级知识详细讲解(图文)

    Unity新手入门学习殿堂级知识详细讲解(图文)

    Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含Assets、Library等目录,材质连接贴图与着色器用于渲染,适合多平台部署与性能优化
    2025-08-08
  • vim中tagbar配置以及打字时隐藏鼠标的方法

    vim中tagbar配置以及打字时隐藏鼠标的方法

    这篇文章主要给大家介绍了关于vim中tagbar配置以及打字时隐藏鼠标的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 后端编程语言多方面对比:JAVA、C、C++、GO、PYTHON

    后端编程语言多方面对比:JAVA、C、C++、GO、PYTHON

    软件开发领域,语言本身在各自领域都有适用场景,有许多流行的编程语言可供选择,每种语言都有其独特的特点和适用场景, Java、Python、Go、C/C++这几门语言,主要的应用也都在后端开发这里,虽然后端开发是一个比较明确的方向,但是在后端开发里,也依然可以有很多细分的领域
    2025-02-02
  • 利用ChatGPT与MindShow制作一个PPT的方法详解

    利用ChatGPT与MindShow制作一个PPT的方法详解

    PPT制作是商务、教育和各种场合演讲的重要组成部分,然而,很多人会花费大量时间和精力在内容生成和视觉设计方面,为了解决这个问题,我们可以利用两个强大的工具——ChatGPT和MindShow,来提高制作PPT的效率,感兴趣的同学可以参考阅读
    2023-06-06
  • 一文读懂吞吐量(TPS)、QPS、并发数、响应时间(RT)概念

    一文读懂吞吐量(TPS)、QPS、并发数、响应时间(RT)概念

    这篇文章主要介绍了吞吐量(TPS)、QPS、并发数、响应时间(RT)概念,在开发中需要先搞懂这些基础知识,才能更好运用,需要的朋友可以参考下
    2020-07-07

最新评论