`
lovecontry
  • 浏览: 1037747 次
文章分类
社区版块
存档分类
最新评论

[经验总结]Windows上的Vim配置文件

 
阅读更多

" vim 配置文件
colorschememorning" 09/07/18 早上颜色不错
setshiftwidth=4
settabstop=4
setexpandtab
"set gfn=FreeMono/ 12
"set fileencoding=utf-8

" set encoding=cp936

" 为了显示utf-16的文本,将encoding改为utf-809/10/28
" set encoding=utf-8 改成utf-8有危险,普通cp936编码的打不开,因编码转换失败而清空文件内容

" 发信人: WaterMonster (水怪), 信区: VIM
" 标题: Re: windows下乱码解决之法
" 发信站: 水木社区 (Sun Jan 24 14:48:48 2010), 站内
" 补充一下,这个办法对于gvim 的windows下还少了一些,可以看到菜单,文本都是中文的
" 但提示语言还是乱码,所以要加上language messages zh_cn.utf-8

" WaterMonster的方法不好使 [10/01/02 thinkhy]
" Window下打开Utf-8的方法暂时还没找到 找到了,安装fencview.vim插件 [10/02/04 thinkhy]

setencoding=chinese
settermencoding=chinese
setfileencoding=utf-8
setfileencodings=ucs-bom,utf-16,utf-8,cp936,gb18030,big5,euc-jp,sjis,euc-kr,ucs-2le,latin1

"set langmenu=zh_CN.utf-8
source$VIMRUNTIME/delmenu.vim
source$VIMRUNTIME/menu.vim
"language message zh_cn.utf-8



"autocmd BufReadPre *.xml :set encoding=utf-16
"language message zh_CN.UTF-8
setfileencodings=ucs-bom,utf-16,uork/经典/客户/上海世纪/汉语新词典tf-8,cp936,gb18030,big5,euc-jp,sjis,euc-kr,ucs-2le,latin1


setawa
setai
setshowcmd
setnocompatible
setruler
setacd" automatically change directory.

" 去掉烦人的编辑提示
setnobackup
setwritebackup
setnoswf " 去掉烦人的交换文件. 09/11/06 thinkhy
"set backupskip

" set isk="@,48-57,_,128-167,224-235,〗,〖"这个设置没成功,暂不清楚原因。 09/11/20 thinkhy

" [Added by thinkhy 10/01/15]
" 不让会话文件所在的目录会成为当前目录,保证mksession后能正确打开文件
setssop-=sesdir

" [Added by thinkhy 10/04/02]
" 文件补全时不做反斜扛替换
setshellslash

syntaxenable
setcindent

inoremap<CR><ESC>
inoremap<CR><ESC>

nmap<Space>o<ESC>
nmap<F2>:w<CR>
imap<F2><ESC>:w<CR>

nmap<F3><C-w>w
imap<F3><ESC><C-w>w

nmap<F4><C-w>c
imap<F4><ESC><C-w>c


" 改变窗口大小
map<Down><ESC>:winc-<CR>
map<Up><ESC>:winc+<CR>
map<Left><ESC>:winc<<CR>
map<Right><ESC>:winc><CR>

" 改变编辑窗口
map<M-k><ESC><C-w>k
map<M-j><ESC><C-w>j
map<M-n><ESC><C-w>h
map<M-l><ESC><C-w>l

" 在多个文件中grep当前光标下的单词 090323 thinkhy
" 加上java文件 [09/10/22 thinkhy]
" 加js文件 [09/01/19 thinkhy]
mapgr:vimgrep <cword>*.cpp *.c *.h *.java *.js *.rc<CR>
mapgR:vimgrep <cword>**/*.cpp **/*.c **/*.h *.java *.js *.rc<CR>

" map两个最常用的操作 系统剪贴板的复制粘贴[10/03/10 thinkhy]
nmap<c-k>"+p
vmap<c-k>"+p
imap<c-k><c-r>+

noremap<c-y>"+y
" map <C-y> <ESC>"+ya


" 命令模式映射
" 1 建立C++工程的tags文件
" cmap ctags !ctags -R --kinds-c++ --fields=+iaS --extra=+q --language-force=c++


autocmdFileTypec,cpp,h,xml,xsd,xsl:setlocaltabstop=4expandtab
autocmdFileTypec,cpp,h :let@g='vimgrep // *.c *.cpp *.h'
autocmdFileTypexml:let@h='<?xml version="1.0" encoding="utf-8"?> '
autocmdFileTypexml,html:nmap<F12>:%!xmllint --format %<CR>
autocmdFileTypexml,html:imap<F12><ESC>:%!xmllint --format %<CR>

" 书版 09/10/30 thinkhy
autocmdBufNewFile,BufRead*.fbd:syntax on runtime! syntax/fbd.vim
"au Syntax fbd runtime! syntax/fbd.vim



" 设置用于lookup插件的filetags
letg:LookupFile_TagExpr='"filenametags"'

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Code Tags
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" MFC tags And Windows API tags
autocmdFileTypec,cc,cpp,h:setlocaltags+=d:/work/tags/mfc/tags

" wine 模拟windows内核代码
autocmdFileTypec,cc,cpp,h:setlocaltags+=d:/work/tags/winapi/windows/tags

" XTP控件源代码
autocmdFileTypec,cc,cpp,h:setlocaltags+=d:/work/tags/third_part/tags
autocmdFileTypec,cc,cpp,h:setlocalpath=.,D:/work/tags/mfc/include,D:/work/tags/winapi/Include_HY,D:/work/tags/third_part

" WEB代码直接
autocmdFileTypejavascript,html,htm:settags+=d:/work/tags/WebKit/tags


"***************************************************************************
" For Plugin
"""""""""""""""""""""
" 1> Taglist
"""""""""""""""""""""
letTlist_Show_One_File=1
letTlist_Exit_OnlyWindow=1
nmap<F8>:TlistToggle<CR>
imap<F8><ESC>:TlistToggle<CR>

"""""""""""""""""""""
" 2> A
"""""""""""""""""""""
nmap<F7>:A<CR>
imap<F7><ESC>:A<CR>

"""""""""""""""""""""
" 3> lookupfile
"""""""""""""""""""""
letg:LookupFile_MinPatLength=3" 最少输入3个字开始匹配
letg:LookupFile_PreserveLastPattern=3" 不保存上次查找的字符串
letg:LookupFile_PreservePatternHistory=1" 保存查找历史
letg:LookupFile_AlwaysAcceptFirst=1" 回车打开第一个匹配项目
letg:LookupFile_AllowNewFiles=0" 不允许创建不存在的文件

" lookup file with ignore case
function! LookupFile_IgnoreCaseFunc(pattern)
let_tags=&tags
try
let&tags=eval(g:LookupFile_TagExpr)
letnewpattern='/c'.a:pattern
lettags=taglist(newpattern)
catch
echohlErrorMsg| echo"Exception: ". v:exception |echohlNONE
return""
finally
let&tags=_tags
endtry

" Show the matches for what is typed so far.
letfiles=map(tags, 'v:val["filename"]')
returnfiles
endfunction
letg:LookupFile_LookupFunc='LookupFile_IgnoreCaseFunc'
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""""""""""""""""""
" BufExplorer 09/07/18 在水木VIM版向flw收的技巧
"""""""""""""""""""""
nmapF:BufExplorer<CR>

"""""""""""""""""""""
" 4> miniBufexplore 这个插件不好用,暂时撤掉 09/11/26
"""""""""""""""""""""
" let g:miniBufExplMapWindowNavVim = 1
" let g:miniBufExplMapWindowNavArrows = 1
" let g:miniBufExplMapCTabSwitchBufs = 1
" let g:miniBufExplModSelTarget = 1

""""""""""""""""""""""""
" 发信人: SKPotti (冰封?晚饭无助), 信区: VIM
" 标题: Re: 请问大家能用VIM打开附件中的文件吗?
" 发信站: 水木社区 (Wed Feb3 12:10:39 2010), 站内

" fencview.vim
" 解决大部分的编码问题
" enc建议设成utf-8

" 感谢SKPotti,帮我解决了Windows里打开utf-8的问题
" 但utf-16的问题仍然没解决
" : FencAutoDetect
letg:fencview_autodetect=1





"************************************************************************
" 在水木收的一些技巧
">=================================================
">=================================================
" [ Added by thinkhy 2010年 01月 02日 星期六 19:54:24 CST]
" 水木VIM版15322贴
"发信人: flw (梨花小蓓蕾), 信区: VIM
"标题: 分享几个我自认为比较得意的自定义快捷键
"发信站: 水木社区 (Mon Dec 28 10:34:46 2009), 站内

" 换标签页
nmap<C-N>:tabnext<CR>
nmap<C-P>:tabprev<CR>

" 换窗口
nmap<silent><TAB><c-w>w:set cursorline<CR>:100sl m<CR>:set nocursorline<CR>
nmap<silent><S-TAB><c-w>p:set cursorline<CR>:100sl m<CR>:set nocursorline<CR>

function! HelpHelper(where )
" 先拿下光标下的文字
letl:word=expand("<cWORD>")

" 再取出疑似函数名/模块名的部分和疑似方法的部分
" /([_a-zA-Z0-9:]/+/)/(->/([_a-zA-Z0-9]/+/)/)/?
letl:lists=matchlist(l:word, "//([_a-zA-Z0-9:]//+//)//(->//([_a-zA-Z0-9]//+//)//)//?")

letl:name=l:lists[1]
letl:method=l:lists[3]

letl:progList=[]

if&ft=="perl"
ifmatch(l:name, "::")!=-1
" 函数里是不可能有 :: 的,不用想了,一定是模块
letl:progList+=[ [ "perldoc -u ", "pod"] ]
elseifstrlen(l:method )
" 有方法的,一定是模块了
letl:progList+=[ [ "perldoc -u ", "pod"] ]
elseifmatch(l:name, "[A-Z]")!=-1
" 有大写字母,那一定是模块了,Perl buildin 函数的名称全都是小写字母的
letl:progList+=[ [ "perldoc -u ", "pod"] ]
else
" 剩下的,有可能是函数,也有可能是模块,
" 但是考虑到这样的模块较少,因此先优先查函数
letl:progList+=[ [ "perldoc -u -f ", "pod"], [ "perldoc -u ", "pod"] ]
endif
endif

if&ft=="python"
letl:progList+=[ [ "python -c /"import sys; a = sys.argv[-1]; b = a.find('.') > -1 and 1 or 0; m = b == 1 and '.'.join(a.split('.')[:-1]) or a; exec( 'import '+m+';help('+a+')' )/" ", "man"] ]
endif

if&ft=="erlang"
ifmatch(l:name, ":")!=-1
" erlang 的模块方法
letl:lists=matchlist(l:name, "//([_a-zA-Z0-9:]//+//)://([_a-zA-Z0-9]//+//)")
letl:name=l:lists[1]
letl:method=l:lists[2]
endif
letl:progList+=[ [ "PAGER=/"col -b/" erl -man ", "man"] ]
endif

letl:progList+=[ [ "PAGER=/"col -b/" man 3 ", "man"] ]
letl:progList+=[ [ "PAGER=/"col -b/" man 2 ", "man"] ]
letl:progList+=[ [ "PAGER=/"col -b/" man ", "man"] ]

letl:found=0
" 下面调用外部命令,取帮助信息

" [Added by thinkhy 10/01/02]
if&ft=="vim"
echomsg"Iamvim"

try
execute" h ".l:word
catch/foo/
endtry

execute"wincmd p"

return
endif
" [End thinkhy]

forl:proginl:progList
letl:progName=l:prog[0]
letl:fileType=l:prog[1]
letl:cmd=l:progName.l:name
letl:lines=system(l:cmd )
if!v:shell_error
ifa:where==?"inNewTab"
tabe
elseifa:where==?"Vertical"
rightbelownew
else
abovenew
endif

setbuftype=nofile
setts=8
execute"set ft=".l:fileType
callappend(0, split(l:lines, "/n"))
normalgg
ifstrlen(l:method)" 跳转到方法
ifl:fileType=="pod"
" regex: /(=item/d*/s/+/)/@<= />
callsearch("//(=item//d*//s//+//)//@<=".l:method ."//>")
elseifl:fileType=="man"
" regex: /(^/s/+/)/@<=l:method/>
callsearch("//(^//s//+//)//@<=".l:method ."//>")
endif
endif

letl:found=1
break
endif
endfor

if!l:found
echohlErrorMsg| echomsg"^_^ 没有帮助信息。"| echohlNone
endif

endfunction

" vim 内打开 man/perldoc/erl -man/python help
autocmdFileTypec,perl,erlang,python,vimnmap<silent>K:call HelpHelper( "" )<CR>
autocmdFileTypec,perl,erlang,python,vimnmap<silent>gK:call HelpHelper( "InNewTab" )<CR>

分享到:
评论

相关推荐

    vim配置文件vim配置文件vim配置文件

    vim配置文件vim配置文件vim配置文件

    windows下vim配置文件

    windows下vim配置文件

    强大的vim配置文件

    强大的vim配置文件,强大的vim配置文件强大的vim配置文件强大的vim配置文件强大的vim配置文件

    vim 配置文件 vim 配置文件 vim 配置文件

    vim配置文件 vimrc vim配置文件 vimrc vim配置文件 vimrc

    vim配置文件,vim配置文件

    vim配置文件,vim配置文件

    vim配置文件

    Vim 配置文件。 支持ctags/cscope的配置。可以动态的进行代码的跳转高亮等

    vim配置文件目录

    自己的vim配置文件目录备份,包括git版本修改记录。使用方法,linux系统:解压后,运行INSTALL。Windows系统:解压后自行替换对应配置文件及目录。

    windows10下的vim配置文件_vimrc

    windows10下的vim配置文件_vimrc

    vim 配置文件

    强大的vim配置文件,可同时适用于linux和windows下的vim配置。 涵盖了所有主流插件的配置,常见的显示设置,编译命令的映射。 插件: ctags 代码跟踪 taglist 类视图 winmanager 文件视图 minibuffer 显示多文件...

    vim配置文件.vimrc完美配置

    vim配置文件.vimrc完美配置

    windows下vim配置文件python

    简洁vimrc配置,实现代码补全,自动执行脚本,只配置的python的

    .vimrc vim配置文件

    .vimrc 文件 vim配置文件 字体、颜色 各类插件 ------------ 具体配置步骤找寻相关博客 仅供参考

    vim配置文件(针对c和c++编程)

    1、该文件是csnd上被称为最新最强的配置文件上进行改进的。 2、原配置在编程中有如下缺点:小括号无法自动完成匹配;双引号和单引号无法跳出。 3、新配置加入了最新的auto-pairs插件,成功的解决了原版本的括号和...

    windows 下 vim 基础配置文件

    Vim 在 windows 环境下的初步配置 一.、下载工具包 vim 程序:下载安装程序 vim-plug 插件: 下载插件管理文件 二、 安装 VIM 1.如果无特别要求,一路选择默认, 在类型选择时,选择 full 2. 配置 vim-plug ...

    vim编辑器配置文件.vimrc

    该配置文件包含了设置行号、Tab...具体说明可以参考我的文章《【Linux成长之路基础篇:玩转vim(vi)编辑器】三大模式及命令介绍、如何通过配置文件.vimrc配置vim》第三章《三、vim配置文件.vimrc》里面有详细的介绍。

    vim配置文件.rar

    vim编辑器配置文件, 非常强大的vim开发环境配置,解压后将文件修改为_vimrc

    史上最NB的VIM配置文件

    史上最NB的VIM配置文件,具体用法请看配文件

    c,c++ vim配置文件

    vim开发C和C++的一般配置文件,添加语法高亮,添加自动换行,添加行号 只需要把这两个文件放到~/.vim/sybtax/文件夹下即可,没有的话新建 这样该用户的vim即配置完毕 注意:这不是全局配置,仅是用户配置

    强大的vim配置文件(最新整理)

    可以括号自动补全,自动缩进,语法高亮,允许鼠标定位代码,显示信息可以实现中文显示,F7可以实现编译运行,F8可以实现c,c++的代码调试。

Global site tag (gtag.js) - Google Analytics