gvim 配置

GVIM在今天早上算是做好了最基本的配置,可以拿来写代码做算法题了。上次说到不知道配色文件在哪里配置=,=, 其实这是个小白问题,就在 /usr/share/vim/vim71/colors下面(vim71需要对你安装的gvim版本)。
Netbeans的中文显示问题,也算解决了,具体见下帖 : 
安装日文支持以后NetBeans界面的字符乱码。当然,实际上跟日文支持是没有关系的。Netbeans的中文显示问题有很多解决方案,而且并非全部都很有效,所以碰到的话,还是需要都尝试一下。
尽管搞定了中文显示问题,但是netbeans下面的字体显示仍然非常难看,google了下ubuntu中文社区,据说可以通过修改配置文件完成。目前对linux的文件配置机制还不是很熟悉,而且主要还是用gvim来编码,因此把这个问题先暂且搁下。留下一个链接,方便以后解决:
[问题][Netbeans] JRE[英文]字体配置问题
继续转强帖:
makefile编写
两篇很牛的vim使用技巧(1)
两篇很牛的vim使用技巧(2)

最后分享一下我的gvim配置文件和配色文件代码。
Update at 2010.Apr.13: 这两个文件因为会经常修改,我自己使用的最新版本将会放在DropBox上,随时供需要的人下载。也请路过的大牛多多指教。Download via 
.vimrcctw.vim

ps. 如果下载后的配置文件中有^M字符,可以在gvim的命令模式下用下面这个命令来清除

  1. :%s/[Ctrl-v][Enter]//g
下载:  .vimrc
  1. " $HOME/.vimrc
  2. " Collected and modified by CTW
  3.  
  4. " Basics {
  5.     " 关闭兼容模式
  6.     set nocompatible
  7.    
  8.     " 设定文件浏览器目录为当前目录
  9.     set bsdir=buffer
  10.     set autochdir
  11.    
  12.     " 设置编码
  13.     set enc=utf-8
  14.    
  15.     " 设置文件编码检测类型及支持格式
  16.     set fencs=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
  17.    
  18.     " 指定菜单语言
  19.     set langmenu=zh_CN.UTF-8
  20.     source $VIMRUNTIME/delmenu.vim
  21.     source $VIMRUNTIME/menu.vim
  22.    
  23.     " 与windows共享剪切板
  24.     set clipboard+=unnamed
  25.    
  26.     " 键盘操作
  27.     map <up> gk
  28.     map <down> gj
  29.  
  30.     " 开放光标移动
  31.     set whichwrap=b,s,< ,>,[,]
  32.  
  33.     " 命令行高度
  34.     set cmdheight=1
  35.    
  36.     " 中文帮助
  37.     if version > 603
  38.     set helplang=cn
  39.     endif
  40.  
  41.     " 增强检索功能
  42.     set tags=./tags,./../tags,./**/tags
  43.    
  44.     " 保存文件格式
  45.     set fileformats=unix
  46. " }
  47.  
  48.  
  49. " Visual {
  50.     " 设置配色文件
  51.     colo ctw
  52.  
  53.     " 设置开启语法高亮
  54.     syntax on
  55.  
  56.     " 设置初始窗体行数列数
  57.     set lines=36
  58.     set columns=124
  59.  
  60.     " font
  61.     set guifont=Monaco
  62.  
  63.     " 查找结果高亮度显示
  64.     set hlsearch
  65.    
  66.     " tab宽度
  67.     set tabstop=4
  68.     set cindent shiftwidth=4
  69.     set autoindent shiftwidth=4
  70.     " }
  71.  
  72.     " Autocommands {
  73.     " Enable load plugin files
  74.     filetype plugin on
  75.  
  76.     " 自动补全
  77.     filetype plugin indent on
  78.  
  79.     " 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示
  80.     if has("autocmd")
  81.        autocmd FileTypexml,html,c,cs,java,perl,shell,sh,bash,cpp,python,vim,php,ruby set number
  82.        autocmd FileType xml,html vmap <c -o> <esc>'<i <!--<ESC>o<esc>'>o-->
  83.        autocmd FileType java,c,cpp,cs vmap <c -o> <esc>'<o /*<ESC>'>o*/
  84.        autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,pythonsetlocal textwidth=100
  85.        autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim
  86.      " Error happend, repair needed
  87.      " autocmd BufReadPost *
  88.      "    / if line("'/"") > 0 && line("'/"") < = line("$") |
  89.      "    /   exe "normal g`/"" |
  90.      "    / endif
  91.     endif " has("autocmd")
  92.    
  93.     " 自动完成
  94.     autocmd FileType python set omnifunc=pythoncomplete#Complete
  95.     autocmd FileType javascrīpt set omnifunc=javascrīptcomplete#CompleteJS
  96.     autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
  97.     autocmd FileType css set omnifunc=csscomplete#CompleteCSS
  98.     autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
  99.     autocmd FileType php set omnifunc=phpcomplete#CompletePHP
  100.     autocmd FileType c set omnifunc=ccomplete#Complete
  101.      autocmd FileType java set omnifunc=javacomplete#Complete
  102.     " auto complete
  103.     " inoremap } }<esc>: <cr>O
  104. " }
  105.  
  106. " C/C++ Programming {
  107.     " C/C++注释
  108.     set comments=://
  109.    
  110.     " Enable OmniCppComplete
  111.     set nocp
  112.     set completeopt=menu
  113.  
  114.     " Config OmniCppComplete
  115.     " autocomplete with .
  116.     let OmniCpp_MayCompleteDot = 1 
  117.     " autocomplete with ->
  118.     let OmniCpp_MayCompleteArrow = 1
  119.     " autocomplete with ::
  120.     let OmniCpp_MayCompleteScope = 1 
  121.     " select first item (but don't insert)
  122.     let OmniCpp_SelectFirstItem = 2
  123.     " search namespaces in this and included files
  124.     let OmniCpp_NamespaceSearch = 2 
  125.     " show function prototype (i.e. parameters) in popup window
  126.     let OmniCpp_ShowPrototypeInAbbr = 1
  127.  
  128.     " Add STL tags
  129.     set tags+=~/.myTags/stl.tags
  130.  
  131.     " 修正自动C式样注释功能 &lt;2005/07/16>
  132.     set comments=s1:/*,mb:*,ex0:/
  133.  
  134.     " 临时:使用pthread的C源代码的编译
  135.     map <f4> :call PTHCompileRunGPP()<cr>
  136.     func! PTHCompileRunGPP()
  137.     exec "w"
  138.     exec "!gcc -D_REENTRANT % -o %< -g -lpthread"
  139.     endfunc
  140.  
  141.     " C的编译和运行
  142.     map <f5> :call CCompileRunGpp()</cr><cr>
  143.     func! CCompileRunGpp()
  144.     exec "w"
  145.     exec "!gcc % -o %< -ansi -g -Wall "
  146.     endfunc
  147.    
  148.     " C++的编译和运行
  149.     map <f6> :call CPPCompileRunGpp()</cr><cr>
  150.     func! CPPCompileRunGpp()
  151.     exec "w"
  152.     exec "!g++ % -o %< -ansi -g -Wall "
  153.     endfunc
  154.  
  155.     " CTags
  156.     set completeopt=longest,menu
  157.  
  158.     " TagList
  159.     " 按照名称排序
  160.     let Tlist_Sort_type = "name"
  161.    
  162.     " 如果只有一个Buffer,kill窗口时也kill掉buffer
  163.     let Tlist_Exit_OnlyWindow = 1
  164.  
  165.     " 只显示一个文件的Tag
  166.     let Tlist_Show_One_File=1
  167.    
  168.     " Tlist Auto Open
  169.     let Tlist_Auto_Open=1
  170.  
  171. " }

Read the rest of this entry »

DropBoxgvimnetbeansUbuntuvimrc

1 Comment

vim括号自动完成

今天早上脑子很乱,从8点钟起床到10:30都不知道自己干了什么事情……
想起下午还有比赛,于是想找点水题做做,练练手感。
在写2120的时候突然想给Gvim弄个map auto complete的功能,于是去网上搜了下代码,发现有好几个版本。其中有一个是传说中的最强vim配置,已经久仰大名了,于是知道相关的那段代码,“拿来主义”了一下,再稍微修改了点,用用还是比较满意。
贴下代码,具体的机制我不是很清楚,好像就是如果输入字符匹配了的话,自动执行inoremap后的命令吧,跟宏有点像。熟悉vim命令的coder应该都大致能看明白什么意思。

  1. " map auto complete
  2. inoremap ( ()<esc>:let leavechar=")"<cr>i
  3. inoremap [ []<esc>:let leavechar="]"<cr>i
  4. inoremap { {<esc>o}<esc>:let leavechar="}"<cr>O
  5. "inoremap { {}<esc>:let leavechar="}"<cr>i
  6. inoremap ' ''<esc>:let leavechar="'"<cr>i
  7. inoremap " ""<esc>:let leavechar='"'<cr>i
  8. au BufNewFile,BufRead *./(vim/)/@! inoremap " ""<esc>:let leavechar='"'<cr>i
  9. au BufNewFile,BufRead *./(txt/)/@! inoremap ' ''<esc>:let leavechar="'"<cr>i
  10. imap <m-l> <esc>:exec "normal f" . leavechar<cr>a
  11. imap <d-l> <esc>:exec "normal f" . leavechar<cr>

弄好后,我还想再实现这样的宏,就是一对中间没有内容的括号,删除左边的那个括号时,自动删除右边那个,不过我还没找到可以参考的代码。就先这样用着吧,有空上社区问问。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值