新vim配置文件
"******************************************************特殊设置**********************************************************
if strftime("%H") < "时间在7:00前
colorscheme guodesert
elseif strftime("%H") > "时间在19:00后
colorscheme guodesert
else "时间在7:00~19:00之间
colorscheme github
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"
"******************************************************特殊设置**********************************************************
syntax on "语法高亮
filetype indent on "文件类型侦测
filetype plugin on "文件类型插件启用
match OverLength /\%109v.\+/
"******************************************************选项设置**********************************************************
set autochdir "自动切换当前目录为当前文件所在的目录
set autoindent "插入模式下输入<cr>或使用"o"或"O"命令开新行,从当前行复制缩进距离
set cindent "使用C/C++的缩进方式缩进
set autoread "当文件在外部被修改时,自动重新读取
set autowrite "自动保存文件
set completeopt=preview,menu
set complete+=k "关键字补全,扫描 'dictionary' 选项给出的文件
"set comments "关键字补全,扫描 'dictionary' 选项给出的文件
set cursorline "突出显示当前行
set foldlevel= "设置折叠级别: 高于此级别的折叠会被关闭
set foldclose=all "设置为自动关闭折叠
set foldenable "开始折叠
set foldmethod=syntax "语法高亮项目指定折叠
set foldcolumn= "设置折叠区域的宽度,显示折叠列
set history= "命令的历史和最近搜索模式的历史被记住。本项决定分别记多少项历史
set hlsearch "搜索时高亮显示被找到的文本
set helplang=cn "设置帮助语言
set ignorecase "搜索模式里忽略大小写
set smartcase "搜索模式里包含大写字符,不使用ignorecase选项
set incsearch "输入搜索命令时,显示目前输入的模式的匹配位置。匹配的字符串被高亮
set iskeyword+=_,$,@,%,#,- "带有这些字符的单词不要被换行分割
set mousehide "在输入时隐藏鼠标指针,移动鼠标时恢复指针
set nocompatible "关闭vi兼容模式
set noexpandtab "不用空格展开<Tab>
set nosplitbelow "窗口的分割会把新窗口放到当前窗口之下
set nosplitright "窗口的分割会把新窗口放到当前窗口之右
set number "在每行前面显示行号
set numberwidth= "行号使用的最小列数
"set rulerformat =%65(%2*%<%=\最近修改:\ \%{strftime(\"%H:%M\",getftime(expand(\"%\")))}\ \|\ 光标:\ \%l\行\ %c%V\列\ \|\ 比例:%p%%%)
set rulerformat =%(%*%<%=\字符:\ \%b\ \|\ \修改:\ \%{strftime(\"%H:%M\",getftime(expand(\"%\")))}\ \|\ 光标:\ \%l\行\ %c%V\列\ \|\ \%Y\ \%M\ \%R\ %p%%\ \|\ 编号:\ \%n\%)
set scrolloff= "光标上下两侧最少保留的屏幕行数
set showcmd "在屏幕最后一行显示 (部分的) 命令
set showmode "在插入、替换和可视模式里,在最后一行提供消息
set showmatch "插入括号时,短暂地跳转到匹配的对应括号
set matchtime= "短暂跳转到匹配括号的时间
set shiftwidth= "(自动)缩进每一步使用的空白数目
"set smartindent "开启新行时使用智能自动缩进
set softtabstop= "执行插入时,<Tab>算作空格的数目,可以改为4
"set rtp+=/usr/lib/python3.6/site-packages/powerline/bindings/vim/ "启用powerline, laststatus=
set laststatus= "2总显示最后一个窗口的状态行,1窗口多于一个时显示最后一个窗口的状态行,0不显示最后一个窗口的状态行
set tabstop= "执行插入时,<Tab>算作空格的数目,可以改为4
set t_Co= "开启vim的256颜色支持
set textwidth= "设定文本的宽度为122个字符时自动断行
set virtualedit+=block "在可视模式下可以选择一个方块
set wrap "设置文本达到textwidth宽度时自动换行,但实际文件还是一行
set wildignore+=*.svn "文件名补全时忽略.svn
set wildmenu "'wildmenu'打开时,命令行补全以增强模式运行
set wildmode=list:full "用'widechar'指定的字符所用的补全模式
set visualbell
"set completeopt=longest,menu
"set nobackup "覆盖文件时不备份
"set writebackup "覆盖文件时自动备份
"set hidden "放弃时隐藏缓冲区
"set novisualbell "不使用可视响铃
"set backspace=2 "使用回格键
"set backspace=indent,eol,start "影响 <BS>、<Del>、CTRL-W和CTRL-U在插入模式下的工作方式
"set noswapfile "没有交换文件
"set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 "设置编码
"以下用的比较少,酌情选择
"set formatoptions+=q "描述自动排版如何进行的字母序列
"set formatoptions+=r
"set formatoptions+=n
"set formatoptions+=1
"set colorcolumn=+1
"set columns=108 "设置文本达到columns宽度时自动换行
"set list "让tab显示成>-------->--------
"set listchars=tab:>-,trail:-,extends:>,precedes:< "配合上边的语句完成
"set nowrap "设置文本达到textwidth宽度时不自动换行
"set sidescrolloff=5 "如果设置'nowrap',光标左右两侧保留的最少屏幕列数
"set sidescroll=2 "水平滚动时滚动的最少列数
"set background=dark "设置背景为暗色
"set cmdheight=2 "设定命令行的行数为1
"set cursorcolumn "突出显示当前列
"set undofile "持久撤销功能
"set ruler "显示状态栏标尺
set tags+=./tags
set tags=~/WORKM/ANDROID_SRC/
"******************************************************选项设置********************************************************** "******************************************************杂项设置**********************************************************
ab psvm public static void main "试试缩写好用吗
let NERDTreeQuitOnOpen=
let NERDTreeDirArrows=
let NERDTreeWinSize=
let NERDRemoveExtraSpaces=
let g:bufExplorerDisableDefaultKeyMapping =
let g:acp_behaviorKeywordCommand = "\<C-o>"
let g:acp_behaviorKeywordLength = -
let g:acp_behaviorFileLength = -
let g:SuperTabDefaultCompletionType = "<c-n>"
let g:SuperTabLongestHighlight =
let g:tagbar_sort=
let g:tagbar_compact=
let g:tagbar_foldlevel=
let g:tagbar_iconchars=['+', '-']
let OmniCpp_SelectFirstItem =
let OmniCpp_ShowPrototypeInAbbr =
let OmniCpp_MayCompleteScope =
"******************************************************杂项设置********************************************************** "======================================================跳转位置==========================================================
if has("autocmd") "打开文件时,自动跳转到光标最后所在的位置
au BufReadPost * if line("'\"") > && line("'\"") <= line("$")
\| exe "normal! g'\"" | endif
endif
"######################################################跳转位置########################################################## "======================================================添加注释==========================================================
"将键盘上的F10功能键映射为添加作者信息,版权声明,文件信息,代码说明等
map <F10> :call TitleDet()<cr> "添加文件信息
function AddTitle()
call append(,"/* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
call append(," * 作者代号: *** :guochaoxxl")
call append(," * 版权声明: *** :(魎魍魅魑)GPL3")
call append(," * 联络信箱: *** :guochaoxxl@gmail.com")
call append(," * 文档用途: *** :深入理解C指针")
"call append(4," * 文档用途: *** :数据结构与算法--C语言描述")
call append(," * 文档信息: *** :".expand("%:p:~"))
call append(," * 修订时间: *** :".strftime("%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)"))
call append(," * 代码说明: *** :自行添加")
call append(," * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/")
endfunction "更新最近修改时间和文件名
function UpdateTitle()
normal m'
execute '/修订时间:/s@:.*$@\=strftime(": *** *%Y年第%W周 %m月%d日 %A %p%I:%M (%j天)")@'
normal ''
normal mk
execute '/文档信息:/s@:.*$@\=": *** :".expand("%:p:~")@'
execute "noh"
normal 'k
endfunction "判断前10行代码里面,是否有Last modified这个单词;
"如果没有,需要添加作者信息;
"如果有,只需要更新必要的信息即可;
function TitleDet()
let n=
"默认为添加
while n <
let line = getline(n)
if line =~ '^\ \ \**\s*\S*修订时间:\S*.*$'
"更新注释信息
call UpdateTitle()
return
endif
let n = n +
endwhile
"添加注释信息
call AddTitle()
endfunction "======================================================添加注释========================================================== "======================================================编译运行==========================================================
"通过键盘F9映射快速实现编译与运行
map <F9> :call CompileRun()<cr>
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 "======================================================编译运行========================================================== "######################################################自动补全##########################################################
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap } {}
: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 function CloseLPair(char)
"if getline('.')[col('.') - 1 ] == a:char
if getline('.') == a:char
return "\<Left>"
else
return a:char
endif
endfunction
"######################################################自动补全########################################################## "====================================================##按键映射==========================================================
map e ea
"map e ea "移动到单词结尾时就自动进入插入模式
"map + <C-w>+ "增减窗口尺寸
"map _ <C-w>-
map + <C-w>< "增减窗口尺寸
map _ <C-w>>
map <silent> <F2> :NERDTreeToggle<cr> "tarbar functon list
map <silent> <F3> :TagbarToggle<cr> "header and implement file switch
map <F4> :A<cr> "update index
map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<cr><cr>:cs kill cscope.out<cr>:!cscope -Rb<cr><cr>:cs add cscope.out<cr> "switch display invisable ch ar or not
map <F6> :set list!<cr>:set list?<cr> "highlight
map <F7> ms:%s /\<<C-R>=expand("<cword>")<CR>\>//gn<cr>` "swapfile list
map <silent> <F8> :BufExplorer<CR> "comment visual line
nmap <C-[>g :cs find g <C-R>=expand("<cword>")<CR><CR> "list the funcion called by this function
nmap <C-[>d :cs find d <C-R>=expand("<cword>")<CR><CR> "list the position where to call this word
nmap <C-[>c :cs find c <C-R>=expand("<cword>")<CR><CR> "search word in the project
nmap <C-[>s :cs find s <C-R>=expand("<cword>")<CR><CR> "search word in the project and the word can be in text
nmap <C-[>t :cs find t <C-R>=expand("<cword>")<CR><CR> "search word in the project and the word can be in text, support regex
nmap <C-[>e :cs find e <C-R>=expand("<cword>")<CR><CR> "list the file which filename is this word
nmap <C-[>f :cs find f <C-R>=expand("<cfile>")<CR><CR> "list the file include the file which filename is this word
nmap <C-[>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<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-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('.')) < ) ? 'zc' : 'zo')<CR>
vnoremap <silent> , :call NERDComment(, "alignLeft")<cr> "uncomment visual line
vnoremap <silent> . :call NERDComment(, "uncomment")<cr> "show list if more tag if has("cscope")
set nocsverb
if filereadable("cscope.out")
cs add cscope.out
endif
endif
"======================================================按键映射==========================================================
可以参考思路,自己再次实现。
新vim配置文件的更多相关文章
- Vim配置文件
转载 原文网址:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim ...
- 转载~vim配置文件
转载自:小码哥的博客 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C.C++.java代码以及执行shell脚本,按“F8”可进行C. ...
- 【转】强大的vim配置文件,让编程更随意
原文地址:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主 ...
- [转]强大的vim配置文件,让编程更随意
转自:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有 ...
- vim 配置文件 ,高亮+自动缩进+行号+折叠+优化
vim 配置文件 ,高亮+自动缩进+行号+折叠+优化 将一下代码copy到 用户目录下 新建文件为 .vimrc保存即可生效: 如果想所有用户生效 请修改 /etc/vimrc (建议先cp一份)& ...
- 强大的vim配置文件,让编程更随意
花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C.C++.java代码以及执行shell脚本,按“F8”可进行C.C++代码的调试 2. ...
- 强大的vim配置文件,让编程更随意 (转载)
花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C.C++.java代码以及执行shell脚本,按“F8”可进行C.C++代码的调试 2. ...
- 强大的vim配置文件,让编程更随意(转)
欢迎来到小码哥的博客 博客搬家啦 blog.ma6174.com 强大的vim配置文件,让编程更随意 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有以下优点: 1.按F5可以直 ...
- Vim 配置文件===/etc/vimrc
1.替换方法 替换对应的vimrc文件,定制自己的vimrc /etc/vimrc 替换此文件: /home/lmy/.vimrc 只对当前用户有效: Ubuntu9 ...
随机推荐
- 187 Repeated DNA Sequences 重复的DNA序列
所有DNA由一系列缩写为A,C,G和 T 的核苷酸组成,例如:“ACGAATTCCG”.在研究DNA时,识别DNA中的重复序列有时非常有用.编写一个函数来查找DNA分子中所有出现超多一次的10个字母长 ...
- 工作记录:JS正则表达式 angularjs ng-if ng-show ng-switch
用了一下JS 正则表达式判断密码,很简单 学习了angularjs的ng-if ng-show ng-switch的区别并使用 https://www.cnblogs.com/54td/p/59743 ...
- [Luogu1848][USACO12OPEN]书架Bookshelf DP+set+决策单调性
题目链接:https://www.luogu.org/problem/show?pid=1848 题目要求书必须按顺序放,其实就是要求是连续的一段.于是就有DP方程$$f[i]=min\{f[j]+m ...
- vue--组件中的自定义事件
父组件通过props向子组件传递数据,子组件通过自定义事件向父组件传递信息. 在子组件中通过$emit触发事件,父组件在直接使用子组件的地方使用v-on(即@)来监听子组件触发的事件. 举例:(不知道 ...
- 迅为双核imx6DL核心板_ARM定制专家_Cortex SATA 千兆网 4G GPS
核心板参数 尺寸:51mm*61mm CPU:Freescale Cortex-A9 双核精简版 i.MX6DL,主频 1.2 GHz 内存:1GB DDR3 存储:8GB EMMC 存储 EEPRO ...
- [安卓开发板]迅为IMX6 四核Android开发板
工业级核心板-Android开发板 10层高速PCB设计,充分保证电磁兼容 处理器:开发板默认是四核商业扩展级芯片,可根据用户需求更换单核.双核.工业级.汽车级处理器,批量更省成本. 扩展引脚:320 ...
- wifi钓鱼之--Pumpkin
无线钓鱼 前言:请准备一块rt3070的外接网卡 Pumpkin是一款无线安全检测工具WiFi-Pumpkin的使用,利用该工具可以伪造接入点完成中间人攻击,同时也支持一些其它的无线渗透功能.旨在 ...
- 布尔上下文,这里misreading返回的是来源列表中元素的个数,如果列表中2个值都是undef,则列表元素个数是1: while( $misreading = (my $test_consideration, my $english_pragma) = each %map_function){
布尔上下文,这里misreading返回的是来源列表中元素的个数, 列表赋值运算的值将会是来源列表中元素的个数,空列表表示0,如果列表中2个值都是undef,则列表元素个数是1 布尔上下文,这里mis ...
- linux内核中GNU C和标准C的区别
linux内核中GNU C和标准C的区别 今天看了一下午的linux内核编程方面的内容,发现linux 内核中GNU C与标准C有一些差别,特记录如下: linux 系统上可用的C编译器是GNU C编 ...
- PHP明细之间的关联和having进行分组,不推荐这样做,只是做为偷懒的办法
-- 只求和wrt的数据,其它数据保持不变!SELECT A.return_id,A.relevant_id,A.order_id,A.deliver_order_id,A.product_id,A. ...