当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 9 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 贴几个自己写的vim配置
帖子发表于 : 2008-11-19 17:50 
头像

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
代码:
"查找选中文本
vnoremap <c-s> "zy/<c-r>=substitute(escape(@z,'[]*.\\/'),'\n', '\\n', 'g')<cr><cr><cr>

"递归向上级目录查找cscope数据库
if has("gui_running")
   if has("cscope")
      let s:MyCurDir = getcwd()
      let s:MyOldDir = s:MyCurDir

      while 1
         if filereadable("cscope.out")
            if 0 == cscope_connection(2, "cscope.out", s:MyCurDir)
               exec "silent! cs add cscope.out " . s:MyCurDir
            endif
"            exec "setlocal path=\"" . s:MyCurDir . "/**\""
"            setlocal cpt-=i
            break
         endif
         if s:MyCurDir =~ '^[a-zA-Z]:\\$'
            break
         endif
         cd ..
         let s:MyCurDir = getcwd()
      endwhile

      exec "cd " . s:MyOldDir . ""

   endif
else
   if has("cscope")
      let s:MyCurDir = getcwd()
      let s:MyOldDir = s:MyCurDir

      while 1
         if filereadable("cscope.out")
            if 0 == cscope_connection(2, "cscope.out", s:MyCurDir)
               exec "silent! cs add cscope.out " . s:MyCurDir
            endif
"            exec "setlocal path=\"" . s:MyCurDir . "/**\""
"            setlocal cpt-=i
            break
         endif
         if s:MyCurDir =~ '^/$'
            break
         endif
         cd ..
         let s:MyCurDir = getcwd()
      endwhile

      let s:MyOldDir = escape(s:MyOldDir,' ')

      exec "cd " . s:MyOldDir
   endif
endif

"浮动窗口显示tag, 需要gui, 有点小bug,有时会报错
if has('gui_running')
   set ballooneval
   set balloondelay=100
   set balloonexpr=MyTagDisplay()

   function! MyTagDisplay()
      if empty(tagfiles())
         return ''
      endif
      let s:MyTagShow = []
      let s:MyTaglist = taglist("^" . escape(v:beval_text,'\*.$^') . "$")
      for s:MyTag in s:MyTaglist
         if s:MyTag['cmd'] =~ '^/\^.*\$/$'
            let s:MyTagShow += [strpart(s:MyTag['cmd'],2,strlen(s:MyTag['cmd'])-4)]
         endif
      endfor
      return join (s:MyTagShow,"\n")
   endfunction
endif

"使用模板, 新建或打开空文件时自动调用模板
autocmd FileType perl
         \ if 1 == line('$') && empty(getline(1)) |
         \   if has('gui_running')      |
         \      0r D:/xxxxx/templates\pl.pl |
         \   else            |
         \      0r /xxxxx/templates/pl.pl |
         \   endif   |
         \   normal G |
         \ endif

autocmd FileType sh
         \ if 1 == line('$') && empty(getline(1)) |
         \   if has('gui_running')      |
         \      0r D:/xxxx\templates\shell.sh |
         \   else            |
         \      0r /xxxx/templates/shell.sh |
         \   endif   |
         \   normal G |
         \ endif

"查找包含符合特定模式的字符串的行数
function! MyCountMatchLine(MyRegMatch) range
   let matchCount = 0
   for LineNum in range(a:firstline,a:lastline)
      let LineContent = getline(LineNum)
      if LineContent =~ a:MyRegMatch
         let matchCount += 1
      endif
   endfor
   echo matchCount
endfunction

"查找符合特定模式的字符串的个数
function! MyCountPattern(MyRegMatch) range
   let matchCount = 0
   for LineNum in range(a:firstline,a:lastline)
      let LineContent = getline(LineNum)
      let MyLineTmp = substitute(LineContent, a:MyRegMatch, '', 'g')
      let matchCount -= strlen(substitute(MyLineTmp, "[^@]", '', 'g'))
      let MyLineTmp = substitute(LineContent, a:MyRegMatch, '@', 'g')
      let matchCount += strlen(substitute(MyLineTmp, "[^@]", '', 'g'))
   endfor
   echomsg matchCount
endfunction

"C语言注释和反注释,虽然有EnhancedCommentify,但还是习惯自己写的
"Uncomment
:nnoremap <buffer> <silent> <F2>uc :.s+\(// *\\|/\* *\\| *\*/\)++g<CR>:silent! .s/\|+/\/*/g<CR>:silent! .s/+\|/*\//g<CR>:noh<CR>
"Comment
:nnoremap <buffer> <silent> <F2>cm :silent! .s/\/\*/\|+/g<CR>:silent! .s/\*\//+\|/g<CR>:.s/^\(.*\)$/\/* \1 *\//<CR>:noh<CR>
"Uncomment sub-comment
:vnoremap <buffer> <silent> <F2>usubcm :s+/\@<=\*\@=\\|\*\@<=/\@=+ +g<CR>:noh<CR>
"Virtual comment
:vnoremap <buffer> <silent> * :<ESC>'<O<Home>/*<ESC>'>o<Home>*/<ESC>:silent! '<,'>s/\/\*/\|+/g<CR>:silent! '<,'>s/\*\//+\|/g<CR>:noh<CR>
"Virtual uncomment
:vnoremap <buffer> <silent> u* :s+\(/\*\\|\*/\)++<CR>:silent! '<,'>s/\|+/\/*/g<CR>:silent! '<,'>s/+\|/*\//g<CR>:noh<CR>
"Virtual Partially comment
:vnoremap <buffer> <silent> <F2>pcm xi/*  */<ESC>hhP


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 贴几个自己写的vim配置
帖子发表于 : 2008-11-19 19:50 

注册: 2008-10-30 17:02
帖子: 88
送出感谢: 0 次
接收感谢: 0 次
很好。收藏。
楼主能写个vim for python的配置吗?
或者能告诉,那里有学习写vim配置的资料吗?


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 贴几个自己写的vim配置
帖子发表于 : 2008-11-20 18:05 
头像

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
汗 不懂python Hacking vim不错 我以前发过 不过估计这种配置网上应该有吧


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 贴几个自己写的vim配置
帖子发表于 : 2008-11-20 18:44 

注册: 2008-10-30 17:02
帖子: 88
送出感谢: 0 次
接收感谢: 0 次
已经找到。
不是很合意。当然最大的原因,是自己水平不行。不是vim不够强大。
其实本意只是想找个人交流而已。
真要学习的话,根本不会到这里来。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 贴几个自己写的vim配置
帖子发表于 : 2008-11-20 19:01 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
怒赞 :em11


_________________
目前负债150多万


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 贴几个自己写的vim配置
帖子发表于 : 2008-11-20 19:53 
头像

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
是啊 学习还是要系统一些 我就是野的 用了这么久还是菜鸟


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 贴几个自己写的vim配置
帖子发表于 : 2008-11-20 21:40 

注册: 2008-10-30 17:02
帖子: 88
送出感谢: 0 次
接收感谢: 0 次
alinmn 写道:
是啊 学习还是要系统一些 我就是野的 用了这么久还是菜鸟

过谦了。我也是菜鸟。 :em01
有同感,学习是要系统一些。
说说,我用ubuntu和vim的感觉。
之所以开始学习python,当然是因为喜欢它。其次因为ubuntu的许多系统脚本都是用python写的。曾看见有贴子说,不能升级python到2.6,因为ubuntu比较依赖python。
vim写python还行,曾试过spe,emacs等写python。
各有优缺点。比较一下,自己选择了vim。
只是对它的一个脚本不太满意,按F8自动补全对象的方法属性等的。它是从头按字母顺序开始。而如果属性或方法是以w,x等字符开头会要找一大串。既浪费了时间,也不便捷。
其实,还真的挺怀念vs2005,在vs2005里学习c#的时候,对象的方法和属性自动补全十分方便。当然有它的副作用。
不过,我想,vim和emacs肯定也能实现。 :em09
或者有插件我没有找到,或者一些插件没有用全。
实在不行,自己学久了自己写一个。
所以,看到楼主自己写的配置,一时兴起,发了个帖子。

顺祝,楼主进步。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 贴几个自己写的vim配置
帖子发表于 : 2008-11-22 13:34 
头像

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
http://www.vim.org/scripts/script.php?script_id=1542
这个不知道是不是ls想要的


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 贴几个自己写的vim配置
帖子发表于 : 2008-11-23 19:37 

注册: 2008-10-30 17:02
帖子: 88
送出感谢: 0 次
接收感谢: 0 次
下载了,但是还没试。
对alinmn,表示感谢。
然后说一声再见。
昨天到朋友那里玩,他也装了ubunt系统,自己想查看一下cpu的信息,一时竟忘了用什么命令,而其实这在ubuntu的wiki入门中,都有。
深感,自己水平太低,想系统的学习一段时间lfs的学习。vim,和linux的基本系统的学习。
暂时,不泡论坛了。
等到自己能够制作了一个lfs在回来。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 9 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译