Vim基础配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vim基础配置相关的知识,希望对你有一定的参考价值。
Vim
虽然网上有着各种各样的Vim插件配置
但是那对于我来说根本是不必要的,在经历了各种配置体验以后,总体上说Vim
如果插件越多越卡。而且在以后的开发过程中,如果换了服务器以后,每次都要折腾配置,真心很不方便,Vim
插件管理很乱,我也没有时间去学所谓的VimScript
,如果一个编辑器的学习成本这么高,已经偏离了我学编程的主要目的了。
以下配置一下主要的样式,不进行插件配置
"===============================================================================
" General Settings 基础设置
"===============================================================================
set history=2000 "history存储容量
filetype on "开启文件类型侦测
filetype indent on "自适应不同语言的智能缩进
filetype plugin on "允许插件
filetype plugin indent on "启动自动补全
set nocompatible "关闭兼容模式
set autoread "文件修改之后自动载入
set shortmess=atI "启动的时候不显示那个援助乌干达儿童的提示
set nobackup "取消备份。 视情况自己改
set noswapfile "关闭交换文件
" 备份,到另一个位置. 防止误删, 目前是取消备份
"set backup
"set backupext=.bak
"set backupdir=/tmp/vimbk/
set wildignore=*.swp,*.bak,*.pyc,*.class,.svn
" 设置 退出vim后,内容显示在终端屏幕, 可以用于查看和复制, 不需要可以去掉
" 好处:误删什么的,如果以前屏幕打开,可以找回
set t_ti= t_te=
" 鼠标暂不启用, 键盘党....
" set mouse-=a
" 启用鼠标
set mouse=a
" Hide the mouse cursor while typing
" set mousehide
"===============================================================================
" Display Settings 展示格式设置
"===============================================================================
" 防止tmux下vim的背景色显示异常
" Refer: http://sunaku.github.io/vim-256color-bce.html
if &term =~ '256color'
" disable Background Color Erase (BCE) so that color schemes
" render properly when inside 256-color tmux and GNU screen.
" see also http://snk.tuxfamily.org/log/vim-256color-bce.html
set t_ut=
endif
set ruler "显示光标当前位置
set showcmd "在状态栏显示正在输入的命令
set showmode "左下角显示当前vim模式
set scrolloff=7 "在上下移动光标时,光标的上方或下方至少会保留显示的行数
set number "开启行号显示
set gcr=a:block-blinkon0 "禁止光标闪烁
set laststatus=2 "总是显示状态栏
set guioptions-=l "禁止显示滚动条
set guioptions-=L
set guioptions-=r
set guioptions-=R
set guioptions-=m "禁止显示菜单和工具条
set guioptions-=T
set cursorline "高亮显示当前行/列
" set cursorcolumn
if (exists('+colorcolumn')) "高亮第80列
set colorcolumn=80
highlight ColorColumn ctermbg=9
endif
"===============================================================================
" 排版格式设置
"===============================================================================
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""搜索括号匹配问题""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set showmatch "括号配对情况, 跳转并高亮一下匹配的括号
" How many tenths of a second to blink when matching brackets
set matchtime=2
set incsearch "开启实时搜索功能
set ignorecase "搜索时大小写不敏感
set smartcase "有一个或以上大写字母时仍大小写敏感
set hlsearch "高亮显示搜索结果
set wildmenu "vim 自身命令行模式智能补全
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""代码显示排版问题"""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
syntax enable "开启语法高亮功能
syntax on "允许用指定语法高亮配色方案替换默认方案
set smartindent "智能缩进
set autoindent "自动缩进
set shiftround "缩进时,取整
set expandtab "将制表符扩展为空格
set tabstop=4 "设置编辑时制表符占用空格数
set shiftwidth=4 "设置格式化时制表符占用空格数
set softtabstop=4 "让 vim 把连续数量的空格视为一个制表符
set smarttab "设置该项后就可以删除一个tab了
set nowrap "禁止折行
set backspace=indent,eol,start "退格键问题
set formatoptions+=m "如遇Unicode值大于255的文本,不必等到空格再折行
set formatoptions+=B "合并两行中文时,不在中间加空格
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""代码折叠"""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set foldenable
" 折叠方法
" manual 手工折叠
" indent 使用缩进表示折叠
" expr 使用表达式定义折叠
" syntax 使用语法定义折叠
" diff 对没有更改的文本进行折叠
" marker 使用标记进行折叠, 默认标记是 {{{ 和 }}}
set foldmethod=indent
set foldlevel=99
" 代码折叠自定义快捷键 <leader>zz
let g:FoldMethod = 0
map <leader>zz :call ToggleFold()<cr>
fun! ToggleFold()
if g:FoldMethod == 0
exe "normal! zM"
let g:FoldMethod = 1
else
exe "normal! zR"
let g:FoldMethod = 0
endif
endfun
set nofoldenable "启动 vim 时关闭折叠代码
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""粘贴问题""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set pastetoggle=<F11> "设置按下F11时进入paste模式
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""编码问题""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set encoding=utf-8 "设置编码
set langmenu=zh_CN.UTF-8 "设置提示为中文
" language message zh_CN.UTF-8
" 自动判断编码时,依次尝试以下编码:
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set ambiwidth=double "防止特殊符号无法正常显示
set helplang=cn
" Use Unix as the standard file type
set ffs=unix,dos,mac
"===============================================================================
" others 其它设置
"===============================================================================
autocmd! bufwritepost _vimrc source % "vimrc文件修改之后自动加载, windows
autocmd! bufwritepost .vimrc source % "vimrc文件修改之后自动加载, linux
" 自动补全配置
set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
set wildmenu "增强模式中的命令行自动完成操作
set wildignore=*.o,*~,*.pyc,*.class "Ignore compiled files
" 离开插入模式后自动关闭预览窗口
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
" 回车即选中当前项
inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"
" In the quickfix window, <CR> is used to jump to the error under the
" cursor, so undefine the mapping there.
autocmd BufReadPost quickfix nnoremap <buffer> <CR> <CR>
" quickfix window s/v to open in split window, ,gd/,jd => quickfix window => open it
autocmd BufReadPost quickfix nnoremap <buffer> v <C-w><Enter><C-w>L
autocmd BufReadPost quickfix nnoremap <buffer> s <C-w><Enter><C-w>K
" command-line window
autocmd CmdwinEnter * nnoremap <buffer> <CR> <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>"
" 打开自动定位到最后编辑的位置, 需要确认 .viminfo 当前用户可写
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""高亮方案设置""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
highlight LineNr cterm=bold ctermfg=red
highlight StorageClass cterm=bold ctermfg=darkgreen
highlight Type cterm=bold ctermfg=blue
highlight LineNr cterm=bold ctermbg=black
highlight phpStructure cterm=bold ctermfg=darkred
highlight phpFunctions cterm=bold ctermfg=256
highlight Title ctermfg=blue
highlight pythonString cterm=bold ctermfg=gray
highlight pythonFunction cterm=bold
highlight pythonInclude cterm=bold ctermfg=lightblue
highlight javascriptStringS ctermfg=gray
highlight String ctermfg=gray
hi Search cterm=NONE ctermfg=darkred ctermbg=yellow cterm=reverse
以上是关于Vim基础配置的主要内容,如果未能解决你的问题,请参考以下文章