类别归档:Vim

RSS feed of Vim

最后更新于 .

    OK,继续我们的Vim正则查找替换系列~~,这一次主要有两个技巧,第一个是=的整理,第二个是vim实现固定区域的查找替换。     呃,不知道到底是带给我们的这个习惯了,似乎大家在写int a=1;的时候都喜欢在=左右都加上两个空格,编程int a = 1;但是有时候面对别人写的代码,并不是这样的风格就会很想帮他改一下,怎么办呢?vim呗~~     命令如下:    

:%s/\s*=\s*/ = /g

   

这样的话,vim就会自动帮你完成啦,当然看语句也能看出来,他是只要匹配到=就会帮你自动编程 = ,所以对于那些注释和字符串中的=也有可能帮你误转,笔者没有想到什么好的方法,你可以在g后面加个c,即    

:%s/\s*=\s*/ = /gc

   

这样每次替换都会要求你确认,呵呵,不过也有点麻烦哦……    

好啦,接下来是vim中的区域查找替换,vim这么强大的工具当然是支持只替换一部分文本啦,那么怎么实现呢?     ...

最后更新于 .

之前在vim下一直是用幼圆看中文(参见我的另一篇文章:Vim(gvim)编程字体推荐),效果其实还是很不错的,但是对于开启了cleantype的系统来说,微软雅黑可能是一个更好的选择。

后来也有朋友说很想在gvim下面使用微软雅黑,所以这次就和大家分享一下。    

之前不使用微软雅黑的原因也是很明显的,因为gvim默认的字体列表里面并不支持微软雅黑,至于原因网上也都说的很清楚了,也有人自己编译了gvim的全字体版提供下载,但是相信大部分人是和我一样,宁愿改字体也不想改gvim(vim)本身吧,呵呵。    

但是呢!只要vimer们想做的事情,那就绝对没有做不到的!~~~~

下面秀一下我的gvim中使用微软雅黑+Bitstream vera sans mono的样子~~    

10px(适合<14英寸屏幕)

   

10.5px(适合>17英寸屏幕)

哈哈,怎么样,是不是比幼圆精致很多啊!赶紧去试一下吧!~~

分别的配置代码如下:

10px

set guifont=Bitstream_Vera_Sans_Mono:h9:cANSI 
set gfw=Yahei_Mono:h10:cGB2312

10.5px

set ...

最后更新于 .

在excel中,提供了一个功能可以根据第一个数字下拉生成一串连续的数字,那么在vim中能不能生成呢?答案是肯定的,而且方法不只一种,而且灵活性更高。 第一种.用Vim的查找替换,说白了,比如说要生成1到100,那么就讲100个1顺序替换,每次替换自加就可以了。方法如下:

1)在Vim中键入1.

2)在1所在行,yy,100p。

3)进入命令行模式,输入如下命令:

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

OK啦,效果如下。

生成连续数字,方法1

其实命令比较简单,简单解释一下:

1/  代表查找1 s/  代表替换后的新字符就在这个位置 /   就代表后面跟的是新的字符内容 \=i \=是把后面的字符串当成表达式来对待,在这里就是i的值 |   (逻辑或的符号)用以连接三个语句 其实到这里大家就可以自由发散啦,比如如果我想让字母横排怎么办呢?

:%s/\n/ /gc

再比如我只要偶数/奇数怎么办呢 ...

最后更新于 .

网上从来不缺编程字体推荐的文章,当然vim(gvim)字体的推荐文章也是多不胜数,但是大部分都是想当然的认为哪些字体好用就介绍出来,甚至都没有自己亲自试过,也没有考虑过用户使用19英寸的显示器和14英寸的笔记本时对字体的要求到底有什么不同,鉴于以上几点,我决定写这样一篇文章,真正介绍vim(gvim)中最适合的编程字体。 注:由于vimrc中中文字体的设置需要用到中文,所以请务必保证vimrc的编码是gbk格式,如果不是gbk格式,可以通过1.打开vimrc。2.:set fenc=gbk 3.:w。的操作来解决。

一.17~19(或更大)英寸屏幕    

1)英文字体:    

名字:Bitstream Vera Sans Mono    

大小:10px        

在vimrc中的配置如下:

set guifont=Bitstream_Vera_Sans_Mono:h10:cANSI

优点:        

a)0 O ...

最后更新于 .

呵呵,其实说是vim正则表达式查找替换(3),更主要是对之前没有介绍的vim正则表达式基础知识的补全。毕竟基础搞不清楚,就别指望以后的进阶啦~~

一.vim中常用的正则表示的元

$  匹配一行的结束
^ 匹配一行的开始
\< 匹配一个单词的开始
\> 匹配一个单词的结束
* 匹配0或多次
\+ 匹配1或多次
\= 匹配0或1次
\a      匹配一个字符
\d      匹配任一数字
\u      匹配任一大写字母
[]      匹配范围,如t[abcd]s 匹配tas tbs tcs tds
\{}     重复次数,如a\{3,5} 匹配3~5个a
\( \)   定义重复组,如a\(xy\)b 匹配ab axyb axyxyb axyxyxyb …
\| 或,如:for\|bar 表示匹配for或者bar
\%20c 匹配第20列
\%20l 匹配第20行

二 ...

最后更新于 .

之前已经写过一篇vim正则表达式查找替换,今天我们继续来写vim正则表达式查找替换(2),主要是一些代码编写中可能用到的查找替换技巧,希望对大家有用。

1.删除行尾的空白字符(包括空格和tab)

:%s/\s\+$//

2.删除空白行

:g/^[ ,\t]*$/d

3.压缩空白行(即两行变成一行)

:%s/^\n\+/\r/

4.压缩重复行(即重复的行变成一行,只能两行两行的压缩)

%s/^\(.*\)\n\1$/\1/

从而可以得知,匹配重复2行的命令是:

/^\(.*\)\n\1

重复3行的命令是:

/^\(.*\)\n\1\n\1

5.删除行尾的^M字符(dos换行符)

%s/\r//g

OK,就这么多,以后有了新的就再总结啦~《vim正则表达式查找替换》我会继续写下去,争取做成一个系列~

最后更新于 .

远程登录服务器用vim在终端下编辑查看文件经常会遇见各种中文乱码问题。

做如下设置可基本解决vim中文乱码问题

首先查看系统对中文的支持

locale -a | grep zh_CN

输出样例如下

zh_CN.gbk zh_CN.utf8

vim 只能正确识别列表中的中文编码文件,如需识别其他编码类型的中文文件,则需要做系统升级

vi ~/.bash_profile 文件末尾添加

export LANG="zh_CN.UTF-8" 或者"en_US.UTF-8"

export LC_ALL="zh_CN.UTF-8"  或者"en_US.UTF-8"

vi ~/.vimrc 文件末尾添加

let &termencoding=&encoding

set fileencodings=utf-8,gbk,utf-16,big5

(这里是优先做了utf-8的模式判断,当然也可以优先做gbk,这里在我之前的文章里面都有讲)

修改SecureCRT设置 options->appearance  character encoding 改为utf-8

当然你也可以修改全局配置的appearance   options->global ...

最后更新于 .

如果经常用vim进行编辑,那么一款好的vim配色就是必然的啦,今天我们就来介绍一下我比较喜欢的几款配色。(配色效果主要针对gvim,因为在vim下工作都是终端操作。) 由于本人是以程序员为目标人群,所以配色多为背景浅暗色,前景色也偏暗。

1.freya

fre

2.blackdust 也是一款黑色背景的主题,截图如下:

2

3.lucius

lu

4.rainbow_neon  

rain

5.navajo

n

好啦,我先就简单推荐上面这几种啦,以后有好的配色再给大家推荐,给大家一个网址,是有人收罗了几百个配色。 http://code.google.com/p/vimcolorschemetest/   另外相信对着几百个配色,一个个的color xx,也会吐血的,所以给大家介绍个插件 csExplorer.vim, 可以列出所有的配色文件,然后一个个选择就行啦~ 大家是否有选到自己喜欢的配色?选好了要记得告诉我一声哦

版权所有,转载请注明出处。https://www.vimer.cn

最后更新于 .

之前已经详细的介绍了在 vim中使用ctags ,这篇文章我们就来详细介绍一下如何在vim中使用cscope。

首先,我们还是了解一下什么是cscope。

简单来讲,cscope主要用来协助浏览C/C++语言,他的功能要强大于ctags,不仅支持变量/函数的定义查询,还记录了函数的调用处查询等功能,所以也有说法称cscope的诞生就是为了取代ctags。

无论这个说法是否有据可依,对使用方来说,当然是希望功能越强大方便越好啦,所以这也是我们为什么讲ctags和cscope都装上的原因啦。

第二,我们来说一下vim的支持。

cscope没有ctags那么幸运,cscope在大部分的linux下的vim中是没有提供支持的(但是在windows下的gvim都提供了支持),所以,如果你打算要在linux下面使用vim+cscope,那么1,你要下载安装cscope。2,你要重新编译vim,加上支持选项: --enable-cscope 。

当然,cscope也提供了windows版(否则windows下gvim怎么和cscope搭配嘛...),分别下载地址如下:

cscope(linux):http://cscope.sourceforge.net/
cscope(windows):http://sourceforge.net/projects/mslk/files/

当然,安装的最后一步就是,不要忘记讲cscope放进的环境变量里!

第三,好了 ...

最后更新于 .

之前有朋友问过我,Vim(gvim)中怎么实现多文件的查找和替换呢?当时确实一直没有考虑过这个问题,因为一直在linux下都有grep,sed这样强力的工具,并不需要vim来实现这样的操作,但是也有很多朋友在windows下也使用gvim来进行编辑,那么就很有必要研究一番了。

第一,多文件查找

vimgrep是vim自带的一个工具,类似于grep的用法就可以实现。比如要在当前目录查找word,使用如下:

:vimgrep word *

如果想要递归查找所有下级目录里面,那么就用

:vimgrep word **

另外,如果想要在使用是快捷查找当前光标下的字母,则只需要在vimrc中添加如下代码:

"对搜索的设置
map ft :call Search_Word()<CR>:copen<CR>
function Search_Word()
let w = expand("<cword>") " 在当前光标位置抓词
execute "vimgrep " . w . " *"
endfunction

通过vimgrep查找到的结果会生成到quickfix中,如下图:

第二,多文件替换

实际上只要如下两个命令即可(假设要将当前目录下所有扩展名为.txt/.cpp的文件中的hate替换成love):

:args *.txt *.cpp
:argdo ...