vim配置轻量级IDE

安装VIM

安装YouCompleteMe的时候, 需要VIM的版本比较高, 一般一些Linux长期支持版的Vim包就比较老, 所以可能需要编译安装.

卸载之前系统中安装的版本:

1CentOS/Fedora 2 sudo yum remove vim -y 3 4Debian/Ubuntu 5 sudo apt autoremove vim -y

Vim ftp, 查找需要的版本, 一般选择最新版本就行了.

下载, 解压后, 进入目录中的src目录. 如果使用默认的配置的话, 那么直接运行:

1make 2sudo make install

想自定义的话, 需要使用./configure重新编译. ./configure --with-features=huge --enable-pythoninterp

  • --with-features=huge: 最大的特性支持.
  • --enable-pythoninterp: 启用VimPython的支持, 默认Vim是不支持Python的.

然后重新执行:

1make 2sudo make install

卸载安装的Vim, 在src目录中执行sudo make uninstall. 如果想要重新编译的话, 那么需要清除之前编译的文件make distclean.

将VIM配置为轻量级IDE

YouCompleteMe需要系统安装ctags, gcc, gcc-c++, python-devel, cmake

YouCompleteMe如果报错The ycmd server SHUT DOWN..., 那么进入~/.vim/bundle/YouCompleteMe目录下, 执行./install.py

克隆VundleVim~/.vim/bundle, 会自动创建目录. git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

首先在vim的配置文件~/.vimrc中关闭兼容模式和文件类型检测, 直接在文件中追加:

1set nocompatible 2filetype off
  • VundleVim 管理插件
  • YouCompleteMe 代码自动补全
  • vim-airline 增强状态栏和标签栏
  • Tagbar 查看函数和变量的定义
  • NERDTree 文件目录树
  • identline 显示缩进的对齐线
  • delimitMate 自动补全括号和引号
  • Cscope 代码阅读

还支持两种插件类型:

1" 非 github 仓库的插件 2Plugin 'git://git.wincent.com/command-t.git' 3 4" 本地仓库的插件 5Plugin 'file:///home/lei/plugin'

VundleVim的简单命令, 在vim的命令模式中执行, 例如(:PluginInstall):

  • PluginList: 列出安装的插件
  • PluginInstall: 根据配置文件安装插件
  • PluginUpdate: 更新插件
  • PluginSearch [name]: 查找名为 [name] 的插件
  • PluginClean: 清除无用的插件

保存.vimrc, 在命令模式中输入:PluginInstall, 安装配置的需要安装的插件。

VIM配置文件

如果不安装插件那么直接复制基本的配置内容就行了.

如果想全局生效, 那么在/etc/vimrc中进入插入模式, 在文件最后面追加配置。

配置vim

1" ======================= 2" vimrc配置 3" ======================= 4 5" ----------------------- 6" => 基本 7" ----------------------- 8 9" 显示行号 10set nu 11 12" 高亮关键字 13syntax on 14 15" 使用鼠标 16set mouse=a 17 18" 搜索结果高亮显示 19set hlsearch 20 21" 一个tab等于4个空格 22set tabstop=4 23set shiftwidth=4 24 25" 表示Tab自动转换成空格 26set expandtab 27 28" 智能对齐 29set autoindent 30set smartindent 31 32" 解决删除键不生效 33set backspace=indent,eol,start 34 35" 行尾结束符, 设置为unix 36set fileformat=unix 37 38" 文件编码 39" fenc=utf-8 40 41" 配置粘贴不自动换行的快捷键 42set pastetoggle=<F9> 43 44" 允许折叠 45set foldenable 46 47" 手动折叠 48set foldmethod=manual 49 50" 自动保存 51set autowrite 52 53" 记录历史的行数 54set history=10000 55 56" 设置搜索时忽略大小写 57set ignorecase 58 59" 高亮显示光标所在的行和列 60" 显示颜色 61set t_Co=256 62set bg=dark 63set cursorline 64set cursorcolumn 65 66" 自定义光标样式 67highlight CursorLine cterm=NONE ctermbg=black ctermfg=brown guibg=NONE guifg=NONE 68highlight CursorColumn cterm=NONE ctermbg=black ctermfg=brown guibg=NONE guifg=NONE 69 70" 显示tab和空格 71set list 72 73" 设置tab和空格样式 74set lcs=tab:\|\ ,nbsp:%,trail:· 75 76" 设定行首tab为灰色 77highlight LeaderTab guifg=#666666 78 79" 匹配行首tab 80match LeaderTab /^\t/ 81 82" 输入的命令显示出来 83set showcmd 84 85" 启动显示状态行(1),总是显示状态行(2) 86set laststatus=2 87 88" ----------------------- 89" => 安装插件 90" ----------------------- 91 92" 关闭vi兼容模式 93set nocompatible 94 95" 关闭文件类型检测 96filetype off 97 98" 运行时路径, 插件 99set rtp+=~/.vim/bundle/Vundle.vim 100call vundle#begin() 101 102" 插件管理器 103Plugin 'VundleVim/Vundle.vim' 104 105" ----------------------- 106" => github 仓库中的插件 107" ----------------------- 108" 自动补全 109Plugin 'Valloric/YouCompleteMe' 110" 底栏和顶栏 111Plugin 'vim-airline/vim-airline' 112" 侧边栏显示git修改 113Plugin 'airblade/vim-gitgutter' 114" 目录树显示文件的git修改 115Plugin 'Xuyuanp/nerdtree-git-plugin' 116 117" ----------------------- 118" => vim-scripts 中的插件 119" ----------------------- 120" 显示文件中所有的函数和变量 121Plugin 'Tagbar' 122" 目录树 123Plugin 'The-NERD-tree' 124" 显示tab对齐线 125Plugin 'indentLine.vim' 126" 符号自动补全 127Plugin 'delimitMate.vim' 128" 标签提取 129Plugin 'ctags.vim' 130" 颜色主题 131Plugin 'desert.vim' 132" 显示Python的虚拟环境 133Plugin 'virtualenv.vim' 134 135call vundle#end() 136filetype plugin indent on 137 138 139" ----------------------- 140" => 插件安装完成后的配置 141" ----------------------- 142 143" ----------------------- 144" ==> airline 标签栏配置 145" ----------------------- 146 147" 启用powerline字体 148let g:airline_powerline_fonts = 1 149" 开启标签栏 150let g:airline#extensions#tabline#enabled = 1 151" 标签栏路径显示 152" let g:airline#extensions#tabline#formatter = "default" 153" let g:airline#extensions#tabline#formatter = "jsformatter" 154" let g:airline#extensions#tabline#formatter = "unique_tail_improved" 155let g:airline#extensions#tabline#formatter = "unique_tail" 156 157" ----------------------- 158" ==> YouCompleteMe配置 159" ----------------------- 160" YouCompleteMe 默认tab, s-tab和自动补全冲突 161let g:ycm_key_list_select_completion=['<c-n>'] 162let g:ycm_key_list_select_completion = ['<Down>'] 163let g:ycm_key_list_previous_completion=['<c-p>'] 164let g:ycm_key_list_previous_completion = ['<Up>'] 165 166set completeopt=longest,menu 167 168" 关闭加载.ycm_extra_conf.py提示 169let g:ycm_confirm_extra_conf=0 170 171" 在注释输入中也能补全 172let g:ycm_complete_in_comments = 1 173" 在字符串输入中也能补全 174let g:ycm_complete_in_strings = 1 175" 直接触发自动补全 176let g:ycm_key_invoke_completion = '<C-Space>' 177 178" 显示所有匹配 179map <leader>gd :YcmDiags<CR> 180" 跳转到申明处 181nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR> 182" 跳转到定义处 183nnoremap <leader>gf :YcmCompleter GoToDefinition<CR> 184" 函数定义跳转, 将光标定位到函数, 输入gd 回车 185nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR> 186 187" ----------------------- 188" ==> Tagbar配置 189" ----------------------- 190" 函数变量窗口, F3开启和关闭 191map <F3> :TagbarToggle<CR> 192let tagbar_ctags_bin = 'ctags' 193let tagbar_right = 1 194let g:tagbar_width = 30 195" tagbar一打开, 光标就在tagbar页面内 196let g:tagbar_autofocus = 1 197" 设置标签不排序,默认排序 198let g:tagbar_sort = 0 199 200" ----------------------- 201" ==> The-NERD-tree配置 202" ----------------------- 203" 目录树, 使用F2开启或关闭 204map <F2> :NERDTreeToggle<CR> 205let NERDTreeWinSize=30 206" 自动开启 207" autocmd vimenter * NERDTree 208" 是否显示隐藏文件 209let NERDTreeShowHidden=1 210" 忽略一下文件的显示 211let NERDTreeIgnore=['\.pyc','\~$','\.swp'] 212 213" ----------------------- 214" ==> Xuyuanp/nerdtree-git-plugin配置 215" ----------------------- 216let g:NERDTreeIndicatorMapCustom = { 217 \ "Modified" : "✹", 218 \ "Staged" : "✚", 219 \ "Untracked" : "✭", 220 \ "Renamed" : "➜", 221 \ "Unmerged" : "═", 222 \ "Deleted" : "✖", 223 \ "Dirty" : "✗", 224 \ "Clean" : "✔︎", 225 \ 'Ignored' : '☒', 226 \ "Unknown" : "?" 227 \ } 228 229" ----------------------- 230" ==> vim-gitgutter配置 231" ----------------------- 232 233 234" ----------------------- 235" ==> virtualenv.vim 236" ----------------------- 237 238" 退出虚拟环境 239" :VirtualEnvDeactivate 240" 显示所有虚拟环境 241" :VirtualEnvList 242" 激活虚拟环境 243" :VirtualEnvActivate venv 244" 可以使用tab选择要激活的虚拟环境 245" :VirtualEnvActivate <tab> 246" 显示帮助 247" :help virtualenv 248

highlght主要是用来配色的, 包括语法高亮等个性化的配置. 可以通过:h highlight, 查看详细信息.

CursorLineCursorColumn分别表示当前所在的行列.

cterm表示为原生vim设置样式, 设置为NONE表示可以自定义设置.

ctermbg设置终端vim的背景色.

ctermfg设置终端vim的前景色.

guibgguifg分别是设置gvim的背景色和前景色, 本人平时都是使用终端打开vim, 所以只是设置终端下的样式.

推荐使用的颜色包括: black, brown, grey, blue, green, cyan, magenta, yellow, white.

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid

vim配置轻量级IDE - HelloWorld