VIM的囧插件vimim
作为一款历史悠久的编辑器,VIM拥有数量众多的脚本插件。山多出杂木,人多出怪物,今天我就遇到一个比较雷人的插件vimim。
这名字就够神奇,如果把它写成VimIM的话,就容易理解多了。这正是一个给Vim提供输入法的插件。按作者的说法,输入汉字再也不需要操作系统了,只要能显示,就能在Vim中输入。换作Emacs,倒还是可以考虑一下。现在这种状况,发一封邮件难道还要复制粘贴……确实是很囧
on February 6th, 2009 | 1 Comment »
作为一款历史悠久的编辑器,VIM拥有数量众多的脚本插件。山多出杂木,人多出怪物,今天我就遇到一个比较雷人的插件vimim。
这名字就够神奇,如果把它写成VimIM的话,就容易理解多了。这正是一个给Vim提供输入法的插件。按作者的说法,输入汉字再也不需要操作系统了,只要能显示,就能在Vim中输入。换作Emacs,倒还是可以考虑一下。现在这种状况,发一封邮件难道还要复制粘贴……确实是很囧
on February 6th, 2009 | 1 Comment »
曾经写过一个VIM的时间戳脚本,用于自动在源代码文件中添加和更新时间戳,也就是Last Change的注释。前段时间重新写.vimrc,把这个脚本又完善了一下,下载请点。
PS. 最近VIM又学到不少技巧。觉得最有用的:!grep可以把visual模式下选中的行用grep工具过滤。其次可以把ii设置成命令模式和插入模式的开关。少了遥远的<Esc>效率高好多,就算不清醒,这个命令也基本上是无害的。
function! TimeStamp(...)
let sbegin = ''
let send = ''
if a:0 >= 1
let sbegin = a:1.' '
endif
if a:0 >= 2
let send = ' '.a:2
endif
let pattern = sbegin . 'Last Change: .\+'
\. send
let pattern = '^\s*' . pattern . '\s*$'
let row = search(pattern, 'n')
let now = strftime('%Y-%m-%d %H:%M:%S',
\localtime())
let now = sbegin . 'Last Change: '
\. now . send
if row == 0
call append(0, now)
else
call setline(row, now)
endif
endfunction
au BufWritePre _vimrc,*.vim call TimeStamp('"')
au BufWritePre *.c,*.h call TimeStamp('//')
au BufWritePre *.cpp,*.hpp call TimeStamp('//')
au BufWritePre *.cxx,*.hxx call TimeStamp('//')
au BufWritePre *.java call TimeStamp('//')
au BufWritePre *.rb call TimeStamp('#')
au BufWritePre *.py call TimeStamp('#')
au BufWritePre Makefile call TimeStamp('#')
au BufWritePre *.php
\call TimeStamp('<?php //', '?>')
au BufWritePre *.html,*htm
\call TimeStamp('<!--', '-->')
on November 11th, 2008 | 2 Comments »
Except where otherwise noted, content on this blog is licensed under the following license:
Creative Commons Attribution-Noncommercial-Share Alike 2.5 China Mainland License