共享VIM配置文件

" progressively check higher values... falls out on first "true"
" (note addition of zero ... this guarantees return from function is numeric
"if strftime("%H") < 6 + 0                 “6:00
"colorscheme darkblue
"echo "setting colorscheme to darkblue"
"elseif strftime("%H") < 12 + 0        ”12:00
"colorscheme morning
"echo "setting colorscheme to morning"
"elseif strftime("%H") < 18 + 0        “18:00
"colorscheme shine
"echo "setting colorscheme to shine"
"else
"colorscheme evening
"echo "setting colorscheme to evening"
"endif


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"
"*****************************************选项设置**********************************************
set nocompatible"关闭vi兼容模式
syntax on"语法高亮
set t_Co=256"开启vim的256颜色支持
"colorscheme default"设定配色方案
colorscheme guodesert"设定配色方案
set nobackup"覆盖文件时不备份
set autoindent"插入模式下输入<cr>或使用"o"或"O"命令开新行,从当前行复制缩进距离
set shiftwidth=4 "(自动)缩进每一步使用的空白数目
set softtabstop=4"执行插入时,<Tab>算作空格的数目,可以改为4
set noexpandtab"不用空格展开<Tab>
set scrolloff=2"光标上下两侧最少保留的屏幕行数
set linespace=2"字符间插入的像素行数目"
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=7"短暂跳转到匹配括号的时间
"set textwidth=72"设定文本的宽度为80个字符时自动断行
"set columns=75"设置文本达到columns宽度时自动换行
"set wrap"设置文本达到textwidth宽度时自动换行,但实际文件还是一行
"set nowrap"设置文本达到textwidth宽度时不自动换行
"set complete+=k"关键字补全,扫描 'dictionary' 选项给出的文件
set history=50"命令的历史和最近的搜索模式的历史被记住。本项决定每个历史分别记多少项 
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+=_,,@,%,#,-  "带有这些字符的单词不要被换行分割 set backspace=2"使用回格键 set backspace=indent,eol,start"影响 <BS>、<Del>、CTRL-W和CTRL-U在插入模式下的工作方式 set noswapfile"没有交换文件 "set undofile"持久撤销功能 filetype plugin indent on"文件类型侦测  set foldlevel=99"设置折叠级别: 高于此级别的折叠会被关闭 set foldclose=all"设置为自动关闭折叠  set foldenable"开始折叠 set foldmethod=syntax"语法高亮项目指定折叠 set foldcolumn=0"设置折叠区域的宽度,显示折叠列 set cursorline"突出显示当前行 "set cursorcolumn"突出显示当前列 set ruler  "显示状态栏标尺 set rulerformat =%33(%2*%<%=\修改:\%{strftime(\"%H:%M\",getftime(expand(\"%\")))}\ 光标:\%l\行\ %c%V\列\ %p%%%) "set rulerformat =%25(%2*%<%=\光标:\ %l\行\ %c%V\列\ %p%%%)   set fencs=utf-8,gb18030,gbk,gb2312,cp936,ucs-bom,shift-jis "设置编码 set fileencoding=gb18030 set fileencodings=utf-8,gbk   " set cursorline  "set smartindent  "开启新行时使用智能自动缩进   "*****************************************高亮设置********************************************** "hi cFunctionsgui=NONEcterm=boldctermfg=blue "hi Commentctermfg=darkgreyctermbg=NONEcterm=NONE    "修改注释//grey灰色" "hi Constantctermfg=magentactermbg=NONEcterm=NONE                           " "hi Statementctermfg=darkredctermbg=NONEcterm=NONE "hi Preprocctermfg=bluectermbg=NONEcterm=NONE "hi LineNrctermfg=lightgreenctermbg=NONEcterm=NONE "hi Typectermfg=darkbluectermbg=NONEcterm=NONE    "  "hi Operatorctermfg=yellowctermbg=NONEcterm=NONE "hi Numberctermfg=magentactermbg=NONEcterm=NONE "hi Stringctermfg=magentactermbg=NONEcterm=NONE hi CursorLine   ctermfg=NONEctermbg=235 cterm=NONEguibg=NONEguifg=NONE   "黑色背景时指定高亮的规则bg=235 "hi CursorLine   ctermfg=NONEctermbg=255 cterm=NONEguibg=NONEguifg=NONE   "白色背景时指定高亮的规则bg=255 "*****************************************高亮设置**********************************************   "描述自动排版如何进行的字母序列 set formatoptions+=q set formatoptions+=r set formatoptions+=n "set formatoptions+=1 "set colorcolumn=+1 "set list                          "让tab显示成>-------->-------- "set listchars=tab:>-,trail:-,extends:>,precedes:<    "配合上边的语句完成 "#########################################选项设置##############################################   " 为C程序提供自动缩进 "set smartindent  "代码补全 "set completeopt=preview,menu  "自动补全 :inoremap ( ()<ESC>i :inoremap ) <c-r>=ClosePair(')')<CR>  :inoremap { {<CR>}<ESC>O :inoremap } <c-r>=ClosePair('}')<CR>  :inoremap [ []<ESC>i :inoremap ] <c-r>=ClosePair(']')<CR>  :inoremap " ""<ESC>i :inoremap ' ''<ESC>i function ClosePair(char)  "if getline('.')[col('.') - 1 ] == a:char if getline('.') == a:char  return "\<Right>"  else  return a:char  endif  endfunction  "filetype plugin indent on  "打开文件类型检测, 加了这句才可以用智能补全 "set completeopt=longest,menu    "启用代码折叠,用空格键来开关折叠    nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc':'zo')<CR>      "===========================================其他按键映射========================================= nnoremap j gj                     "自动换行时可在行中移动 nnoremap k gk 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> map + <C-w>+                      "增减窗口尺寸 map _ <C-w>- "":map e ea                         "移动到单词结尾时就自动进入插入模式 nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>  "用空格键来开关折叠 "####################################其他按键映射###################################   "================================打开文件时,自动跳转到光标最后所在的位置========================== "打开文件时,自动跳转到光标最后所在的位置 if has("autocmd")    au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("")
     \| exe "normal! g'\"" | endif
 endif
"###########################打开文件时,自动跳转到光标最后所在的位置#######################


"通过键盘映射快速实现加入注释。
"==========================================添加注释语句==========================================
  "将键盘上的F11功能键映射为添加作者信息的快捷键%m月%d日%Y年 
  "进行版权声明的设置
  "添加或更新头
  map <F9> :call TitleDet()<cr>'s
  
  function AddTitle()
    call append(0,"/* *========* *** *============================================== ")
    call append(1,"  * 作者代号: *** :换成你自己的即可")
    call append(2,"  * 版权声明: *** :(魎魍魅魑)GPL3")
    call append(3,"  * 联络信箱: *** :换成自己的@gmail.com")
    call append(4,"  * 文档用途: *** :C++基础教程--从问题分析到程序设计")  
    call append(5,"  * 文档信息: *** :".expand("%:p:~"))
    call append(6,"  * 修订时间: *** :".strftime("%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)"))
    call append(7," * *========* *** *============================================== */")
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
  endf
  "更新最近修改时间和文件名
  function UpdateTitle()
    normal m'
    execute '/修订时间:/s@:.*@\=strftime(":normalnormalmkexecute/:/s@:.@\=": *** :".expand("%:p:~")@'
    execute "noh"
    normal 'k
    echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
  endfunction
  "判断前10行代码里面,是否有Last modified这个单词,
  "如果没有的话,代表没有添加过作者信息,需要新添加;
  "如果有的话,那么只需要更新即可
  function TitleDet()
    let n=1
    "默认为添加
    while n < 10
        let line = getline(n)
        if line =~ '^\ \ \**\s*\S*修订时间:\S*.*$'
call UpdateTitle()
            return
        endif
        let n = n + 1
    endwhile
    call AddTitle()
  endfunction  
"##########################################添加注释语句##############################


""""""""""""""""""""""""""""""""""""""""""""""""
"Compile and run
""""""""""""""""""""""""""""""""""""""""""""""""
map <F5>:call CompileRun()<cr>
func CompileRun()
    if &filetype=="c"
exec ":w"<cr>
exec "!g++ % -o %< && ./%<"<cr>
    endif
endfunc


""""""""""""""""""""""""""""""""""""""""""""""""
"Compile and run
""""""""""""""""""""""""""""""""""""""""""""""""
map <F10>:call CompileRunJava()<cr>
func CompileRunJava()
    if &filetype=="java"
exec ":w"<cr>
exec "!javac %"<cr>
exec "!java %<"<cr>
    endif
endfunc


"试试缩写好用吗
 ab psvms public static void main(String[
 ab sop System.out.println(
"set gcr=n-v-c:ver50-Cursor/lCursor,ve:ver75-Cursor,o:hor50-Cursor,i-ci:ver50-Cursor/lCursor


"if &term =~ '^xterm'
  " solid underscore
 " let &t_SI .= "\<Esc>[4 q"
  " solid block
"  let &t_EI .= "\<Esc>[2 q"
  " 1 or 0 -> blinking block
  " 3 -> blinking underscore
  " Recent versions of xterm (282 or above) also support
  " 5 -> blinking vertical bar
  " 6 -> solid vertical bar
"endif

posted @   叕叒双又  阅读(166)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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工具
点击右上角即可分享
微信分享提示