vim配置

1.安装vim-full版本

查看结果里是否有vim-full一项

apt-cache search vim

如果有则可以开始安装了

sudo apt-get install vim-full

2.查看vim配置文件

在vim编辑器里面输入

:version

查看vim配置文件:

 system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"

如果不知道$VIM或$HOME具体是哪个目录,可以在vi中用下面的命令查看

:echo $VIM (/usr/share/vim)

:echo $HOME (/Users/zhm 就是用户终端的根目录)

3.配置vim

"""""""""""""""""""""""""""""""基本设置""""""""""""""""""""""""""""""""
"工作在不兼容模式下
set nocp

"设置当前字符编码
set encoding=utf-8 

"设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 

"不要备份文件(根据自己需要取舍)
set nobackup 

"不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile  
set bufhidden=hide

"侦测文件类型
filetype on 

"载入文件类型插件
filetype plugin on

"为特定文件类型载入相关缩进文件
filetype indent on

"共享剪贴板
set clipboard+=unnamed

"在处理未保存或只读文件的时候,弹出确认
set confirm

"保存全局变量
set viminfo+=!

"打开拼写检查。拼写有错的单词下方会有红色波浪线,将光标放在单词上,按 z= 就会出现拼写建议,按 ]s 可以直接跳到下一个拼写错误处。
"set spell 

"允许backspace和光标键跨越行边界
"set whichwrap+=<,>,h,l

"在命令模式下使用 Tab 自动补全的时候,将补全内容使用一个漂亮的单行菜单形式显示出来。 
set wildmenu

"当右键单击窗口的时候,弹出快捷菜单
"set mousemodel=popup

"添加水平滚动条。如果你指定了不折行,那为窗口添加一个水平滚动条就非常有必要了。
set guioptions+=b

"通过使用:commands命令,告诉我们文件的哪一行被改变过
set report=0

"输入:set list命令是应该显示哪些
set listchars=tab:>.,trail:.,extends:>,precedes:<,eol:$

"可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key
 
"光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3

 
"在被分割的窗口间显示空白,便于阅读
"set fillchars=vert:\ ,stl:\ ,stlnc:\ 

"不让vim发出讨厌的滴滴声
set noerrorbells
 
"不要闪烁
set novisualbell

"去除vim的GUI版本中的toolbar
"set guioptions-=T

"字符间插入的像素行数目
set linespace=0

set backspace=indent,eol,start 






"""""""""""""""""""""""""""""""""显示设置"""""""""""""""""""""""""""""""""""""""""
"设置颜色主题
"colorscheme desert 

"显示行号
set number

"记录历史的行数
set history=1000

"语法高亮度显示
syntax on

"高亮显示gtk关键字
syntax keyword gtkType gint gshort guint gushort gulong gdouble gfloat gchar guchar gboolean gpointer highlight link gtkType Type

"超过80列高亮字符
:hi OverLength ctermbg=red ctermfg=white guibg=red guifg=white 
:match OverLength '\%80v.*'

"启动显示状态行(1),总是显示状态行(2)
set laststatus=1

"命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2

"状态行显示的内容
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
  
"状态行颜色
"hi StatusLine guifg=SlateBlue guibg=Yellow  
"hi StatusLineNC guifg=Gray guibg=White

"在状态行上显示光标所在位置的行号和列号
set ruler
set rulerformat=%20(%2*%<%f%=\%m%r\ %3l\ %c\ %p%%%)

"突出显示当前行
set cursorline






""""""""""""""""""""""""""""文本编辑设置"""""""""""""""""""""""""""""""""
"自动格式化  
set formatoptions=tcrqn

"缩进方式
set autoindent
"set smartindent
set cin 
set cino=:4g0t0(sus 

"制表符为4空格
set tabstop=4

"统一缩进为4
set softtabstop=4
set shiftwidth=4

"不要用空格代替制表符
"set noexpandtab

"将所有 Tab 替换为空格
set et 

"当使用 et 将 Tab 替换为空格之后,按下一个 Tab 键就能插入 4 个空格,但要想删除这 4 个空格,就得按 4 下 Backspace,很不方便。设置 smarttab 之后,就可以只按一下 Backspace 就删除 4 个空格了。 
set smarttab

"不要换行
set nowrap

"带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-







""""""""""""""""""""""""""""匹配设置"""""""""""""""""""""""""""""""""
"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set showmatch

"匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5

"在搜索时,输入的词句的逐字符高亮
set incsearch

"默认情况下,寻找匹配是高亮度显示的,该设置关闭高亮显示
"set nohls
set hls 

"搜索时在未完全输入完毕要检索的文本时就开始检索
set is 

"使用此设置会快速找到答案,当你找要匹配的单词时,别忘记回车
set incsearch

"在搜索的时候忽略大小写
set ignorecase
 
 



"""""""""""""""""""""""Vim color file"""""""""""""""""""""""""""
"http://vimcolorschemetest.googlecode.com/svn/html/index-html.html

set background=dark
set t_Co=256
"let g:colors_name="256-jungle"

let python_highlight_all = 1
let c_gnu = 1


hi Normal       ctermfg=253         ctermbg=234         cterm=None
hi Cursor       ctermfg=253         ctermbg=57          cterm=None
hi SpecialKey   ctermfg=70          ctermbg=None        cterm=None
hi Directory    ctermfg=57          ctermbg=254         cterm=None
hi ErrorMsg     ctermfg=160         ctermbg=245         cterm=None
hi PreProc      ctermfg=243         ctermbg=None        cterm=Bold
hi Search       ctermfg=125         ctermbg=None        cterm=Bold
hi Type         ctermfg=166         ctermbg=None        cterm=Bold
hi Statement    ctermfg=172         ctermbg=None        cterm=Bold
hi Comment      ctermfg=240         ctermbg=None        cterm=None
hi LineNr       ctermfg=244         ctermbg=233         cterm=None
hi NonText      ctermfg=105         ctermbg=None        cterm=Bold
hi DiffText     ctermfg=165         ctermbg=244         cterm=None
hi Constant     ctermfg=76          ctermbg=None        cterm=None
hi Todo         ctermfg=162         ctermbg=None        cterm=Bold
hi Identifier   ctermfg=142         ctermbg=None        cterm=Bold
hi Error        ctermfg=None        ctermbg=196         cterm=Bold
hi Special      ctermfg=172         ctermbg=None        cterm=Bold
hi Ignore       ctermfg=221         ctermbg=None        cterm=Bold
hi Underline    ctermfg=147         ctermbg=None        cterm=Italic

hi FoldColumn   ctermfg=132         ctermbg=None        cterm=None
hi Folded       ctermfg=132         ctermbg=None        cterm=Bold

hi Visual       ctermfg=248         ctermbg=238         cterm=None

hi Pmenu        ctermfg=62          ctermbg=233         cterm=None
hi PmenuSel     ctermfg=69          ctermbg=232         cterm=Bold
hi PmenuSbar    ctermfg=247         ctermbg=233         cterm=Bold
hi PmenuThumb   ctermfg=248         ctermbg=233         cterm=None

hi StatusLineNC ctermfg=248         ctermbg=239         cterm=None
hi StatusLine   ctermfg=39          ctermbg=239         cterm=None
hi VertSplit    ctermfg=239         ctermbg=239         cterm=None

hi TabLine      ctermfg=245         ctermbg=239         cterm=None
hi TabLineFill  ctermfg=239         ctermbg=239
hi TabLineSel   ctermfg=104         ctermbg=236         cterm=Bold






"""""""""""""""""""""""快捷键"""""""""""""""""""""""""""""
nmap <F2> :source ~/.vimrc<CR>

"用空格键来开关折叠
set foldenable
syn region myFold start="{" end="}" transparent fold
syn sync fromstart 
set foldmethod=syntax  
set foldlevel=100
nnoremap <space> @=((foldclosed(line('.')) < 0)?'zc':'zo')<CR>

"设置快捷方式 Set mapleader  
"let mapleader = ","  

"快速打开编辑 .vimrc配置文件--->",ee"  
"map <silent> <leader>ee :e ~/.vimrc<cr>  
"快速保存文件--->",w"  
"map <silent> <leader>w :w<cr>  
"快速保存并退出文件--->",w"  
"map <silent> <leader>wq :wq<cr>  

"自动命令,每次写入.vimrc后,都会执行这个自动命令,source一次~/.vimrc  
"autocmd! bufwritepost .vimrc source ~/.vimrc   

if 0
"""""""""""""""""""""""CTags的设定""""""""""""""""""
"按照名称排序
let Tlist_Sort_Type = "name"
 
"在右侧显示窗口
let Tlist_Use_Right_Window = 1
 
"压缩方式
let Tlist_Compart_Format = 1
 
"如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow = 1
 
"不要关闭其他文件的tags
let Tlist_File_Fold_Auto_Close = 0
 
"不要显示折叠树
let Tlist_Enable_Fold_Column = 0





"""""""""""""""""""""""""""""Autocommands""""""""""""""""""""""""""""
"只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
if has("autocmd")
    autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,rubyset number
    autocmd FileType xml,html vmap <C-o><ESC>'<i<!--<ESC>o<ESC>'>o-->
    autocmd FileType java,c,cpp,cs vmap <C-o><ESC>'<o/*<ESC>'>o*/ 
    autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100
    autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim
        \ if line("'\"")>0&&line("'\"")<=line("{1}quot;) |
        \ exe " normal g`"" |
        \ endif
endif   

"F5编译和运行C程序,F6编译和运行C++程序
"请注意,下述代码在windows下使用会报错
"需要去掉./这两个字符
 
"C的编译和运行
map <F5> :callCompileRunGcc()<CR>
func! CompileRunGcc()
    exec "w"
    exec "!gcc % -o %<"
    exec "! ./%<"
endfunc
 
"C++的编译和运行
map <F6> :callCompileRunGpp()<CR>
    func! CompileRunGpp()
    exec "w"
    exec "!g++ % -o %<"
    exec "! ./%<"
endfunc
 
"能够漂亮地显示.NFO文件
function! SetFileEncodings(encodings)
    let b:myfileencodingsbak=&fileencodings
    let &fileencodings=a:encodings
endfunction

function! RestoreFileEncodings()
    let &fileencodings=b:myfileencodingsbak
    unlet b:myfileencodingsbak
endfunction
 
au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single
au BufReadPost *.nfo callRestoreFileEncodings()
 
"高亮显示普通txt文件(需要txt.vim脚本)
"au BufRead,BufNewFile * setfiletype txt

"minibufexpl插件的一般设置  
"let g:miniBufExplMapWindowNavVim = 1  
"let g:miniBufExplMapWindowNavArrows = 1  
"let g:miniBufExplMapCTabSwitchBufs = 1  
"let g:miniBufExplModSelTarget = 1   

endif


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值