Published on
2009/11/24 by
harry.
Zen Coding? 其实我看下来有点类似snippet的代码模板,用来提高编码效率,但是 Zen Coding 是针对html编写的,可以用一系列快捷的方式生成html代码,从而提高编码的效率,并且感觉还挺有乐趣的。
比如可以用类似css选择器的语法来快速生成html,输入 div#header.content > ul > li*3 > a 就可以生成下面的html代码
<div class="content" id="header">
<ul>
<li>
<a href=""></a>
</li>
<li>
<a href=""></a>
</li>
<li>
<a href=""></a>
</li>
</ul>
</div>
介绍:
Zen Coding: A Speedy Way To Write HTML/CSS Code
里面有个 vimeo上的视频,需要翻墙看。。。
googlecode上有个zen-coding的项目,为一些编辑器开发了相关插件,不过似乎暂时没有Vim相关的插件。
我找到了另一个项目 Sparkup。
这是一个类似zen-coding的项目,主程序也是用Python开发,提供了一个vim的脚本。
使用方式也是很简单,下载后把sparkup这个文件放到用户目录下的bin目录里,然后按照里面vim/sparkup.vim里的注释来就行了。
也有视频演示,Youtube上的,所以也要翻墙 – -
如果是要在Windows下使用,我用py2exe将sparkup转换成exe了,然后把这个exe的所在目录加到环境变量里就能用了。
这个项目提供的那个vim脚本用起来要改vimrc,而且使用source方式,要考虑脚本的路径,我改了下,改成插件方式了,把下面的代码保存成 sparkup.vim 放到vim的plugin目录中就行。
还有我把快捷键改成 Ctrl + k 了,输入snippet后按下快捷键就能生成代码。
" Sparkup
" Installation:
" Put it in ~/.vim/plugin
"
autocmd FileType html,php call KeyMapping()
function! KeyMapping()
map <C-k> <Esc>:.!sparkup<Cr>:call SparkupNext()<Cr>
imap <C-k> <Esc>:.!sparkup<Cr>:call SparkupNext()<Cr>
"map <C-n> <Esc>:call SparkupNext()<Cr>
"imap <C-n> <Esc>:call SparkupNext()<Cr>
endfunction
function! SparkupNext()
" 1: empty tag, 2: empty attribute, 3: empty line
let n = search('><\/\|\(""\)\|^\s*$', 'Wp')
if n == 3
startinsert!
else
execute 'normal l'
startinsert
endif
endfunction
Published on
2008/12/21 by
harry.
我的系统是 debian 桌面环境是 gnome,用 gvim 的时候菜单栏一直都不显示,虽然不影响平时使用,不过有时候想用某个不常用的命令,到菜单里面去找下也很方便的。
今天搜了下,找到个解决办法。
就是打开 ~/.gnome2/Vim ,里面原来的内容是
[Placement]
Dock=Toolbar\\0,0,0,0\\Menubar\\0,0,0,0
把第二行改成
Dock=Toolbar\\0,1,0,0\\Menubar\\0,0,0,0
这样就行了。
Published on
2008/12/18 by
harry.
只要在 PYTHONPATH 中的程序,用Vim的时候就能够使用omni智能提示功能。
最近新学django,所以把用django-admin 生成的项目目录加入到PYTHONPATH,这样就能使用Vim的omni对这个项目里的模块实现代码提示功能了。
但是用了不久后,发现对某些模块操作时omni功能失效了- -,研究了一下发现是只要导入了django.db.models的模块,智能提示就会失效。
然后我在终端的python中单独导入django 的 models 模块,发现会有异常,原因是那个 django.db 里面会导入 django.conf.settings 对象,然后还会去设置他的属性,这一下就玩完了,因为那里面会检查系统的 DJANGO_SETTINGS_MODULE 值,可以在django/conf/__init__.py中的LazySettings这个类里看到,如果没的话就有异常了。
这个系统值应该是启动server的时候设置的,可以在manager.py里面看到。
这样一来肯定是由于Vim的python omni程序导入模块时一旦碰到异常就不继续了,所以智能提示失效了。
为此我在导入django的models时做了下处理
try:
from django.db import models
except ImportError:
from django.core import management
management.setup_environ(settings)
from django.db import models
哈哈,这样就好了,那个settings是当前项目中的settings模块。
要是有更好的办法欢迎提示阿。
Published on
2008/10/18 by
harry.
总结了一下我用Vim时,对代码补全功能的一些设置。
有兴趣的可以到我们的 Wiki 看下,欢迎补充。
Published on
2008/09/17 by
harry.
平时一直用 manish jethani 的 actionscript.vim 来支持AS3代码在 vim中的高亮显示。
但在vim中编辑过Java代码的同学都知道,用vim写java代码会有许多便捷。
比如写javadoc的时候,输入/** 后 再回车,会自动补上一个 * 类似
/**
*
像 @param xxx xxx 这样的关键字都会高亮显示,并且javadoc中的html也会高亮显示。
其实,这些都是vim自带了为编辑java实现的,想来javadoc和asdoc其实也相差无几,今天把vim中syntax/java.vim里的一些代码借过来放到 actionscript.vim 中,还真好用额..
需要的话可以下载我修改过的 actionscript.vim
要实现 /** 换行后自动补上 * 可以把 ftplugin/java.vim 复制到 ftplugin/actionscript.vim 即可
