我的vim配置文件
觉得不错的话,可以直接将以下内容保存到.vimrc的文件中,放到home目录下即可:
"******************************************************特殊设置**********************************************************
autocmd InsertLeave * set nocul "浅色显示高亮行,离开时关闭
autocmd InsertLeave * set nocuc "浅色显示高亮行,离开时关闭
autocmd InsertEnter * set cul "浅色显示高亮行,进入时浅色显示打开
autocmd InsertEnter * set cuc "浅色显示高亮行,进入时浅色显示打开
let &t_SI = "\<Esc>]50;CursorShape=0\x7"
let &t_EI = "\<Esc>]50;CursorShape=1\x7"
"******************************************************特殊设置**********************************************************
"******************************************************杂项设置**********************************************************
syntax on "语法高亮
filetype plugin indent on "文件类型侦测
"colorscheme guodesert "设定配色方案
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc':'zo')<CR> "启用代码折叠,用空格键来开关折叠
ab psvm public static void main "试试缩写好用吗
"ab sop System.out.println
let NERDTreeQuitOnOpen=1
let NERDTreeDirArrows=0
let NERDTreeWinSize=40
let NERDRemoveExtraSpaces=0
let g:bufExplorerDisableDefaultKeyMapping = 1
let g:acp_behaviorKeywordCommand = "\<C-o>"
let g:acp_behaviorKeywordLength = -1
let g:acp_behaviorFileLength = -1
let g:SuperTabDefaultCompletionType = "<c-n>"
let g:SuperTabLongestHighlight = 1
let g:tagbar_sort=0
let g:tagbar_compact=1
let g:tagbar_foldlevel=1
let g:tagbar_iconchars=['+', '-']
let OmniCpp_SelectFirstItem = 2
let OmniCpp_ShowPrototypeInAbbr = 1
let OmniCpp_MayCompleteScope = 1
"******************************************************杂项设置**********************************************************
"******************************************************选项设置**********************************************************
"set list "让tab显示成>-------->--------
"set listchars=tab:>-,trail:-,extends:>,precedes:< "配合上边的语句完成
"set completeopt=preview,menu
"set completeopt=longest,menu
set nocompatible "关闭vi兼容模式
set t_Co=256 "开启vim的256颜色支持
set nobackup "覆盖文件时不备份
set autoindent "插入模式下输入<cr>或使用"o"或"O"命令开新行,从当前行复制缩进距离
set shiftwidth=4 "(自动)缩进每一步使用的空白数目
set softtabstop=4 "执行插入时,<Tab>算作空格的数目,可以改为4
set noexpandtab "不用空格展开<Tab>
set scrolloff=1 "光标上下两侧最少保留的屏幕行数
set sidescrolloff=5 "如果设置'nowrap',光标左右两侧保留的最少屏幕列数
set sidescroll=1 "水平滚动时滚动的最少列数
set showcmd "在屏幕最后一行显示 (部分的) 命令
set showmode "在插入、替换和可视模式里,在最后一行提供消息
set hidden "放弃时隐藏缓冲区
set wildmenu "'wildmenu'打开时,命令行补全以增强模式运行
set wildmode=list:full "用'widechar'指定的字符所用的补全模式
set novisualbell "不使用可视响铃
set number "在每行前面显示行号
set numberwidth=3 "行号使用的最小列数
set ignorecase "搜索模式里忽略大小写
set smartcase "搜索模式里包含大写字符,不使用ignorecase选项
set incsearch "输入搜索命令时,显示目前输入的模式的匹配位置。匹配的字符串被高亮
set hlsearch "搜索时高亮显示被找到的文本
set showmatch "插入括号时,短暂地跳转到匹配的对应括号
set matchtime=5 "短暂跳转到匹配括号的时间
set textwidth=122 "设定文本的宽度为122个字符时自动断行
"set columns=75 "设置文本达到columns宽度时自动换行
set wrap "设置文本达到textwidth宽度时自动换行,但实际文件还是一行
"set nowrap "设置文本达到textwidth宽度时不自动换行
set complete+=k "关键字补全,扫描 'dictionary' 选项给出的文件
set history=255 "命令的历史和最近搜索模式的历史被记住。本项决定分别记多少项历史
set wildignore+=*.svn "文件名补全时忽略.svn
set nosplitbelow "窗口的分割会把新窗口放到当前窗口之下
set nosplitright "窗口的分割会把新窗口放到当前窗口之右
"set background=dark "设置背景为暗色
set virtualedit+=block "在可视模式下可以选择一个方块
set autoread "当文件在外部被修改时,自动重新读取
set autowrite "自动保存文件
"set cmdheight=2 "设定命令行的行数为1
"set cuc "将当前光标下的列高亮
set autochdir "自动切换当前目录为当前文件所在的目录
set helplang=cn "设置帮助语言
set iskeyword+=_,<CR> "list the file which include this file
nmap <C-[>I :cs find i <C-R>=expand("%:t")<CR><CR>
"nnoremap j gj "自动换行时可在行中移动
"nnoremap k gk
"nnoremap <c-]> g<c-]> "move to right window
"noremap <c-l> <c-w>l "move to up window
"noremap <c-k> <c-w>k "move to down window
"noremap <c-j> <c-w>j "move to left window
"noremap <c-h> <c-w>h "goto the place where word definition
nnoremap <C-h> <C-w>h "在分割的窗口间移动
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-l> <C-w>l
noremap <S-h> :bp<cr> "在buffer间移动
noremap <S-l> :bn<cr>
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> "用空格键来开关折叠
vnoremap <silent> , :call NERDComment(1, "alignLeft")<cr> "uncomment visual line
vnoremap <silent> . :call NERDComment(1, "uncomment")<cr> "show list if more tag
if has("cscope")
set nocsverb
if filereadable("cscope.out")
cs add cscope.out
endif
endif
"======================================================按键映射==========================================================
"======================================================跳转位置==========================================================
if has("autocmd") "打开文件时,自动跳转到光标最后所在的位置
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("@\=strftime(": *** *%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)")@'
normal ''
normal mk
execute '/文档信息:/s@:.*'
call UpdateTitle() "如果有的话,那么只需要更新即可
return
endif
let n = n + 1
endwhile
call AddTitle() "如果没有的话,代表没有添加过作者信息,需要新添加;
endfunction
"======================================================添加注释==========================================================
"======================================================编译运行==========================================================
map <F9> :call CompileRun()<cr> "通过键盘F9映射快速实现编译与运行
function CompileRun()
exec "w"
if &filetype == 'c'
exec "!gcc -g % -o %<"
exec "!%<"
elseif &filetype == 'cpp'
exec "!g++ -g % -o %<"
exec "!%<"
elseif &filetype == 'java'
exec "!javac %"
exec "!java %<"
else
exec "echo not support filetype!"
endif
endfunction
"======================================================编译运行==========================================================
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具