标签归档:vim

RSS feed of vim

最后更新于 .

前一段时间在博客中和fuadam讨论过python中调用print的时候,是否可以直接打印decode之后的字符的问题。(原文:python-django的中文编码总结)
一开始我的结论是,print只能打印encode的字符,不能进行decode,但是后来在直接执行python test.py(在vim中是!python %)后,发现确实能够正常打印,那我之前究竟是怎么看到错误的结果的呢?

首先,我们需要在vimrc中做如下配置来实现python的一键执行:

function CheckPythonSyntax()
    let mp = &makeprg
    let ef = &errorformat
    let exeFile = expand("%:t")
    setlocal makeprg=python\ -u
    set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z%[%^\ ]%\\@=%m
    silent make %
    copen
    let &makeprg     = mp
    let &errorformat = ef
endfunction

打开一个python文件,代码如下 ...

最后更新于 .

之前有朋友在博客里希望我能列出自己使用的所有Vim插件,一直没有时间,趁周末的最后的几个小时,就给大家列一下,大家可以实行拿来主义,取自己需要的,呵呵~ OK,一个个来说吧~~

plugin:

  • 编程相关:
    • 公共:
      • taglist 相信无人不知其大名,用来提供单个源代码文件的函数列表之类的功能。最近在使用一个针对面向对象语言的类似插件-tagbar.vim,也很不错。
      • NERD_commenter 提供快速注释/反注释代码块的功能
      • DoxygenToolkit.vim 添加doxygen注释
      • UltiSnips 提供超强的快速生成代码段的功能(超越snipmate)
      • mark.vim 给不同的单词高亮,表明不同的变量时很有用。(特别说明一下,vim.org上有两个Mark.vim,请使用链接中指向的那个,另外一个是有bug的)
      • authorinfo 自动生成/更新文件的作者信息(本博编写)
      • checksyntax  一个通用的语法检查插件,支持c,js,等等
      • Indent Guides 用来帮助缩进对齐的插件,需要的时候会很好用
    • c/c++:

最后更新于 .

最近一直在思考,如果又那么多需求需要在vim里面调试gdb,执行python文件,链接数据库,与其每一个都去用vim脚本实现,为什么不直接把终端所有操作接管呢?

然后我去了www.vim.org的首页,然后,我居然真的看到了这个插件:
Conque Shell
下载链接:http://www.vim.org/scripts/script.php?script_id=2771
这个插件目前的评分是 Rating 447/122, Downloaded by 1280 ,也就是差不多每个评分的人都是4分(Life Changing!),而我也是毫不犹豫的选择了这个选项。

废话不多说,先来上图,对,你没有看错,这真的是vim.
在vim中打开bash:

  bash  
在vim中连接mysql:

mysql
在vim中打开python解释器:

python

哈哈,怎么样~~,是不是真的很酷!,OK,还有两张图,我们在最后再贴出来。来看一下这个插件的详细信息吧

一.简介 ...

最后更新于 .

在vs中使用vim的映射已经不是什么新鲜事了,不过ViEmu $99的价格实在让人望而却步,但是现在好了,我们多了一个选择:

vsvim
主页:
http://visualstudiogallery.msdn.microsoft.com/zh-CN/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329

这个是以vs2010的标准插件形式存在的,所以也只支持vs2010.
废话不多说,先来看几张图:

 1

注意画红圈的地方(我好不容易才抓拍到的光标呀),用起来比较舒服的原因之一就是保持了和vim一样的块状光标(ViEmu就给改了),所以第一感觉还不错。

打开上面的config按钮,界面如下:

2

上图就是默认的样子。

我大体试了一下其模拟的按键,hjkl是没有问题的,G、gg、u也没有问题,但是zc、zo、C-R、之类的就都不能用了,命令行方面,试了一下:new、:e 之类貌似都不能用。

不过我觉得这样的确已经不错了,本身只是想要vim的按键方式而已,而且除了需要实时预览html的情况,我基本也不会用到vs……

最后更新于 .

最近在用django做网站,惯例,我肯定还是用vim做编辑器……
不过让我有点小惊喜的是,在django的官网上,居然有一片用vim写django的文章。
原文链接如下:

Using Vim with Djangohttp://code.djangoproject.com/wiki/UsingVimWithDjango

文章中包括了自动补全,模板着色,snipmate等众多内容,这里我主要演示一下snipmate的效果。

http://github.com/robhudson/snipmate_for_django下载两个snippets文件,放到你的snippets目录,然后在vimrc中加入如下两行:

au FileType python set ft=python.django
au FileType html set ft=htmldjango.html

打开一个.py文件,输入r2r后,截图如下:

1
还有其他一些vim支持,我就不列举啦,大家有兴趣可以自己看一下。

最后更新于 .

最近开始研究python,发现vim+python真是如鱼得水呀~,不知道有没有博友也喜欢看糗事百科,这个网站是我和老婆每天必看呀,放松心情非常不错,哈哈 但是用vim习惯了就不想再去麻烦打开个IE还要用鼠标点,所有就研究了一下,如何用vim看糗事。先上个图~

1

需要环境:

  1. Python(默认的windows下的gvim7.3是支持python2.7的,linux下需要安装了python之后重新编译)
  2. BeautifulSoup

使用方法:

  • QB 最新糗事,每调用一次翻一页
  • QBHot 最糗糗事,每调用一次翻一页
  • QBReset 重置当前页码为0

配置:

  • http代理: g:qiushibaike_proxy
  • 超时时间: g:qiushibaike_timeout

下载:到 http://www.vim.org/scripts/script.php?script_id=3083 下载

最后更新于 .

呃,之前在linux下编译过vim,这次由于gvim默认不支持python,所以心血来潮想要想在windows编译一下gvim,好吧,这纯属找虐……

一.准备工作:

1.Mingw,我用的版本是5.1.4

2.vim的源码文件

ftp://ftp.vim.org/pub/vim/pc/ 下载到vim72src.zip, vim72rt.zip, vim72lang.zip三个文件。 下载完之后, 把 vim72src.zp 和 vim72lang.zip 解压到 D:\makevim,查看D:\makevim\vim\vim72 这样的目录结构, 包含src,lang等目录。 vim72rt.zip的有些独特,先不要解压,直接打开看,里面vim\vim72下面会有autoload之类的文件和目录。新建一个目录D:\makevim\vim ...

最后更新于 .

哇咔咔,今天没事在小众软件上逛,居然被我发现了一个用vim发邮件的插件,废话不多少,先上图~ 成功

OK,按顺序介绍一下。

一.实现功能    

1.发送文本    

2.发送文件

二.安装方法    

1.到http://www.vim.org/scripts/script.php?script_id=26 下载压缩包    

2.打开dsw项目文件,用vc6.0或者vs2005编译生成vimmailr.dll,并将这个文件放到环境变量中有的路径中    

3.把vimmailr.vim放到C盘下(或者其他路径)    

4.在vimrc文件中加入如下代码:

let $MYEMAIL="dantezhu@tencent.com"     

source c:\vimmailr.vim     

当然我的邮箱需要改成你自己的…… ...

最后更新于 .

最近比较忙,周末又和老婆一起出去旅游,所以近期没有写多少文章,还望各位读者海涵~~ 由于一些原因,今天本来打算写的文章没有办法发布,所以先写一篇比较轻量的应用热一下身,最近要写的Vim相关文章比较多哇~~ 这次主要是想给大家介绍一下vim的一个插件snipmate,链接如下: http://www.vim.org/scripts/script.php?script_id=2540 对于代码段补全,snipmate还是非常有用的(虽然可能会降低你的记忆力)。

现在我们来假设一个场景,平常大家都是怎么写出一个函数实现的呢? 如

int Test() {     //光标在这里 }

好吧,我想应该是这样,先写出一个

int Test() {}

然后ESC,h,o,ESC,j,o 极其麻烦~ 怎么解决?在c.snippets中加入如下代码:

snippet {}     {         ${1}     }

这样,当你在c/c++文件中写完

int Test() {}

之后,只需要点击一下tab键,就会自动变成

int ...

最后更新于 .

在公司突发奇想,想把自己使用vim时的常用操作录下来,希望对大家有所帮助~ 用到了几个插件,也有一些自己定义的功能,在我的博客里都可以找到相应的介绍。

e 

对于录屏中我使用的插件,欢迎竞猜,竞猜无奖,纯属娱乐,哈哈~~