类别归档:Vim

RSS feed of Vim

最后更新于 .

很久之前就在视频网站上看到过各种版本的BadApple,包括魔兽版的,js版的,还有各种语言版的,当然也特意搜过有没有vim版的,答案是有,但是没有代码。 今天在vim.org上逛,居然被我看到了BadApple这几个字,试了一下很不错,兴奋之余果断决定大半夜发这篇博文。 下载地址: BadApple 按照说明,将zip解压,然后用vim打开badapple.vim,执行:

:so %

就可以看到流畅的字符动画啦,哈哈。 截图如下:

1

不过还是要说一下,用这种方式来启动其实不是很好,就像插件主页上说的,如果解压到plugin目录就会有问题。其实个人感觉最好还是将插件加载和启动分开,用单独的命令来启动,类似Matrix.vim

另外,也在网上找了一下制作这种字符视频的方法,由于没有时间尝试,所以就记在这里,大家有兴趣可以试一下: 【字符向】BadApple字符版,windows版制作教程

最后简单贴几个BadApple的不同版本的视频,大家有兴趣也可以看一下。如果还想看更多的版本,就直接去视频网站搜索一下就行,一大把。

vim版: https://v.youku.com/v_show/id_XMjM5MTA3MzI0.html

魔兽版:https ...

最后更新于 .

相信不少朋友像我一样,无论在linux还是windows下都用vim来办公,但是毕竟vim原生于linux,windows下的某些支持还是做的不太好。 这个系列的文章,我们就一起探讨一下。 一.鸡肋的文件查找 在linux下,查找包含一段文字的文件列表是很方便的:

grep "txt" *

要遍历所有所有的子文件夹也很容易:

grep "txt" * -r

但是到了windows下,用那个鸡肋的文件查找功能基本上查不到任何想要的东西,怎么办呢? 非常幸运的,vim考虑到了这一点,在内部实现了 vimgrep 这样一个命令,之前有在文章中介绍过,这次我们详细介绍一下. 虽然名字看起来和grep很像,但是用法还是不一样的,先来看一下普通的查找:

:vimgrep /an error/ *.c

而如果需要循环遍历所有子目录的话,语法如下:

:vimgrep /an error/ **/*

搜索到的文件列表会加入到quickfix中去,执行:

:copen

即可看到所有的文件列表。 OK,这样windows下内容查找的问题就解决啦~ 二.没有类似软链接功能 有些没用过linux的朋友可能不明白什么叫软链接,简单来说即一个文件或者文件夹指向了另一个文件或者文件夹,在外面的使用者看起来,没有任何区别。但是为什么在windows下使用vim会遇到这个问题呢? 这里要先介绍一下vimwiki这个插件,这个插件可以用vim来打造个人wiki ...

最后更新于 .

python逐渐成为笔者最常用的语言之一,因此vim对python有些配置的不合理也渐渐显现出来,这次我们先来解决python的缩进问题。 我们来通过例子来说明,来看一下默认配置下python的缩进情况:

1.dict的语法缩进

val1 = {
        1:"1",
        2:"2"
        }

2.list的语法缩进

val2 = [
        1,
        2,
        3
        ]

3.tuple的语法缩进

val3 = (
        1,
        2,
        3
        )

4.函数多行参数的缩进

def fun(
        a,
        b
        ):
    print a,b

5.复杂dict中存在):的情况

val4 = {
        (
            1,
            2
            ):1
        }

很遗憾的发现,这几种常用的写法,默认python缩进都没有完美实现,那么是否有办法优化呢? 答案是有的,vim.org上提供了一款更好的python缩进插件: http://www.vim.org/scripts/script.php?script_id ...

最后更新于 .

新年回来一直忙于工作,今天忙里偷闲赶紧更新一篇,也给大家拜个晚年~~OK,废话不多说,直接进入正题~ 老博友应该知道本博曾经写过一款自动添加作者信息的插件,链接如下:Vim在源代码中自动添加作者信息 这次对这款插件做了更新,并放到http://www.vim.org上提供下载: AuthorInfo : http://www.vim.org/scripts/script.php?script_id=2902 目前AuthorInfo是支持c,cpp,java,php,python,bash,makefile等等多种语言,基本上只要NERD Commenter支持的类型,AuthorInfo都默认支持~这里展示几个例子,先给大家show一下:

c:

/*=============================================================================
#  Author:          dantezhu - https://www.vimer.cn
#  Email:           zny2008@gmail.com
#  FileName:        test2.cpp
#  Description:     
#  Version:         0 ...

最后更新于 .

前天在www.vim.org上闲逛,偶尔发现了auto.vim这款插件,发现短短一个星期下载量就达到了327,评价也是145/51。

script karma    Rating 145/51, Downloaded by 327

遂很好奇效果如何,于是下载下来试了一下,我这里演示一下我比较喜欢的几个特性.

1

其实主要是两个部分,1个是对于<=、>=、<<之类这种符号自动在两边补上空格,其对一定的实现代码如下:

ino <= <space><=<space>
ino *= <space>*=<space>
ino /= <space>/=<space>
ino >> <space>>><space>
ino << <space><<<space>
ino >= <space>>=<space>
ino == <space>==<space>
ino += <space>+=<space>
ino ...

最后更新于 .

本博之前有写过一篇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 ...