继续之前的vim小节,在对vim和vi有了初步认识之后,真心的觉得vim比什么eclipse,aptana,dreamweaver之类牛逼太多。虽然刚开始上手难受了一点,虽然现在有些时候还会被一些小问题纠结住,但总的使用了一周后感觉良好。
下面把配置文件再扔出来一次:
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\ ' . arg3 . eq
endfunction
"配色
colorscheme slate
"字体
set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI
"行号,行号栏目宽度
set nu
set numberwidth=2
"tab长度
set tabstop=2
"自动对齐
set autoindent
"语法高亮
syntax on
"设置gbk字符会有编码问题,设置字符集
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
"行间距
set linespace=2
"<>调整缩进时的长度
set shiftwidth=2
"初始化窗口宽度高度
set columns=150
set lines=30
"初始化窗口位置
winpos 52 42
"禁止自动换行
set nowrap
"在输入命令时列出匹配项目
set wildmenu
"显示光标位置
set ruler
"分割窗口保持相等宽高
set equalalways
"匹配括号规则,增加html的<>
set matchpairs=(:),{:},[:],<:>
"让退格,空格,上下箭头遇到行首位自动移到下一行(包括insert模式)
set whichwrap=b,s,<,>,[,]
"取消自动备份
set nobackup
"关闭文件之前保留一个备份
set writebackup
"js语法高亮脚本
let g:javascript_enable_domhtmlcss=1
"光标准星
set cursorline
hi cursorline guibg=NONE gui=underline
set cursorcolumn
hi cursorcolum gui=underline
"自动修改
set autoread
"不明字体宽度,按照double的来
set ambiwidth=double
"打开javascript折叠
"
setlocal foldlevel=1
let g:tlist_javascript_settings = 'javascript;s:string;a:array;o:object;f:function;m:member'
let b:javascript_fold=1 "开启折叠
"自动补齐括号等
:inoremap ( ()i
:inoremap ) =ClosePair(')')
:inoremap { {}O
:inoremap } =ClosePair('}')
:inoremap [ []i
:inoremap ] =ClosePair(']')
:inoremap " ""i
:inoremap ' ''i
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "/"
else
return a:char
endif
endfunction
"自动补齐html"
function! InsertHtmlTag()
let pat = '\c<\w\+\s*\(\s\+\w\+\s*=\s*[''#$;,()."a-z0-9]\+\)*\s*>'
normal! a>
let save_cursor = getpos('.')
let result = matchstr(getline(save_cursor[1]), pat)
"if (search(pat, 'b', save_cursor[1]) && searchpair('<','','>','bn',0, getline('.')) > 0)
if (search(pat, 'b', save_cursor[1]))
normal! lyiwf>
normal! a<!-- normal! p normal! a-->
endif
:call cursor(save_cursor[1], save_cursor[2], save_cursor[3])
endfunction
inoremap > :call InsertHtmlTag()a
"半透明设置"
au GUIEnter * call libcallnr("vimtweak.dll", "SetAlpha", 234)
"git 配置"
set laststatus=2
set statusline=%{GitBranch()}
command Gogm cd E:\apache\htdocs\gm\
看注释就明白了,简单说一下目前我觉得足够用的功能,其实都是想到了现google搜的,全部解决。然后在淘宝师傅给我的vim键盘表也排上了用场,这里也要谢谢猥琐的师傅啊……- -
简单说一下,之前用aptana主要是使用他得js,css,html代码提示功能。在vim里,用ctrl+n和p其实是可以直接调用的,牛逼的是提示不区分语言,而是从缓存里直接去读,甚至目录,我当时就被震惊了……这尼玛还要什么代码提示,先开一个jquery源文件,然后再写jq代码,确实是爽的不行,之后又安装了自动弹出提示的插件,感觉比那半残的aptana不知道好多少……。
然后是自定义的命令使用,每次打开vim都要cd一堆到我的工作目录,然后再开启目录树那个NERDTree插件,后来编辑了直接cd到目录的快捷命令,方便很多了,再之后调用bat脚本,直接!强制执行就OK了……更是便捷……再最后,增加括号补全,自动保存,一些颜色配置等,视觉效果比aptana牛逼多了,而且半透明的界面有时候还可以边抄边写代码。。。真是不错- -||
最后在aptana下有一个localstore,是我比较喜欢的,最后在vim下安装了git-vim插件,再也不用开bash界面了,再也不用再bash界面看恶心的diff了。。真是……而且也强迫了我把gitpro前面入门的章节看完了。。- -|| 总之 store的东西也就这样解决了~
周末用vim正则帮媳妇处理文本,1800多个ctrl+v,c,十几分钟就被搞定了……
我知道vim还有很多更强大的命令,期待以后慢慢挖掘……耶,哥终于转型vimer了……~发个文章,庆祝一下,而且新到的《学习vi,vim编辑器》也送到了~灭哈哈O(∩_∩)O~等着哥的读书笔记吧。