类别归档:Vim

RSS feed of Vim

最后更新于 .

前段时间有朋友在微博上@我推荐了一款vim的插件,用来显示对齐线,感觉效果不错,就给大家推荐一下.

下载链接: Indent Guides

截图如下:

1

一. 安装

不用多说,直接解压放到vimfiles or .vim下

二. 配置

基本可以不用配置,不过由于默认的对齐线宽度太宽,不太美观,所以我改成1了,如下

let g:indent_guides_guide_size=1

详细的配置,可以参看他的文档,这里不再多说

三. 使用

默认的键盘映射是

<mapleader>ig

OK,插件就介绍到这里,其实如果只是单纯的介绍插件,就不用写这篇文章了。

我在用这个插件的时候,又发现了另一个需求,即标尺的功能。vim7.3里面默认提供了colorcolumn,例如执行:

:set cc=80

就可以高亮第80列,效果如下:

1

但是有时候我们想看一下几行的字符是不是在同一列上时,手工去输入列数实在太麻烦了,所以我就单独写了一个函数,来满足这个需求:

map ,ch :call ...

最后更新于 .

前段时间有博友在群里问了一个关于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 ...

最后更新于 .

过年回来也一直没发博客,其实东西还是搞了不少的,挨个给大家分享一下吧 今年过年回家恶补了一下js和css,发现vim的 css.vim 在处理着色的时候有bug,描述如下: 如果是如下css代码:

#menu ul li { background: #eee; border-bottom: 1px solid #ccc;}

则原版的css.vim 无法在同一行上显示两种颜色(#eee和#ccc),所以笔者修改了css.vim的代码,放出下载如下: http://vimercode.googlecode.com/svn/trunk/css.vim/css.vim

最后更新于 .

前言:

  • 好久没写Vim插件了,这次给Vimer们带来个好福利!-- 用Vim(gVim)发腾讯微博
  • 昨晚折腾了大半夜,总算成功实现!~~ 当然,代价就是今天头痛的厉害……

昨天突发奇想,当我用vim读文档,看代码的时候,如果有一段我觉得特别好,想要分享给大家,有没有快捷点的方式呢? 所以需求也就来了,在Vim里面分享内容~而目前用的最广的,自然是微博~(由于笔者只用腾讯微博,所以只实现了腾讯微博……)

细化一下功能:

  1. 分享文章中的一段文字,并支持评论
  2. 直接发送微博

如果你读这篇文章比较早,应该还能看到页面右侧的微博里有这条微博:

花了一晚上,终于把用vim发腾讯微博给折腾出来了,明天写博客跟大家分享,敬请期待! 来自weibo.vim

在正式开始介绍之前,声明一下:

  1. 文中所使用的QQ登录的API均为对外公开的API,不存在任何使用保密API的问题
  2. 笔者是用 vimer.cn 来申请了 QQ登录,但是access_token在生成之后,笔者不会对这个信息做任何保存,如果有所怀疑,请不要使用。
  3. weibo.vim插件本身不会主动发起任何发送微博的操作

OK,废话不多说,开始介绍吧

一. 环境依赖

  1. python ...

最后更新于 .

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

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
    
    此时的界面应该是空的,因为我们还没有创建任何任务。现在在编辑区输入 ...

最后更新于 .

之前在www.vim.org上逛,很惊讶于一个刚发布的插件居然就能获得100多的评分,很是吃惊,看了介绍才知道居然是一个类taglist的插件,并且弥补了一些taglist未曾解决的缺陷。 链接如下: Tagbar

我们以C++的头文件和实现文件为例,用图片来直观的比较一下与taglist.vim的区别。

首先是头文件,代码如下:

class CTestTagBar
{
public:
    CTestTagBar();
    virtual ~CTestTagBar();

protected:
    int GetName(bool bOpen);

private:
    int _init(int timeout);

private:
    int m_ret;
};

截图如下,其中左边的是taglist,右边的是tagbar。

1

然后是cpp文件,代码如下:

#include "test_tagbar.h"
CTestTagBar::CTestTagBar()
{}
CTestTagBar::~CTestTagBar()
{}
int CTestTagBar::GetName(bool bOpen)
{}
int CTestTagBar ...

最后更新于 .

其实很早就想写这篇文章了,虽然晚上介绍vim的文章很多,本博也已经就vim的使用写了70多篇博文,但是由于历史的原因,还有很多人对vim能做什么存在误解,包括:

  • vim对中文支持不好
  • vim适合临时编辑文本,对IDE的支持不好
  • vim的内嵌脚本语言不够强大,不像emacs的lisp那样无所不能

我不知道提出这些论断的人是因为不了不了解vim的现状,还是是对vim心存偏见。

本博在写vim相关文章的时候,一直坚持只谈技术的原则,不会涉及到与其他编辑器尤其是emacs的任何比较,然而最近在看了某些博文之后,觉得为了不让某些已经过时的观点给初学者选择编辑器时造成困扰,写下这篇文章十分必要。

OK,我们正式开始,在文章的末尾,相信大家都会明白上面的几个观点是否正确。

一.普通人的编辑利器

之所以第一点就提到这个,是因为"文字处理"当然是一个编辑器最基本的功能,而能把编辑的体验发挥到极致的也恐怕只有vim而已了。

这一节,也会参考善用佳软对vim的使用心得,相信用户的感受是最好的证明。

  1. 免费
    用户再也不用去网上辛苦的下载D版了!
  2. 提高输入速度
    这个相信也没有什么好争论的,纯键盘操作的速度是鼠标无法比拟的,虽然会带来一定的学习成本,但是相信还是值得的。
  3. 完美支持中文,并支持多种文件编码
    很多编辑器会有处理多字节编码的问题,而vim完美解决了这一点。(如果你的vim没解决,请参考linux下vim的编译以及终端乱码的最终解决方案
  4. 文本笔记管理
    这要归功于vim的一款插件:voom,详情可以参考善用佳软的这篇博文--VOoM(原VOOF):vim实现带折叠双栏树状文本管理

二 ...