千家信息网

我的VIM -- vimrc配置

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,主要都是参考融合了网上比较热的几分VIM配置文档,加上我的使用习惯而形成的。感谢他们的奉献!基本上每行配置上面都有注释,相信仔细看下就会明白的了。"不要使用vi的键盘模式,而是vim自己的set no
千家信息网最后更新 2025年02月01日我的VIM -- vimrc配置

主要都是参考融合了网上比较热的几分VIM配置文档,加上我的使用习惯而形成的。感谢他们的奉献!

基本上每行配置上面都有注释,相信仔细看下就会明白的了。

"不要使用vi的键盘模式,而是vim自己的set nocompatible" 语法高亮set syntax=on" 去掉输入错误的提示声音set noeb" 在处理未保存或只读文件的时候,弹出确认set confirm" 自动缩进set autoindentset cindent" Tab键的宽度set tabstop=4" 统一缩进为4set softtabstop=4set shiftwidth=4" 不要用空格代替制表符set noexpandtab" 在行和段开始处使用制表符set smarttab" 显示行号set number" 历史记录数set history=1000"禁止生成临时文件set nobackupset noswapfile"搜索忽略大小写set ignorecase"搜索逐字符高亮set hlsearchset incsearch"行内替换set gdefault"编码设置set enc=utf-8set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936"语言设置set langmenu=zh_CN.UTF-8set helplang=cn" 我的状态行显示的内容(包括文件类型和解码)set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}"set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]" 总是显示状态行set laststatus=2" 在编辑过程中,在右下角显示光标位置的状态行set ruler          " 命令行(在状态行下)的高度,默认为1,这里是2set cmdheight=2" 侦测文件类型filetype on" 载入文件类型插件filetype plugin on" 为特定文件类型载入相关缩进文件filetype indent on" 保存全局变量set viminfo+=!" 带有如下符号的单词不要被换行分割set iskeyword+=_,$,@,%,#,-" 字符间插入的像素行数目set linespace=0" 增强模式中的命令行自动完成操作set wildmenu" 使回格键(backspace)正常处理indent, eol, start等set backspace=indent,eol,start"状态栏显示目前所执行的指令set showcmd" 允许backspace和光标键跨越行边界set whichwrap+=<,>,h,l" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)set mouse=aset selection=exclusiveset selectmode=mouse,key" 通过使用: commands命令,告诉我们文件的哪一行被改变过set report=0" 启动的时候不显示那个援助索马里儿童的提示set shortmess=atl" 在被分割的窗口间显示空白,便于阅读set fillchars=vert:\ ,stl:\ ,stlnc:\" 高亮显示匹配的括号set showmatch" 匹配括号高亮的时间(单位是十分之一秒)set matchtime=5" 光标移动到buffer的顶部和底部时保持3行距离set scrolloff=3" 为C程序提供自动缩进set smartindent"隐藏工具栏set guioptions-=T"隐藏菜单栏set guioptions-=m"开启折叠"set foldenable"设置语法折叠"set foldmethod=syntax"设置折叠区域的宽度"set foldcolumn = 0"设置折叠层数"set foldlevel=1  "设置自动关闭折叠"set foldclose=all"自动切换当前目录为当前文件的目录set autochdirset tags=tags;let Tlist_Show_One_File=1let Tlist_Exit_OnlyWindow=1"设置字体set guifont=Inconsolata\ 12"设置配色方案colorscheme desertlet g:winManagerWindowLayout='FileExplorer|TagList'nmap wm :WMToggleset cscopequickfix=s-,c-,d-,i-,t-,e-cs add cscope.outlet g:miniBufExplMapCTabSwitchBufs = 1let g:miniBufExplMapWindowNavVim = 1" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示if has("autocmd")   autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number   autocmd FileType xml,html vmap  'o'>o-->   autocmd FileType java,c,cpp,cs vmap  ''>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   autocmd BufReadPost *      \ if line("'\"") > 0 && line("'\"") <= line("$") |      \   exe "normal g`\"" |      \ endifendif " has("autocmd")" F5编译和运行C程序" C的编译和运行map  :call CompileRunGcc()func! CompileRunGcc()exec "w"exec "!gcc -Wall % -o %<"exec "! ./%<"endfunc" C++的编译和运行map  :call CompileRunGpp()func! CompileRunGpp()exec "w"exec "!cscope -Rbq"endfunc" 能够漂亮地显示.NFO文件set encoding=utf-8function! SetFileEncodings(encodings)    let b:myfileencodingsbak=&fileencodings    let &fileencodings=a:encodingsendfunctionfunction! RestoreFileEncodings()    let &fileencodings=b:myfileencodingsbak    unlet b:myfileencodingsbakendfunctionau BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=singleau BufReadPost *.nfo call RestoreFileEncodings()


0