标签归档:vi

RSS feed of vi

最后更新于 .

本博之前有写过一篇vim+php.exe检查php语法的文章-在vim中检查php语法格式,这种方式的优点是只依赖php环境本身,但缺点也很明显:检查并不严格,很多错误检查不出来。 所以我们考虑使用另一个语法检查工具-ZendCodeAnalyzer. 博友梧桐之前在博客中咨询该怎么写ZendCodeAnalyzer的errorformat,所以这里放出代码如下:

map <F7> :call CheckPHPSyntax()<CR>
function CheckPHPSyntax()
    let php_check_syntax_cmd='ZendCodeAnalyzer  --disable var-arg-unused'

    let exeFile = expand("%:t")
    let &makeprg = php_check_syntax_cmd
    set errorformat=%f(line\ %l):\ %m
    silent make %
    if len(getqflist())>2
        call setqflist(remove(getqflist(),2,-1))
        copen
    else
        cclose
        normal :
        echohl WarningMsg | echo ...

最后更新于 .

最近博友在本博问了很多Vim相关的问题,我已经渐渐感觉到仅凭我一个人即使对vim再怎么精通都是无法回答这所有的问题的,所以在这里把问题列出来,希望知道的朋友能够帮忙解答。 对于这种博友互助,我也在考虑有没有更好的方式,如果大家有什么好的建议或意见都可以跟我提出来,我们一起想更好的方法。 1.By 七彩映像丶 在使用vimwiki的时候遇到一个问题,再次请教你一下. 在新建事项:

 * [3] 切换列表项开/关
   * [0] 简单的在 [ ] 和 [X] 之间切换.
   * [4] 所有的列表子项将被适当的切换为开/关.
   * [4] 仅当当前行是列表项时,切换子项. 
   * [4] 父列表项将受子列表项的切换影响.

生成HTML文件时会自动加上checkbox,却不会显示该事项的进度,虽然我设置了let g:vimwiki_listsyms="01234",问题依旧存在. 我想生成如org-mode效果:

[66%] 新事项
[X] 该事项已完成
[X] 同上
[] 同上
[ ] 未完成

应该怎么设置呢?还是vimwiki不支持该方式生成事项进度? A:作者自己找到了解决方案,并与大家分享(赞一个!) /vimfiles/autoload/vimwiki_html ...

最后更新于 .

《vim(gvim)正则表达式查找替换》是个比较久的系列了,这次因为博友niejieqiang的一个问题,所以决定继续在写一篇,而主题就是将正则表达式查找替换与vim脚本结合。 其实这种方法在之前的文章中也出现过如: vim(gvim)正则表达式查找替换(4)-生成连续数字或行号

let i=1|g/1/s//\=i/|let i=i+1

就是一种方式。 OK,回到正题,我们来看一下博友niejieqiang的问题:

A格式如下:
nrk 你
nrk 侚
….
sobb 论坛
sobb 交款
sobb 文坛
…
ejj 茴
ejj 莒

需要转换成B格式:
nrk 你 侚
sobb 论坛 交款 文坛
ejj ...

最后更新于 .

很久没有写vim相关的文章,愧对vimer.cn这个域名呀~~哈,不过我还是尽量保持经常给大家提供一些Vim相关的知识。
这次介绍的是 recover.vim (http://www.vim.org/scripts/script.php?script_id=3068)
先简单介绍一下背景,vim有自动生成swp文件的功能,能够在异常情况下(简单来说就是你的vim进程被强制终止)将你没有来得及保存的代码存储下来。
但这仍然有个问题,当你再次打开那个文件的时候,vim仅提示你是否要恢复,但是我们并不知道会被恢复成什么样子。。
recover.vim就是为了解决这个问题。
我们直接来做个演示可能会比较明确,以windows下的gvim7.3为例。
新建一个文件 1.cpp,写入如下数据但是不保存

#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
int main(int argc, const char *argv[])
{
    
    return 0 ...

最后更新于 .

最近心情不错,所以就卖力的为Vim多更新几篇吧~
写在前面:

    最近渐渐发现对Vim的强大有了更新的认识,以前Vim无非只是为了满足打字如飞的需求,然后是方便的写程序,最后是干什么都想在Vim里面。
    其实到了最后一步,Vim本身的概念已经被淡化了,他开始代表一个终端,或者叫做平台,一个你和外界交互的平台--不管是用来看《糗事百科》(参看本博插件),还是用来写twitter,或是用来收发邮件,Vim本身一直在履行一个平台的职责,而它与各种脚本语言的完美集成帮助他能够更好的完成与外界的交互。
    但是话说回来,这是有一个渐进的过程的。
    其实我并不推荐初学Vim就想把Vim打造的跟VS一样,那样你还不如去用VS。Vim最核心的理念是,你要用键盘,而不是鼠标。它让你打字如飞,让你效率成几倍的提高,这才是他最初始的功能。
    而之后的功能,实际上是Vimer们对Vim不断的要求而制作的。
    为什么需要那些功能呢?因为对Vim的依赖,最终你会依赖上这个编辑器,因为他几乎能做一切你想做的事情,是的,你可以写插件在Vim里面看邮件,可以写插件用Vim写twitter,甚至我看过Vim的像素播放器!
    OK,随便说几句,可能不一定对,但是只是基于我自己用Vim的经验而已。


好啦,进入正题,介绍一下这个用来写twitter的Vim插件-TwitVim
http ...

最后更新于 .

相信沉迷于Vim(gVim)的朋友,都或多或少纠结于Vim(gVim)的配色,别人配置的永远感觉不完美,像我之前就用过desertex,wombat,等等配色,不过终究还是感觉不满意,总想自己修改一下,但自己配置起来又麻烦。。
之前在博客中有介绍过将gVim配色转化成终端配色的插件:
强烈推荐–将GUI配色转化为终端配色的VIM插件–gui2term.py

解决了gvim和vim配色一致的问题,这次介绍的插件colorsel.vim则是解决了可视化的选择配色,让调整配色变得更简单。
下载链接:http://www.vim.org/scripts/script.php?script_id=927

先上截图如下:

1

简单看一下介绍应该就能明白:
RGBHSV的数值是可配的,通过j、k实现选择,通过h、l、w、b来实现数值调整。
x可以将背景色分成上下两屏,进行对比,如图:

2

X可以切换调整前景色、背景色,
/可以输入自己定义的前景字符串,
f可以调整字符串的格式(正常、斜体、粗体、粗斜体)
如图:

3

y可以copy调整好的RGB值,
p可以粘贴从别处copy的RGB值 ...

最后更新于 .

很久没上vim官网,今天上去一看Vim7.3居然发布啦,看日期是8月16日发布的,看来还是晚了两天呀~~
马上下载下来尝鲜啦,担心有些朋友找不到,故放出下载链接如下:

ftp://ftp.vim.org/pub/vim/pc/gvim73.exe

界面没什么变化(都是自己配的色,肯定没变化嘛。。),看一下这个默认的编译支持如何:

1

看到了吗,看到了吗,Vim居然默认将python语言支持编译进去了,而且最兴奋的居然还支持python3!
不过兴奋之余,我发现了一个很严重的问题。。。那就是我的pyflakes和qiushibaike.vim都不能用了。。。Vim7.3默认要求的python版本居然是2.7,太潮了吧!
好吧,卸掉我心爱的python 2.6,去下载个python 2.7,结果再次感慨到gfw的伟大,官网的download页面居然被和谐了。。所幸找到ftp的下载地址:

http://www.python.org/ftp/python/2.7/python-2.7.msi

如果直接在浏览器下载不了 ...

最后更新于 .

这篇文章的东西可能比较杂,因为每个特性都不那么大,所以就揉在一起,倒是显得庞大了许多。

一.svn命令行在windows下面的安装使用
一直以来都使用svn管理源码,但是在windows下一直使用TortoiseSVN的界面进行管理,但是对于我这种键盘控(vim后遗症)来说,简直是无法忍受的!
搜啊搜啊搜啊,终于发现了-----CollabNetSubversion
下载页面:http://www.collab.net/downloads/subversion/
如果象我一样只需要命令行的话,下载CollabNet Subversion Command-Line Client v1.6.12 (for Windows)即可,网站需要先注册一下。
基本上安装完了,svn up、svn add就可以用了,但是svn ci的时候,你会发现如下提示:

svn: Commit failed (details follow):
svn: Could not use external editor to fetch log ...

最后更新于 .

前一段时间在博客中和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文件,代码如下 ...