[ Content | Sidebar ]

Posts tagged vim

vim保存编辑位置的功能失效了

~/.vimrc里用于恢复编辑位置的配置是有的,后来发现又是权限问题.现在用的配置文件是以root权限直接从另一个用户目录copy过来的,当时只改了.vimrc的权限,.viminfo还是root权限,导致vim关闭时无法记录状态. sudo chown myuser:myuser ~/.viminfo 搞定.

———–
post by gmail~

vim里快速调试PHP

恩,python中一般会把调试代码跟普通代码混在一块

class xx:
#    .....
if __name__ == '__main__':
    testxx = xx()
    #测试代码....
Copy Code 

这个__name__ == ‘__main__’判断此文件是否被直接执行,而不是被其他文件import,所以在vim中调试时可以直接输入:!python % 执行当前正在编辑的文件,调试代码便会执行并输出结果

php也可以这么加调试代码,php中是这么实现的

class xx {
// ......
}
//确定当前被执行的文件就是自己,而不是被其他php文件包含
if (realpath($_SERVER['SCRIPT_FILENAME']) == __FILE__)
{
    $testxx = new xx;
    //测试代码....
}
Copy Code 

如果仅限在命令行运行测试代码就再加个条件

if (php_sapi_name() == 'cli' && realpath($_SERVER['SCRIPT_FILENAME']) == __FILE__)
Copy Code 

为了更速度,vim配置里添加了一个快捷键F5

"php和python调试快捷键
au FileType php map <F5> :call DebugRun('php')<cr>
au FileType php imap <F5> <Esc>:call DebugRun('php')<cr>
au FileType python map <F5> :call DebugRun('python')<cr>
au FileType python imap <F5> <Esc>:call DebugRun('python')<cr>
function DebugRun(cmd)
    :w
    execute '!' . a:cmd . ' %'
endfunction
Copy Code 

OK,写完调试代码按下F5立刻有结果。

———–
post by gmail~

ubuntu上flex开发相关

最近项目需要用到flex, 于是我要学这个本不打算学的东西…

我的环境很简单 flex sdk 4.0 + vim

sdk的安装参考 : http://blog.minidx.com/2008/05/17/853.html

flex的Makefile参考 : http://www.mindlence.com/WP/?p=301

编写好Makefile之后,就可以在vim里通过:make命令编译当前项目

vim的as和mxml语法高亮: http://www.fireyang.com/blog/?p=115

最后是我自己加的自动补全的字典(从flex4的文档里扣出来的….)

"将字典文件放到相应的目录就可以了,这里是~/.vim/as3_dict.txt
au FileType actionscript call AddAS3Dict()
function AddAS3Dict()
    set dictionary-=~/.vim/as3_dict.txt dictionary+=~/.vim/as3_dict.txt
    set complete-=k complete+=k
endfunction
Copy Code 

字典文件下载 : as3_dict
这个字典有9K多行,应该够用了…

初学的一点感觉:
虽然actionscript3已经远离了js的语法,但仍然是事件驱动的,所以对熟悉js开发的同学来说,flex很容易上手. 另一点感受是我再也不用考虑狗屁浏览器兼容性了..

最最后最近阅文档无数的终极结果,我的第一个flex半成品 : http://bluehua.org/demo/avatar-editor/

vim创建js文件时自动添加文件注释

参考: VIM自动给脚本加注释

在vimrc里添加下面几行

"添加文件注释
command -nargs=0 Addreadme :call Addreadme()
function Addreadme()
call setline(1,"/**")
call append(1," * @require : none")
call append(2," * @author : someone@bluehua.org")
call append(3," * @date : " . strftime("%Y-%m-%d"))
call append(4," * @description : this is a new file ")
call append(5," */")
endf
:au BufNewFile *.js :Addreadme
Copy Code 

懒人工具之:自动刷新firefox,解放ctrl+f5

y,自从用了vim,该让机器做的都让机器做了。。

这个东东的原理是这样滴,firefox安装一个插件,起作用的就下面几行

var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("/tmp/refresh.firefox");
//浏览器开启时启动一个定时器
var timer = setInterval(function()
{
    //每隔0.1秒检测一下这个文件存在否 
    if ( file.exists() )
    {
        //如果存在,删除之
        file.remove(true);
        //获取当前标签的文档对象
        var doc = gBrowser.selectedBrowser.contentDocument;
        //是否是在调试的东东
        if ( /(xiaonei\.com|kaixin\.com)/.test( doc.location.href ) )
        {
            //如果是,调用dnsFluher,刷新host,如果没有安装此插件就算了
            dnsFluher.refreshdns();
            //刷新页面
            doc.location.reload();
        }
    }
},100 );
Copy Code 

所以,只要在/tmp/目录生成一个refresh.firefox的文件,firefox便会刷新了

vim 里添加一行配置文件

"更改host文件时刷新
autocmd BufWritePost,FileWritePost /etc/hosts execute '!echo '' > /tmp/refresh.firefox'
"更改调试文件时刷新
autocmd BufWritePost,FileWritePost */jspro/*.js execute '!echo '' > /tmp/refresh.firefox'
Copy Code 

插件附上,根据情况自行修改。。

autorefresh1.0

扩展名改成xpi拖到firefox就可以安装了