Skip to content

Instantly share code, notes, and snippets.

@inkydragon
Last active August 7, 2017 11:55
Show Gist options
  • Save inkydragon/24ca66165467f510f5b90146fe1b4d45 to your computer and use it in GitHub Desktop.
Save inkydragon/24ca66165467f510f5b90146fe1b4d45 to your computer and use it in GitHub Desktop.
vim/gvim设置
" From zhihu https://www.zhihu.com/question/19637905
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本编码设置
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文
" 本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值。
set encoding=utf-8
" fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文
" 件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因
" 此最好将 Unicode 编码方式放到这个列表的最前面。
set fileencodings=utf-8,chinese
" fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文
" 件保存为这种字符编码方式。
set fileencoding=utf-8
" termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码
" 方式。这个选项对 GUI 模式的 gVim 无效
"
" 下面这句只影响普通模式 (非图形界面) 下的 Vim。
let &termencoding=&encoding
"解决consle输出乱码
language messages zh_CN.utf-8
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 高亮设置 配色
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索高亮
set hlsearch
set incsearch
" 搜索时大小写不敏感
set ignorecase
" 关闭兼容模式
set nocompatible
" vim 自身命令行模式智能补全
set wildmenu
" 高亮显示当前行/列
set cursorline
set cursorcolumn
" 显示光标当前位置
set ruler
" 显示行号
set number
" 开启语法高亮功能
syntax enable
" 允许用指定语法高亮配色方案替换默认方案
syntax on
" 配色方案
set background=dark
colorscheme turtles
"colorscheme solarized
"colorscheme molokai
"colorscheme phd
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置 Tab 缩进空格数
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自适应不同语言的智能缩进
filetype indent on
" 将制表符扩展为空格
set expandtab
" 设置编辑时制表符占用空格数
set tabstop=2
" 设置格式化时制表符占用空格数
set shiftwidth=2
" 让 vim 把连续数量的空格视为一个制表符
set softtabstop=2
""""可视化缩进
" 随 vim 自启动
let g:indent_guides_enable_on_vim_startup=1
" 从第二层开始可视化显示缩进
let g:indent_guides_start_level=2
" 色块宽度
let g:indent_guides_guide_size=1
" 快捷键 i 开/关缩进可视化
:nmap <silent> <Leader>i <Plug>IndentGuidesToggle
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置图形界面。
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has("gui_running")
if has("win32")
" 设定 windows 下 gvim 启动时最大化
autocmd GUIEnter * simalt ~x
" 设定 windows 下图形界面下的字体。
set guifont=Fixedsys:h13
"配色
colo darkblue
else
" 设定 linux 下图形界面下的字体,该字体 Fedora 7 自带
set guifont=DejaVu\ LGC\ Sans\ Mono\ 14
"colo darkblue
endif
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Vim as IDE
" From: https://github.com/yangyangwithgnu/use_vim_as_ide
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 让配置变更立即生效
autocmd BufWritePost $MYVIMRC source $MYVIMRC
" 定义快捷键的前缀,即<Leader>
let mapleader=";"
" 开启文件类型侦测
filetype on
" 根据侦测到的不同类型加载对应的插件
filetype plugin on
""""""""""""""""""""""""""""""""""""""" " 快捷键
" 定义快捷键到行首和行尾
nmap LB 0
nmap LE $
" 设置快捷键将选中文本块复制至系统剪贴板
vnoremap <Leader>y "+y
" 设置快捷键将系统剪贴板内容粘贴至 vim
nmap <Leader>p "+p
" 定义快捷键关闭当前分割窗口
nmap <Leader>q :q<CR>
" 定义快捷键保存当前窗口内容
nmap <Leader>w :w<CR>
" 定义快捷键保存所有窗口内容并退出 vim
nmap <Leader>WQ :wa<CR>:q<CR>
" 不做任何保存,直接退出 vim
nmap <Leader>Q :qa!<CR>
" 依次遍历子窗口
nnoremap nw <C-W><C-W>
" 跳转至右方的窗口
nnoremap <Leader>lw <C-W>l
" 跳转至左方的窗口
nnoremap <Leader>hw <C-W>h
" 跳转至上方的子窗口
nnoremap <Leader>kw <C-W>k
" 跳转至下方的子窗口
nnoremap <Leader>jw <C-W>j
" 定义快捷键在结对符之间跳转
nmap <Leader>M %
""""""""" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
" vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
"""""" colo 配色
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
" Vundle
Plugin 'beigebrucewayne/Turtles'
"" 状态栏美化
Plugin 'Lokaltog/vim-powerline'
"Plugin 'octol/vim-cpp-enhanced-highlight'
"" 可视化缩进
Plugin 'nathanaelkane/vim-indent-guides'
"Plugin 'derekwyatt/vim-fswitch'
"Plugin 'kshenoy/vim-signature'
"Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines'
"Plugin 'majutsushi/tagbar'
"Plugin 'vim-scripts/indexer.tar.gz'
"Plugin 'vim-scripts/DfrankUtil'
"Plugin 'vim-scripts/vimprj'
"" 带上下文的搜索
Plugin 'dyng/ctrlsf.vim'
"Plugin 'terryma/vim-multiple-cursors'
"Plugin 'scrooloose/nerdcommenter'
"Plugin 'vim-scripts/DrawIt'
"Plugin 'SirVer/ultisnips'
"" 智能补全
"Plugin 'Valloric/YouCompleteMe'
"Plugin 'derekwyatt/vim-protodef'
"Plugin 'scrooloose/nerdtree'
"Plugin 'fholgado/minibufexpl.vim'
"Plugin 'gcmt/wildfire.vim'
"Plugin 'sjl/gundo.vim'
"" 快速字母转跳
Plugin 'Lokaltog/vim-easymotion'
"" vim + firefox markdown 实时渲染
"Plugin 'suan/vim-instant-markdown'
" 插件列表结束
call vundle#end()
filetype plugin indent on
"""""""""" vundle set end
" 设置状态栏主题风格
let g:Powerline_colorscheme='solarized256'
" 禁止光标闪烁
set gcr=a:block-blinkon0
" 禁止显示滚动条
set guioptions-=l
set guioptions-=L
set guioptions-=r
set guioptions-=R
" 禁止显示菜单和工具条
set guioptions-=m
set guioptions-=T
" 总是显示状态栏
set laststatus=2
" 使用 ctrlsf.vim 插件在工程内全局查找光标所在关键字,设置快捷键。快捷键速记法:search in project
nnoremap <Leader>sp :CtrlSF<CR>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment