vim 插件配置与安装

前言

由于 vim 的大部分插件都托管在 github 上,因此需要提高 github 的访问速度,减少因 DNS 污染而造成的访问失败,这里提供一些能够稳定访问 github 的 IP 的地址。

  • 首先将需要打开 hosts 文件
sudo vim /etc/hosts
  • 添加以下内容至 hosts 文件中
# Github Hosts
# Update 20211204
# domain: github.com
140.82.114.4 github.com
140.82.114.10 nodeload.github.com
140.82.114.6 api.github.com
140.82.114.10 codeload.github.com
185.199.108.133 raw.github.com
185.199.108.153 training.github.com
185.199.108.153 assets-cdn.github.com
185.199.108.153 documentcloud.github.com
185.199.108.154 help.github.com

# domain: githubstatus.com
185.199.108.153 githubstatus.com

# domain: fastly.net
199.232.69.194 github.global.ssl.fastly.net

# domain: githubusercontent.com
185.199.108.133 raw.githubusercontent.com
185.199.108.154 pkg-containers.githubusercontent.com
185.199.108.133 cloud.githubusercontent.com
185.199.108.133 gist.githubusercontent.com
185.199.108.133 marketplace-screenshots.githubusercontent.com
185.199.108.133 repository-images.githubusercontent.com
185.199.108.133 user-images.githubusercontent.com
185.199.108.133 desktop.githubusercontent.com
185.199.108.133 avatars.githubusercontent.com
185.199.108.133 avatars0.githubusercontent.com
185.199.108.133 avatars1.githubusercontent.com
185.199.108.133 avatars2.githubusercontent.com
185.199.108.133 avatars3.githubusercontent.com
185.199.108.133 avatars4.githubusercontent.com
185.199.108.133 avatars5.githubusercontent.com
185.199.108.133 avatars6.githubusercontent.com
185.199.108.133 avatars7.githubusercontent.com
185.199.108.133 avatars8.githubusercontent.com
# End of the section

vim 插件管理 Vundle

vim的插件种类比较多,为了方便管理,本文采用 Vundle 来进行管理

Vundle安装

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

Vundle配置

  • 打开 vimrc 文件
vim ~/.vimrc
  • 在 vimrc 文件中添加以下内容
set nocompatible
filetype off

" 设置包括 vundle 和初始化相关的 runtimepath
set rtp+=~/.vim/bundle/Vundle.vim

call vundle#begin()
" 另一种选择, 指定一个 vundle 安装插件的路径
"call vundle#begin('~/some/path/here')
" 让 vundle 管理插件版本,必须
Plugin 'VundleVim/Vundle.vim'

" 所有插件需要在下面这行之前配置
call vundle#end()            " 必须
filetype plugin indent on    " 必须 加载vim自带和插件相应的语法和文件类型相关脚本
" 忽视插件改变缩进,可以使用以下替代:
"filetype plugin on
  • 可通过PluginIntall来安装 vimrc 中配置过的插件
:PluginInstall
  • 有时候通过上述方式安装插件会卡在安装卡在安装界面,这时候可以直接下载插件代码放在 vundle 目录下,例如
cd ~/.vim/vundle
git clone https://github.com/<plugin>

vim 主题插件molokai

molokai 是一款主题插件,个人比较喜欢

molokai安装

  • 在 ~/.vimrc 文件中插件安装位置插入以下内容
Plugin 'tomasr/molokai'

molokai配置

  • 在 ~/.vimrc 文件中添加以下内容
colorscheme molokai "设置颜色主题"
set t_Co=256 "设置256色彩"
set background=dark
let g:molokai_original = 1
let g:rehash256 = 1

molokai效果

在这里插入图片描述

vim 目录树插件nerdtree

nerdtree插件能够使得vim编辑时,能够直观地看到目录的结构,方便找到需要的文件并同时编辑多个文件

nerdtree安装

  • 在 ~/.vimrc 文件中插件安装位置插入以下内容
Plugin 'scrooloose/nerdtree'

nerdtree配置

  • 在 ~/.vimrc 文件中添加以下内容
nmap <C-t> :NERDTreeToggle<cr> "打开目录树"
nmap <C-f> :NERDTreeFind<cr> "查找文件"

nerdtree效果

在这里插入图片描述

vim 状态栏插件vim-airline

状态栏插件能够使得vim界面更加简洁美观,方便在多个文件中进行切换

vim-airline安装

  • 在 ~/.vimrc 文件中插件安装位置插入以下内容
Plugin 'vim-airline/vim-airline'

vim-airline配置

  • 在 ~/.vimrc 文件中添加以下内容
let g:airline_powerline_fonts=1
let g:airline#extensions#tabline#enabled = 1      "tabline中当前buffer两端的分隔字符
nmap <tab> :bn<cr> " 设置tab键映射"
  • 因为 vim-airline 插件中使用到了一些特殊字符,需要安装 powerline 字体
git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh
  • 可通过 fc-list 查询到系统内的字体
fc-list

vim-airline效果

在这里插入图片描述

使用powerline美化终端

  • 安装powerline-status
sudo apt install powerline
pip install powerline-status
  • 查看powerline-status的安装位置
pip show powerline-status

在这里插入图片描述

  • 打开 ~/.bashrc 文件添加以下内容
powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
source /home/min/.local/lib/python2.7/site-packages/powerline/bindings/bash/powerline.sh
  • 效果
    在这里插入图片描述

vim 补全插件YouCompleteMe

YouCompleteMe安装

  • 适用于ubuntu18.04和ubuntu20.04
sudo apt install vim-youcompleteme && vim-addon-manager install youcompleteme
  • 在 ~/.vimrc 文件中添加以下内容
" 自动补全配置
set completeopt=longest,menu    "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
autocmd InsertLeave * if pumvisible() == 0|pclose|endif "离开插入模式后自动关闭预览窗口
inoremap <expr> <CR>       pumvisible() ? "\<C-y>" : "\<CR>"    "回车即选中当前项
"上下左右键的行为 会显示其他信息
inoremap <expr> <Down>     pumvisible() ? "\<C-n>" : "\<Down>"
inoremap <expr> <Up>       pumvisible() ? "\<C-p>" : "\<Up>"
inoremap <expr> <PageDown> pumvisible() ? "\<PageDown>\<C-p>\<C-n>" : "\<PageDown>"
inoremap <expr> <PageUp>   pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"

"youcompleteme  默认tab  s-tab 和自动补全冲突
"let g:ycm_key_list_select_completion=['<c-n>']
let g:ycm_key_list_select_completion = ['<Down>']
"let g:ycm_key_list_previous_completion=['<c-p>']
let g:ycm_key_list_previous_completion = ['<Up>']
let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示

let g:ycm_collect_identifiers_from_tags_files=1 " 开启 YCM 基于标签引擎
let g:ycm_min_num_of_chars_for_completion=2     " 从第2个键入字符就开始罗列匹配项
let g:ycm_cache_omnifunc=0      " 禁止缓存匹配项,每次都重新生成匹配项
let g:ycm_seed_identifiers_with_syntax=1        " 语法关键字补全
nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>        "force recomile with syntastic
"nnoremap <leader>lo :lopen<CR> "open locationlist
"nnoremap <leader>lc :lclose<CR>        "close locationlist
inoremap <leader><leader> <C-x><C-o>
"在注释输入中也能补全
let g:ycm_complete_in_comments = 1
"在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
"注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 0

nnoremap <F3> :YcmCompleter GoToDefinitionElseDeclaration<CR> " 跳转到定义处

YouCompleteMe效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值