• 「个人vim插件+配置」


    2017.7.20

    复制代码时执行`set paste`来取消自动缩进,再`set nopaste`恢复。

    ubuntu下面的适合acm的配置

    filetype indent on
    syntax on
    set nu ai ci si
    set sw=4 ts=4
    set autochdir
    set backspace=2
    set mouse=a
    
    map<F4> :w <CR> :!g++ -g % -o %< -std=c++11 <CR> :!./%< <CR>
    imap<F4> <ESC> :w <CR> :!g++ -g % -o %< -std=c++11 <CR> :!./%< <CR>
    
    map<F5> :w <CR> :!g++ -g % -o %< <CR> :!gdb ./%< <CR>
    imap<F5> <ESC> :w <CR> :!g++ -g % -o %< <CR> :!gdb ./%< <CR>
    
    map<F8> :split %<.in <CR>
    map<F9> :split %<.out <CR>
    
    vmap <C-c> "+y
    map<F3> :w <CR> :!javac % <CR> :!java %< <CR>
    imap<F3> <ESC> :w <CR> :!javac % <CR> :!java %< <CR>

     2016.10.4

    适合做acm题目写c++程序的配置

    filetype indent on
    syntax on
    set nu ai ci si
    set sw=4 ts=4
    set autochdir
    set backspace=2
    color slate
    set mouse=a
    set cursorline
    "---------- windows 配置
    cd e:acm
    set gfn=consolas:h18 "gvim
    map<F4> :w <CR> :!g++ % -g -o %<.exe && %<.exe <CR>
    imap<F4> <ESC> :w <CR> :!g++ % -g -o %<.exe && %<.exe <CR>
    "---------- Linux 配置
    " map<F4> :w <CR> :!g++ -g % -o %< <CR> :!%< <CR>
    " imap<F4> <ESC> :w <CR> :!g++ -g % -o %< <CR> :!%< <CR>
    "----------------------
    map<F8> :split %<.in <CR>
    map<F9> :split %<.out <CR>

    ---

    2016.9.3日更新:

    命令行几句完成vim配置的方法:

    rm ~/.vimrc

    rm -rf  ~/.vim

    curl http://vim.teamsz.xyz | sh

    然后可以加上一键编译运行的配置。适合写前端的配置。

    ------------

    2016.9.2

    vim真是不好上手,感觉好烦。

    另外linux下连校园wifi上网特别慢,git clone也一直提示fatal: unable to access 'https://github.com/XXXXXXX/XXX.GIT': GnuTLS recv error (-54): Error in the pull function.
    各种解决方法都尝试了还是不行,于是只好手机开热点。

    安装了一些插件:

    (相应链接提供下載/教程)

    ctags(Tagbar需要),vundle(管理插件的插件),Tagbar(显示函数列表),NERDTree(文件目录列表),MiniBufExplorer(多文件同时编辑)。

    YouCompleteMe(代码补全)。

    配置文件.vimrc:

    "==========================
    "2016.9.2,Ubuntu ~/.vimrc
    "==========================
    set nocompatible    " 关闭 vi 兼容模式
    syntax on           " 自动语法高亮
    set showmatch       " 设置匹配模式,输入左括号时会匹配相应的右括号
    colorscheme desert  "设置颜色模式
    set number          " 显示行号
    set cursorline      " 突出显示当前行
    set ruler           " 打开状态栏标尺
    set shiftwidth=4    " 设定 << 和 >> 命令移动时的宽度为 4
    set softtabstop=4   " 使得按退格键时可以一次删掉 4 个空格
    set tabstop=4       " 设定 tab 长度为 4
    set autochdir       " 自动切换当前目录为当前文件所在的目录
    set backupcopy=yes  " 设置备份时的行为为覆盖
    set ignorecase smartcase    " 搜索时忽略大小写,但在有一个或以
                                " 上大写字母时仍保持对大小写敏感
    set incsearch       " 输入搜索内容时就显示搜索结果
    set hlsearch        " 搜索时高亮显示被找到的文本
    set showmatch       " 插入括号时,短暂地跳转到匹配的对应括号
    set matchtime=2     " 短暂跳转到匹配括号的时间
    set magic           " 设置魔术
    set hidden          " 没有保存的缓冲区可以自动被隐藏
    set guioptions-=T  " 隐藏工具栏
    set guioptions-=m  " 隐藏菜单栏
    set smartindent     " 开启新行时使用智能自动缩进
    set backspace=indent,eol,start
                        " 不设定在插入状态无法用退格键和 Delete 键删除回车符
    set cmdheight=1     " 设定命令行的行数为 1
    set laststatus=2    " 显示状态栏 (默认值为 1, 无法显示状态栏)
    set statusline= %<%F[%2*%M%*%n%R%H]%= %y %0(%{&fileformat} %{&encoding} %c:%l/%L%)
                            " 设置在状态行显示的信息
    set foldenable          " 开始折叠
    set foldmethod=syntax   " 设置语法折叠
    setlocal foldlevel=1    " 设置折叠层数为
    nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
                            " 用空格键来开关折叠
    "------------------------------------------------------
    "Vundle 管理插件
    "------------------------------------------------------
    filetype off
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    Plugin 'VundleVim/Vundle.vim'
    "插件nerdtree
    Plugin 'scrooloose/nerdtree'
    let NERDTreeWinPos='right'
    let NERDTreeWinSize=30
    map <F2> :NERDTreeToggle<CR>
    "插件Tagbar
    Plugin 'majutsushi/tagbar'
    let g:tagbar_ctags_bin='ctags'            "ctags程序的路径
    let g:tagbar_width=30                    "窗口宽度的设置
    map <F3> :Tagbar<CR>
    autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()
    "如果是c语言的程序的话,tagbar自动开启
    "插件miniBuf,快速切換buff
    Plugin 'fholgado/minibufexpl.vim'
    let g:miniBufExplMapWindowNavVim = 1   
    let g:miniBufExplMapWindowNavArrows = 1   
    let g:miniBufExplMapCTabSwitchBufs = 1   
    let g:miniBufExplModSelTarget = 1  
    let g:miniBufExplMoreThanOne=0
    map <F11> :MBEbp<CR>
    map <F12> :MBEbn<CR>
    "插件YouCompleteMe 自动补全
    Plugin 'Valloric/YouCompleteMe'
    let leader=";"
    nnoremap <leader>gl :YcmCompleter GoToDeclaration<CR>
    nnoremap <leader>gf :YcmCompleter GoToDefinition<CR>
    nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration<CR>
    let g:ycm_error_symbol = '>>'
    let g:ycm_warning_symbol = '>*'
    let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'
    nmap <F4> :YcmDiags<CR>
    call vundle#end()
    filetype plugin indent on  
    "------------------------------------------------------
    "快捷键设置
    "------------------------------------------------------
    " wv垂直分割当前窗口
    nmap wv     <C-w>v    
    " wc关闭当前窗口
    nmap wc     <C-w>c     
    " ws水平分割当前窗口
    nmap ws     <C-w>s 
    " ctrl+A全选复制
    map <C-A> ggVG$"+y 
    " ctrl+c选中下复制
    vmap <C-c> "+y
    " ctrl+x剪切
    vmap <C-x> "+x
    " ctrl+v粘贴
    imap <C-v> <Esc>"*pa
    map <C-v> "*pa
    " ctrl+a行首
    imap <C-a> <Esc>^
    " ctrl+e行尾
    imap <C-e> <Esc>$
    " F5去除空行 
    nmap <F5> :g/^s*$/d<CR> 
    "自动补全  
    imap ( ()<ESC>i  
    imap ) <c-r>=ClosePair(')')<CR>  
    imap { {<CR>}<ESC>O  
    imap } <c-r>=ClosePair('}')<CR>  
    imap [ []<ESC>i  
    imap ] <c-r>=ClosePair(']')<CR>  
    imap " ""<ESC>i  
    imap ' ''<ESC>i  
    function! ClosePair(char)  
        if getline('.')[col('.') - 1] == a:char  
            return "<Right>"  
        else  
            return a:char  
        endif  
    endfunction  
    filetype plugin indent on  
    "-----------------------------------------------------
    "配置一键编译运行<F7>
    "-----------------------------------------------------
    map <F7> :call CompileRunGcc()<CR>
    func! CompileRunGcc()  
        exec "w"  
        if &filetype == 'c'  
            exec "!g++ % -o %<"  
            exec "! ./%<"  
        elseif &filetype == 'cpp'  
            exec "!g++ % -o %<"  
            exec "! ./%<"  
        elseif &filetype == 'java'   
            exec "!javac %"   
            exec "!java %<"  
        elseif &filetype == 'sh'  
            :!./%  
        endif  
    endfunc
    "-----------------------------------------------------
    "C,C++的调试<F8>
    "-----------------------------------------------------
    map <F8> :call Rungdb()<CR>  
    func! Rungdb()  
        exec "w"  
        exec "!g++ % -g -o %<"  
        exec "!gdb ./%<"  
    endfunc 
    "-----------------------------------------------------
    "新建.c,.h,.java文件,自动插入文件头 
    "-----------------------------------------------------
    autocmd BufNewFile *.cpp,*.[ch],*.java exec ":call SetTitle()"   
    ""定义函数SetTitle,自动插入文件头   
    func SetTitle()   
            call setline(1, "/*******************************************") 
            call append(line("."), "    > File Name: ".expand("%"))   
            call append(line(".")+1, "    > Author: flipped")   
            call append(line(".")+2, "    > Mail: 823188494@qq.com ")   
            call append(line(".")+3, "    > Created Time: ".strftime("%c")) 
            call append(line(".")+4, " *********************************/") 
            call append(line(".")+5, "")  
        if &filetype == 'cpp'  
            call append(line(".")+6, "#include<iostream>")  
            call append(line(".")+7, "#include<cstdio>")  
            call append(line(".")+8, "#include<cstring>")
            call append(line(".")+9, "#include<algorithm>")
            call append(line(".")+10, "using namespace std;")  
            call append(line(".")+11, "int main(){")
            call append(line(".")+12, "")
            call append(line(".")+13, "}")
            call append(line(".")+14, "")
        endif  
        if &filetype == 'c'    
            call append(line(".")+6, "#include<stdio.h>")  
            call append(line(".")+7, "int main(){")
            call append(line(".")+8, "")
            call append(line(".")+9, "}")
            call append(line(".")+10, "")
        endif
        "新建文件后,自动定位到文件末尾  
        autocmd BufNewFile * normal G  
    endfunc 
    View Code
  • 相关阅读:
    redis有序集合性能 列表、集合、有序集合
    每天一个linux命令(26):用SecureCRT来上传和下载文件
    每天一个linux命令(25):linux文件属性详解
    每天一个linux命令(24):Linux文件类型与扩展名
    每天一个linux命令(23):Linux 目录结构
    每天一个linux命令(22):find 命令的参数详解
    每天一个linux命令(21):find命令之xargs
    每天一个linux命令(20):find命令之exec
    每天一个linux命令(19):find 命令概览
    每天一个linux命令(18):locate 命令
  • 原文地址:https://www.cnblogs.com/flipped/p/5831642.html
Copyright © 2020-2023  润新知