标签归档:vi

RSS feed of vi

最后更新于 .

前段时间有博友在群里问了一个关于vim排序的问题,因为时间问题一直没帮忙解决,今天时间正好空出来,就帮忙搞了一下。 原文的问题如下:

vimuser 说:
2012年03月1日 于 5:04 下午  (编辑)
今天折腾了一下午,研究vim的排序,看了教程和搜索了一些文档,还是没弄明白,vim的正则表达式跟一般的又不一样,来请教下博主。

|1 | 11 | 111| 1111|
|2 | 22 | 222| 2222|
要根据第3个|和第4个|之间的列进行排序该如何写命令呢?

其实之前也只是简单的用过vim的sort命令,没有想过vim是否能完成如此复杂的排序,不过抱着试试看的态度,我看了一下sort的描述(:h :sort),其中一段话如下:

:[range]sor[t][!] [i][u][r][n][x][o] [/{pattern}/]

When /{pattern}/ is specified and there is no ...

最后更新于 .

前段时间在做文件扫描的时候,有一些关于字节、字符数统计的需求,考虑到有同学也可能用的到,所以整理一下记录在这里。

1.统计当前字符之前的所有字节数

command! -nargs=0 CountBytesBack        :normal mxvgg"ay`x:echo strlen(@a)<CR>

2.统计当前字符之后的所有字节数

command! -nargs=0 CountBytesForward     :normal mxv$G"ay`x:echo strlen(@a)<CR>

3.统计当前文件所有字节数

command! -nargs=0 CountBytesAll         :normal mxggVG"ay`x:echo strlen(@a)<CR>

4.统计当前文件所有字符数

command! -nargs=0 CountCharsAll         :%s ...

最后更新于 .

前不久糗百改版,所以原有的qiushibaike.vim插件用起来会有一些问题,今天有时间就修改了一下. 如图:

1

下载地址: http://www.vim.org/scripts/script.php?script_id=3083 有不清楚的朋友可以到 用Vim(gvim)看糗事百科查看说明。

最后更新于 .

本文来自于Unix对话录的博主刺猬的投稿。 很高兴有朋友能够制作这样的翻译作品来分享给大家,笔者也仔细看了一下,都是些非常常用的命令,因此对Vim初学者应该会很有帮助。 截一部分图给大家预览一下,如果觉得不错请点击这里下载。

1

最后更新于 .

emacs中有gtd模式,那vim是不是也可以实现呢?当然可以! 只要搭配vimwikisnipmate,再加上笔者写的插件vimgtd,就可以完美实现gtd的功能,目前实现的功能如下:

  1. 查看今天待完成的任务
  2. 查看所有待完成的任务
  3. 查看过去某天已完成的任务
  4. 快捷创建任务,标记为已完成
  5. 以不同的颜色标识 未开始、进行中、过期、已完成 状态的任务

一.安装方法

二.使用说明 如功能列表里面提到的,我们一步步来操作

  • 查看今天要完成的任务列表 输入如下命令:
    :TaskToday
    
    此时的界面应该是空的,因为我们还没有创建任何任务。现在在编辑区输入 ...

最后更新于 .

很久之前就在视频网站上看到过各种版本的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 ...