• ACM vim配置


    ACM现场赛时用的,比较简短,但是主要的功能都有了。

    直接打开终端输入gedit ~/.vimrc 把下面的东西复制到里面就行了。

    filetype plugin indent on
    colo evening
    set nu
    set hlsearch 
    set syntax=on
    set tabstop=4
    set shiftwidth=4
    set smarttab
    set smartindent
    set showmatch
    set matchtime=0
    set report=0
    :inoremap ( ()<ESC>i
    :inoremap [ []<ESC>i
    :inoremap { {}<ESC>i
    :inoremap {<CR> {<CR>}<ESC>O
    :inoremap ) <c-r>=Close(')')<CR>
    :inoremap ] <c-r>=Close(']')<CR>
    :inoremap } <c-r>=Close('}')<CR>
    function Close(char)
        if getline('.')[col('.') - 1] == a:char
            return "<Right>"
        else
            return a:char
        endif
    endfunction

    平时可以用的较多些。

    func! CompileGpp()
        exec "w"
        let compilecmd="!clear && g++ -std=c++11"
        let compileflag="-o %< "
        if search("mpi.h") != 0
            let compilecmd = "!mpic++ "
        endif
        if search("glut.h") != 0
            let compileflag .= " -lglut -lGLU -lGL "
        endif
        if search("cv.h") != 0
            let compileflag .= " -lcv -lhighgui -lcvaux "
        endif
        if search("omp.h") != 0
            let compileflag .= " -fopenmp "
        endif
        if search("math.h") != 0
            let compileflag .= " -lm "
        endif
        exec compilecmd." % ".compileflag
    endfunc
    
    func! RunResult0()
            exec "w"
            if search("mpi.h") != 0
                exec "!clear && mpirun -np 4 ./%<"
            else 
                exec "!clear && ./%<"
            endif
    endfunc
    
    func! RunResult1()
            exec "w"
            if search("mpi.h") != 0
                exec "!clear && mpirun -np 4 ./%< < t"
            else 
                exec "!clear && ./%< < t"
            endif
    endfunc
    
    map <F9> :call CompileGpp()<CR>
    map <F10> :call RunResult0()<CR>
    map <F8> :call RunResult1()<CR>
    
    colorscheme evening "设置背景颜色为夜间模式
    
    set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  
    
    if version >= 603
        set helplang=cn
        set encoding=utf-8
    endif
    
    " 设置当文件被改动时自动载入
    
    set autoread
    
    " quickfix模式
    
    autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
    
    "代码补全 
    
    set completeopt=preview,menu 
    
    "允许插件  
    
    filetype plugin on
    
    "共享剪贴板  
    
    set clipboard+=unnamed 
    
    "从不备份  
    
    set nobackup
    
    "make 运行
    
    :set makeprg=g++ -Wall  %
    
    "自动保存
    
    set autowrite
    
    set ruler                   " 打开状态栏标尺
    
    set magic                   " 设置魔术
    
    set guioptions-=T           " 隐藏工具栏
    
    set guioptions-=m           " 隐藏菜单栏
    
    " 不要使用vi的键盘模式,而是vim自己的
    
    set nocompatible
    
    " 语法高亮
    
    set syntax=on
    
    " 去掉输入错误的提示声音
    
    set noeb
    
    " 在处理未保存或只读文件的时候,弹出确认
    
    set confirm
    
    " 自动缩进
    
    set autoindent
    
    set cindent
    
    " Tab键的宽度
    
    set tabstop=4
    
    " 统一缩进为4
    
    set softtabstop=4
    
    set shiftwidth=4
    
    " 不要用空格代替制表符
    
    set noexpandtab
    
    " 在行和段开始处使用制表符
    
    set smarttab
    
    " 显示行号
    
    set number
    
    " 历史记录数
    
    set history=1000
    
    "禁止生成临时文件
    
    set nobackup
    
    set noswapfile
    
    
    "搜索逐字符高亮
    
    set hlsearch
    
    set incsearch
    
    "行内替换
    
    set gdefault
    
    "编码设置
    
    set enc=utf-8
    
    set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
    
    "语言设置
    
    set langmenu=zh_CN.UTF-8
    
    set helplang=cn
    
    
    " 命令行(在状态行下)的高度,默认为1,这里是2
    
    set 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=2
    
    " 允许backspace和光标键跨越行边界
    
    set whichwrap+=<,>,h,l
    
    " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
    
    set mouse=a
    
    set selection=exclusive
    
    set selectmode=mouse,key
    
    " 通过使用: commands命令,告诉我们文件的哪一行被改变过
    
    set report=0
    
    " 在被分割的窗口间显示空白,便于阅读
    
    set fillchars=vert: ,stl: ,stlnc:
    
    " 高亮显示匹配的括号
    
    set showmatch
    
    " 匹配括号高亮的时间(单位是十分之一秒)
    
    set matchtime=1
    
    " 光标移动到buffer的顶部和底部时保持3行距离
    
    set scrolloff=3
    
    " 为C程序提供自动缩进
    
    set smartindent
    
    " 高亮显示普通txt文件(需要txt.vim脚本)
    
    au BufRead,BufNewFile *  setfiletype txt
    
    "自动补全
    
    :inoremap ( ()<ESC>i
    
    :inoremap ) <c-r>=ClosePair(')')<CR>
    
    :inoremap { {}<ESC>i
    
    :inoremap {<CR> {<CR>}<ESC>O
    
    :inoremap } <c-r>=ClosePair('}')<CR>
    
    :inoremap [ []<ESC>i
    
    :inoremap ] <c-r>=ClosePair(']')<CR>
    
    ":inoremap " ""<ESC>i
    
    ":inoremap ' ''<ESC>i
    
    :inoremap } <c-r>=ClosePair('}')<CR>
    
    ":inoremap " <c-r>=ClosePair('"')<CR>
    
    ":inoremap ' <c-r>=ClosePair(''')<CR>
    
    function ClosePair(char)
        if getline('.')[col('.') - 1] == a:char
            return "<Right>"
        else
            return a:char
        endif
    endfunction
    
    filetype plugin indent on 
    
    "打开文件类型检测, 加了这句才可以用智能补全
    set completeopt=longest,menu
  • 相关阅读:
    一种无法被Dump的jar包加密保护解决方案
    基于设备指纹零感验证系统
    IOS防作弊产品技术原理分析
    某移动端防作弊产品技术原理浅析与个人方案构想
    web安全防御之RASP技术
    Linux漏洞分析入门笔记-Off-By-One(栈)
    smb中继学习
    Dedecms sp2 5.7 后台getshell审计
    phpmyadmin后台代码执行分析复现
    静态恶意代码逃逸-学习一
  • 原文地址:https://www.cnblogs.com/Howe-Young/p/4915241.html
Copyright © 2020-2023  润新知