一,vim基本设置
1,显示中文,
在/etc/vimrc里面适当(别加在类似循环语句里面)的地方加上。
let &termencoding=&encoding
set fileencoding=utf-8,gbk,ucs-bom,cpArray36
或者:
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set fileformats=unix
set encoding=prc
2,变成支持彩色
需要四个安装包:
vim-minimal-6.1-2
vim-common-6.1-2
vim-X11-6.1-2
vim-enhanced-6.1-2
我只装了两个,除去vim-X11-6.1-2之外,还有个vim-enhanced-6.1-2未装。装上之后,就可以正常使用语法
Vim-plug 安装
这里的安装方式是出自Vim-Plug原作者的Github项目的Readme.md里,这个项目地址是:https://github.com/junegunn/vim-plug
########################################################################
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
########################################################################
如果下载失败, 去 github 下载
cd ~/下载
git clone https://github.com/junegunn/vim-plug
mkdir ~/.vim/autoload
cp vim-plug/plug.vim ~/.vim/autoload/
这一步是下载Vim-plug,~/.vim/autoload/这个是它下载后的位置
如果下载不了,可以去官网下载,下完的文件是plug.vim,然后在用户目录下创建目录mkdir ~/.vim/autoload ,把plug.vim放进去
主要原因:vim-plug 上的插件大部分都托管在github上。
解决方案:用国内镜像,间接访问vim-plug的实际网站。即修改plug.vim访问的网站为镜像网站。
上述两个步骤的目是让镜像网站代替实际网站, 这样能有效提高下载成功率。
打开 plug.vim ,搜索 github, 修改两条语句,即可成功下载GitHub资源。
let fmt = get(g:, 'plug_url_format', 'https://git::@github.com/%s.git')
改为
let fmt = get(g:, 'plug_url_format', 'https://git::@hub.fastgit.org/%s.git')
\ '^https://git::@github\.com', 'https://github.com', '')
改为
\ '^https://git::@hub.fastgit\.org', 'https://hub.fastgit.org', '')
set ai " 开启自动缩进
set cindent " 开启C语言的自动缩进
set nu " 显示行号
syntax on " 开启语法高亮
set tabstop=4 " 制表符宽度为4个空格
set softtabstop=4 " 在插入模式下,退格键的宽度
set hlsearch
set incsearch
" 开启高亮光标行
set cursorline
hi CursorLine cterm=NONE ctermbg=darkblue ctermfg=white guibg=darkred guifg=white
" 开启高亮光标列
"set cursorcolumn
"hi CursorColumn cterm=NONE ctermbg=darkred ctermfg=white guibg=darkred guifg=white
" Specify a directory for plugins
" - For Neovim: ~/.local/share/nvim/plugged
" - Avoid using standard Vim directory names like 'plugin'
call plug#begin('~/.vim/plugged') " 指定插件存放的目录
Plug "hdima/python-syntax" "python 高亮显示
let python_highlight_all = 1
Plug 'junegunn/vim-easy-align' " 对齐文本的插件
Plug 'kien/ctrlp.vim' " 强大的文件、缓冲区、mru、标签等查找插件
Plug 'vim-scripts/taglist.vim' " 利用 ctags 显示源代码结构的插件
Plug 'majutsushi/tagbar' " 用于显示 tags 的边栏,比如变量、方法列表
Plug 'https://github.com/junegunn/vim-github-dashboard.git' " GitHub 仪表板插件
Plug 'Yggdroot/LeaderF', { 'do': './install.sh' } " 文件、缓冲区、mru的快速查找插件
Plug 'https://github.com/vim-syntastic/syntastic.git' " 语法检查插件
Plug 'https://github.com/rking/ag.vim.git' " 整合The Silver Searcher(ag)到vim的插件
function! BuildYCM(info) "为YouCompleteMe插件定义一个安装后的构建函数
if a:info.status == 'installed' || a:info.force
!./install.py
endif
endfunction
Plug 'ycm-core/YouCompleteMe', { 'do': function('BuildYCM') } " 自动补全插件
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable'} " 为YCM生成编译数据库
Plug 'vim-scripts/a.vim' " 在头文件和源文件间快速切换
Plug 'universal-ctags/ctags' " 更好的ctags支持
Plug 'ludovicchabant/vim-gutentags' " 自动生成和更新tags的插件
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' " 代码片段扩展
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " 用于浏览文件系统的插件
Plug 'tpope/vim-fireplace', { 'for': 'clojure' } " Clojure 开发支持
Plug 'fatih/vim-go', { 'tag': '*' } " Go 语言开发支持
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } " Go语言的自动补全插件
Plug '~/my-prototype-plugin' " 用户的原型插件(本地插件)
nmap <F6> :TlistToggle<cr> " F6键映射到TlistToggle命令
nmap <F5> :NERDTreeToggle<cr> " F5键映射到NERDTreeToggle命令
nmap <F8> :TagbarToggle<CR> " F8键映射到TagbarToggle命令
" 下面是针对gutentags插件的配置
let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project']
let g:gutentags_ctags_tagfile = '.tags'
let s:vim_tags = expand('~/.cache/tags')
let g:gutentags_cache_dir = s:vim_tags
let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']
if !isdirectory(s:vim_tags) " 如果目录不存在,则创建
silent! call mkdir(s:vim_tags, 'p')
endif
" 下面是针对YouCompleteMe插件的配置
let g:ycm_add_preview_to_completeopt = 0
let g:ycm_show_diagnostics_ui = 0
let g:ycm_server_log_level = 'info'
let g:ycm_min_num_identifier_candidate_chars = 2
let g:ycm_collect_identifiers_from_comments_and_strings = 1
let g:ycm_complete_in_strings=1
let g:ycm_key_invoke_completion = '<c-z>'
set completeopt=menu,menuone
noremap <c-z> <NOP>
let g:ycm_semantic_triggers = {
\ 'c,cpp,python,java,go,erlang,perl': ['re!\w{2}'],
\ 'cs,lua,javascript': ['re!\w{2}'],
\ }
call plug#end() " 结束插件声明和配置
二:三种模式
1,命令行模式
2,输入模式
3,视图模式