2017.7.20

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

ubuntu下面的适合acm的配置

filetype indent on
syntax on
set nu ai ci si
set sw= ts=
set autochdir
set backspace=
set mouse=a map<F4> :w <CR> :!g++ -g % -o %< -std=c++ <CR> :!./%< <CR>
imap<F4> <ESC> :w <CR> :!g++ -g % -o %< -std=c++ <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= ts=
set autochdir
set backspace=
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
set softtabstop= " 使得按退格键时可以一次删掉 4 个空格
set tabstop= " 设定 tab 长度为 4
set autochdir " 自动切换当前目录为当前文件所在的目录
set backupcopy=yes " 设置备份时的行为为覆盖
set ignorecase smartcase " 搜索时忽略大小写,但在有一个或以
" 上大写字母时仍保持对大小写敏感
set incsearch " 输入搜索内容时就显示搜索结果
set hlsearch " 搜索时高亮显示被找到的文本
set showmatch " 插入括号时,短暂地跳转到匹配的对应括号
set matchtime= " 短暂跳转到匹配括号的时间
set magic " 设置魔术
set hidden " 没有保存的缓冲区可以自动被隐藏
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
set smartindent " 开启新行时使用智能自动缩进
set backspace=indent,eol,start
" 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight= " 设定命令行的行数为 1
set laststatus= " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%*%M%*%n%R%H]%=\ %y\ %(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
" 设置在状态行显示的信息
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
setlocal foldlevel= " 设置折叠层数为
nnoremap <space> @=((foldclosed(line('.')) < ) ? '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=
map <F2> :NERDTreeToggle<CR>
"插件Tagbar
Plugin 'majutsushi/tagbar'
let g:tagbar_ctags_bin='ctags' "ctags程序的路径
let g:tagbar_width= "窗口宽度的设置
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 =
let g:miniBufExplMapWindowNavArrows =
let g:miniBufExplMapCTabSwitchBufs =
let g:miniBufExplModSelTarget =
let g:miniBufExplMoreThanOne=
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('.') - ] == 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(, "/*******************************************")
call append(line("."), " > File Name: ".expand("%"))
call append(line(".")+, " > Author: flipped")
call append(line(".")+, " > Mail: 823188494@qq.com ")
call append(line(".")+, " > Created Time: ".strftime("%c"))
call append(line(".")+, " *********************************/")
call append(line(".")+, "")
if &filetype == 'cpp'
call append(line(".")+, "#include<iostream>")
call append(line(".")+, "#include<cstdio>")
call append(line(".")+, "#include<cstring>")
call append(line(".")+, "#include<algorithm>")
call append(line(".")+, "using namespace std;")
call append(line(".")+, "int main(){")
call append(line(".")+, "")
call append(line(".")+, "}")
call append(line(".")+, "")
endif
if &filetype == 'c'
call append(line(".")+, "#include<stdio.h>")
call append(line(".")+, "int main(){")
call append(line(".")+, "")
call append(line(".")+, "}")
call append(line(".")+, "")
endif
"新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G
endfunc

「个人vim插件+配置」的更多相关文章

  1. DoxygenToolKit.vim 插件配置

    如何才能既享受 Doxygen 的强大功能,同时又避免大量的重复性的注释内容? 解决思路: 让编辑器来替我们写那些格式和内容固定的部分,我们只负责写真正的有效内容. 所以,答案就是:Vim + Dox ...

  2. vim 插件配置博客记录

    本来打算自己写下各种经常使用vim的插件安装方法, 可是搜索了下, 发现别人都写过了, 在写一遍也没有意思, 特此记录. Vim 经常使用命令 http://blog.csdn.net/hittata ...

  3. vim插件配置

    OS:kali linux tool:vim 上图: 0x00 需要用到的插件及其下载地址 左边的一栏显示文件目录结构的用到的插件为 NERDTree 下载地址:https://github.com/ ...

  4. vim插件配置(一)

    vim代码自动显示提示代码插件:AutoComplPop:  代码(普通变量函数) c/c++代码(类的 . , ->, :: 操作符)的自动补全插件: OmniCppComplete

  5. 我的vim插件配置

    set nocompatible " be iMproved, required filetype off " required " set the runtime pa ...

  6. 常用VIM插件配置

    airline 状态栏美化 除了airline本体还要下airline主题 和打过powerline补丁的字体 常用设置: set laststatus=2 " 总是显示状态栏 set no ...

  7. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  8. 「IDEA插件精选」安利一个IDEA骚操作:一键生成方法的序列图

    在平时的学习/工作中,我们会经常面临如下场景: 阅读别人的代码 阅读框架源码 阅读自己很久之前写的代码. 千万不要觉得工作就是单纯写代码,实际工作中,你会发现你的大部分时间实际都花在了阅读和理解已有代 ...

  9. vim插件和配置

    vim插件和配置 插件 pathogen 可以方便地管理vim插件 在没有pathogen的情况下,vim插件的文件全部都放在.vim目录,卸载插件很麻烦,pathogen可以将不同的插件放在一个单独 ...

随机推荐

  1. jquery的工具方法isFunction/isArray/isWindow/isNumeric/isPlainObject/isEmptyObject

    isFunction : 是否函数 isArray : 是否数组 isWindow : 是否window isNumeric : 是否数字 type : 数据类型方法 isPlainObject : ...

  2. oracle小知识总结

    1,表列的五种约束 not null, unique,primary key, foreign key, check 2,权限分配 grant 权限 on 表 to 用户 3,表和视图的区别 视图是一 ...

  3. VS2013使用EF6与mysql数据库

      您的项目引用了最新实体框架:但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧   在vs2013中使用mysql连接entityFramework经常会遇到这个问题 ...

  4. 尝试HTML + JavaScript 编写Windows App

    一直以来博文中使用最多的就是C# + XAML.进入Windows App时代,又多了一对 Javascript + HTML组合,这对于Web开发的程序员来说再熟悉不过了.其实小编也做过几年的Web ...

  5. 您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧

    转载至: http://www.cnblogs.com/Imaigne/p/4153397.html 您的项目引用了最新实体框架:但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mys ...

  6. noi题库(noi.openjudge.cn) 1.7编程基础之字符串T21——T30

    T21:单词替换 描述 输入一个字符串,以回车结束(字符串长度<=100).该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写.现需要将其中的某个单词替换成另一个单词,并输出替 ...

  7. jboss:跟踪所有sql语句及sql参数

    默认情况下,hibernate/JPA 在server.log中记录的SQL语句,参数都是用?代替的,这样不太方便. 网上留传的p6spy在最新的jboss上(EAP 6.0+版本)貌似已经不起作用了 ...

  8. 利用writing-mode实现元素的垂直居中

    writing-mode是CSS3的新特性之一,使用场景不是很多.这个属性主要是改变文档流的显示方式.具体的介绍参考这篇文章:http://www.zhangxinxu.com/wordpress/2 ...

  9. PageRank算法简介及Map-Reduce实现

    PageRank对网页排名的算法,曾是Google发家致富的法宝.以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理. 一.什么是pagerank Pag ...

  10. opencv6.2-imgproc图像处理模块之图像尺寸上的操作及阈值

    接opencv6.1-imgproc图像处理模块之平滑和形态学操作,顺带说一句在opencv中的in-place操作就是比如函数的输入图像和输出图像两个指针是相同的,那么就是in-place操作了.比 ...