vim配置轻量级IDE
安装VIM
安装YouCompleteMe
的时候, 需要VIM
的版本比较高, 一般一些Linux
长期支持版的Vim
包就比较老, 所以可能需要编译安装.
卸载之前系统中安装的版本:
CentOS/Fedora
sudo yum remove vim -y
Debian/Ubuntu
sudo apt autoremove vim -y
Vim ftp, 查找需要的版本, 一般选择最新版本就行了.
下载, 解压后, 进入目录中的src
目录. 如果使用默认的配置的话, 那么直接运行:
make
sudo make install
想自定义的话, 需要使用./configure
重新编译.
./configure --with-features=huge --enable-pythoninterp
--with-features=huge
: 最大的特性支持.--enable-pythoninterp
: 启用Vim
对Python
的支持, 默认Vim
是不支持Python
的.
然后重新执行:
make
sudo 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
中关闭兼容模式和文件类型检测, 直接在文件中追加:
set nocompatible
filetype off
VundleVim
管理插件YouCompleteMe
代码自动补全vim-airline
增强状态栏和标签栏Tagbar
查看函数和变量的定义NERDTree
文件目录树identline
显示缩进的对齐线delimitMate
自动补全括号和引号Cscope
代码阅读
还支持两种插件类型:
" 非 github 仓库的插件
Plugin 'git://git.wincent.com/command-t.git'
" 本地仓库的插件
Plugin 'file:///home/lei/plugin'
VundleVim
的简单命令, 在vim
的命令模式中执行, 例如(:PluginInstall
):
PluginList
: 列出安装的插件PluginInstall
: 根据配置文件安装插件PluginUpdate
: 更新插件PluginSearch [name]
: 查找名为 [name] 的插件PluginClean
: 清除无用的插件
保存.vimrc
, 在命令模式
中输入:PluginInstall
, 安装配置的需要安装的插件。
VIM配置文件
如果不安装插件那么直接复制基本
的配置内容就行了.
如果想全局生效, 那么在/etc/vimrc
中进入插入模式, 在文件最后面追加配置。
配置vim
" =======================
" vimrc配置
" =======================
" -----------------------
" => 基本
" -----------------------
" 显示行号
set nu
" 高亮关键字
syntax on
" 使用鼠标
set mouse=a
" 搜索结果高亮显示
set hlsearch
" 一个tab等于4个空格
set tabstop=4
set shiftwidth=4
" 表示Tab自动转换成空格
set expandtab
" 智能对齐
set autoindent
set smartindent
" 解决删除键不生效
set backspace=indent,eol,start
" 行尾结束符, 设置为unix
set fileformat=unix
" 文件编码
" fenc=utf-8
" 配置粘贴不自动换行的快捷键
set pastetoggle=<F9>
" 允许折叠
set foldenable
" 手动折叠
set foldmethod=manual
" 自动保存
set autowrite
" 记录历史的行数
set history=10000
" 设置搜索时忽略大小写
set ignorecase
" 高亮显示光标所在的行和列
" 显示颜色
set t_Co=256
set bg=dark
set cursorline
set cursorcolumn
" 自定义光标样式
highlight CursorLine cterm=NONE ctermbg=black ctermfg=brown guibg=NONE guifg=NONE
highlight CursorColumn cterm=NONE ctermbg=black ctermfg=brown guibg=NONE guifg=NONE
" 显示tab和空格
set list
" 设置tab和空格样式
set lcs=tab:\|\ ,nbsp:%,trail:·
" 设定行首tab为灰色
highlight LeaderTab guifg=#666666
" 匹配行首tab
match LeaderTab /^\t/
" 输入的命令显示出来
set showcmd
" 启动显示状态行(1),总是显示状态行(2)
set laststatus=2
" -----------------------
" => 安装插件
" -----------------------
" 关闭vi兼容模式
set nocompatible
" 关闭文件类型检测
filetype off
" 运行时路径, 插件
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 插件管理器
Plugin 'VundleVim/Vundle.vim'
" -----------------------
" => github 仓库中的插件
" -----------------------
" 自动补全
Plugin 'Valloric/YouCompleteMe'
" 底栏和顶栏
Plugin 'vim-airline/vim-airline'
" 侧边栏显示git修改
Plugin 'airblade/vim-gitgutter'
" 目录树显示文件的git修改
Plugin 'Xuyuanp/nerdtree-git-plugin'
" -----------------------
" => vim-scripts 中的插件
" -----------------------
" 显示文件中所有的函数和变量
Plugin 'Tagbar'
" 目录树
Plugin 'The-NERD-tree'
" 显示tab对齐线
Plugin 'indentLine.vim'
" 符号自动补全
Plugin 'delimitMate.vim'
" 标签提取
Plugin 'ctags.vim'
" 颜色主题
Plugin 'desert.vim'
" 显示Python的虚拟环境
Plugin 'virtualenv.vim'
call vundle#end()
filetype plugin indent on
" -----------------------
" => 插件安装完成后的配置
" -----------------------
" -----------------------
" ==> airline 标签栏配置
" -----------------------
" 启用powerline字体
let g:airline_powerline_fonts = 1
" 开启标签栏
let g:airline#extensions#tabline#enabled = 1
" 标签栏路径显示
" let g:airline#extensions#tabline#formatter = "default"
" let g:airline#extensions#tabline#formatter = "jsformatter"
" let g:airline#extensions#tabline#formatter = "unique_tail_improved"
let g:airline#extensions#tabline#formatter = "unique_tail"
" -----------------------
" ==> YouCompleteMe配置
" -----------------------
" 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>']
set completeopt=longest,menu
" 关闭加载.ycm_extra_conf.py提示
let g:ycm_confirm_extra_conf=0
" 在注释输入中也能补全
let g:ycm_complete_in_comments = 1
" 在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
" 直接触发自动补全
let g:ycm_key_invoke_completion = '<C-Space>'
" 显示所有匹配
map <leader>gd :YcmDiags<CR>
" 跳转到申明处
nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR>
" 跳转到定义处
nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>
" 函数定义跳转, 将光标定位到函数, 输入gd 回车
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
" -----------------------
" ==> Tagbar配置
" -----------------------
" 函数变量窗口, F3开启和关闭
map <F3> :TagbarToggle<CR>
let tagbar_ctags_bin = 'ctags'
let tagbar_right = 1
let g:tagbar_width = 30
" tagbar一打开, 光标就在tagbar页面内
let g:tagbar_autofocus = 1
" 设置标签不排序,默认排序
let g:tagbar_sort = 0
" -----------------------
" ==> The-NERD-tree配置
" -----------------------
" 目录树, 使用F2开启或关闭
map <F2> :NERDTreeToggle<CR>
let NERDTreeWinSize=30
" 自动开启
" autocmd vimenter * NERDTree
" 是否显示隐藏文件
let NERDTreeShowHidden=1
" 忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" -----------------------
" ==> Xuyuanp/nerdtree-git-plugin配置
" -----------------------
let g:NERDTreeIndicatorMapCustom = {
\ "Modified" : "✹",
\ "Staged" : "✚",
\ "Untracked" : "✭",
\ "Renamed" : "➜",
\ "Unmerged" : "═",
\ "Deleted" : "✖",
\ "Dirty" : "✗",
\ "Clean" : "✔︎",
\ 'Ignored' : '☒',
\ "Unknown" : "?"
\ }
" -----------------------
" ==> vim-gitgutter配置
" -----------------------
" -----------------------
" ==> virtualenv.vim
" -----------------------
" 退出虚拟环境
" :VirtualEnvDeactivate
" 显示所有虚拟环境
" :VirtualEnvList
" 激活虚拟环境
" :VirtualEnvActivate venv
" 可以使用tab选择要激活的虚拟环境
" :VirtualEnvActivate <tab>
" 显示帮助
" :help virtualenv
highlght
主要是用来配色的, 包括语法高亮等个性化的配置. 可以通过:h highlight
, 查看详细信息.
CursorLine
和CursorColumn
分别表示当前所在的行列.
cterm
表示为原生vim
设置样式, 设置为NONE表示可以自定义设置.
ctermbg
设置终端vim
的背景色.
ctermfg
设置终端vim
的前景色.
guibg
和guifg
分别是设置gvim
的背景色和前景色, 本人平时都是使用终端打开vim, 所以只是设置终端下的样式.
推荐使用的颜色包括: black
, brown
, grey
, blue
, green
, cyan
, magenta
, yellow
, white
.
vim配置轻量级IDE的更多相关文章
- vim配置为IDE环境(超详细,极力推荐 git)
https://github.com/yangyangwithgnu/use_vim_as_ide 1. 用法 git clone https://github.com/VundleVim/Vundl ...
- vim配置总结
本博文转自:http://www.cppblog.com/runsisi/archive/2013/04/06/199152.html? opt=admin 12年的最后一天配置了一下公司RHEL上的 ...
- Vim配置及说明——IDE编程环境
Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...
- Vim配置IDE开发环境
我的vim IDE界面: 1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get instal ...
- 将VIM配置成强大的IDE(二)
将VIM配置成强大的IDE(二) 前面我们已经安装好了vundle这一款强大的插件管理工具. 下面,当然是配置我们需要的插件了. 在VIM下面通过命令 help vundle 我们可以知道,VUNDL ...
- VIM配置IDE
转载于:https://blog.csdn.net/andre617/article/details/53496490#%E8%84%9A%E6%B3%A8 由于YCM需要vim支持python,需要 ...
- 【转】谁说Vim不是IDE?(二)
谁说Vim不是IDE?(二) 环境配置 “如果你认为Vim只是一个文本编辑器,你就输了”——来自Vim老鸟 Vim以简洁的方式提供了丰富的配置功能,主要配置体系由一个文件和文件夹组成.在一台安装了 ...
- 【转】谁说Vim不是IDE?(一)
谁说Vim不是IDE?(一) 话说操作系统.编程语言和编辑器似乎是程序员永恒的吐槽话题,技术发展了几十年,大家讨论起这几个“之争”还是充满愤怒.津津乐道.有人描述过Emacs和VI程序员,大家沿着 ...
- Linux Vim配置
用过很多vim配置的版本,怎么说,想轻量级就不要胡加乱七八糟的功能:如果不在乎反应是不是快速,侧重功能是否强大,可以参考vim大神的配置策略(spf13-vim)https://github.com/ ...
随机推荐
- ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 配置 上一章节我们简单介绍了下 Id ...
- SQL Server 2017 正式发布:同时支持 Windows 和 Linux(现在看下来,当年那德拉的“云优先,移动优先”是有远见的,而且是有一系列的措施和产品相配合的,只是需要一点时间而已。真是佩服!!)
微软在去年 3 月首次对外宣布了 Linux 版的 SQL Server,并于今年 7 月发布了首个公开 RC 版.前几日在美国奥兰多召开的微软 Ignite 2017 大会上,微软宣布 SQL Se ...
- 安德鲁斯Toast它们的定义和防止重复显示器
Toast安卓系统,当用户错误或功能运行完成,提示,要求用户,它不集中,并且将在一定时间内消失.然而,在用户继续误(如登录,password错)当次,将有多个Toast创建.系统会把这些toast放进 ...
- WPF元素绑定
原文:WPF元素绑定 数据绑定简介:数据绑定是一种关系,该关系告诉WPF从源对象提取一些信息,并用这些信息设置目标对象的属性.目标属性是依赖项属性.源对象可以是任何内容,从另一个WPF元素乃至ADO. ...
- WPF编游戏系列 之五 数据绑定
原文:WPF编游戏系列 之五 数据绑定 在上一篇通过用户控件将重复使用的控件封装为一个控件组,大大减少了C#代码数量,本篇继续对该控件组进行数据绑定,节省为每个控件赋值的工作.对于数据绑 ...
- Bootstrap 固定在顶部导航条
@{ Layout = null;}<!DOCTYPE html><html><head> <meta name="viewport&q ...
- MVVM讲解
一,MVVM理论知识 从上一篇文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通 ...
- 在Winform窗体中使用WPF控件(附源码)
原文:在Winform窗体中使用WPF控件(附源码) 今天是礼拜6,下雨,没有外出,闲暇就写一篇博文讲下如何在Winform中使用WPF控件.原有是我在百度上搜索相关信息无果,遂干脆动手自己实现. W ...
- Nancy Web框架
原文 Nancy Web框架 Nancy框架 一.创建第一个Nancy应用 二.探索Nancy的module 1. 模块能够在全局被发现 2. 使用模块为路由创建一个根 三.定义路由 1. 方法 2. ...
- C# Newtonsoft.Json JObject移除属性,在序列化时忽略
原文 C# Newtonsoft.Json JObject移除属性,在序列化时忽略 一.针对 单个 对象移除属性,序列化时忽略处理 JObject实例的 Remove() 方法,可以在 指定序列化时移 ...