2006年11月17日VIM

        2006年11月17日 星期三 天气晴         Last Modify:Jan 25, 2008

==================================================================================

 

今天体验了一下Linux的LiveCD和VI的力量,感觉Linux的命令行确实很强大,而VI在命令行下的表现确实让人惊讶,所以下载了Gvim的windows版本试用。感觉Linux下的程序配置起来确实麻烦,让人头痛……不过好在他终于提供了一个底色可以暗色的编辑工具,而且语法着色确实不错。

 

 

Vim Tips(转帖)

(1) 为什么别人的方法在我这里行不通?

(2) 如何找到上次编辑的文件?

(3) 如何复制粘贴?

(4) 如何在多个文件中进行替换?

(5) 如何把fold一次全部打开?

(6) 如何选择、复制或者查找光标所在的单词?

(7) 如何计数搜索的字符串?

(8) 如何去掉高亮搜索?

(9) 如何解决linux下gvim中文菜单乱码的问题?

(10) 如何对所编辑的文件语法高亮显示?

(11) 如何快速插入多行数字0-99?

(12) 如何设置中文编码?

(13) 如何去掉或者插入^M这样的字符?

(14) 如何整体缩进一段代码(插入tab)?

(15) 如何合并两行?

(16) 如何设置缩进距离(tab宽度)?

(17) 如何让VIM不生成备份文件(~文件)?

(18) 如何设置windows下gvim的字体?

(19) 如何设置Vim的colorscheme

 (1) 为什么别人的方法在我这里行不通?

 估计这是最难回答的一个问题了。:-)

不过首先应该确定你的VIM版本是否足够新,功能是否完整。使用 :version 命令查看你的VIM版本以及功能。一个常见的情况,如果你用的是RedHat系统,请确定安装了vim-enhance的rpm包,否则将是不完整的VIM。

 (2) 如何找到上次编辑的文件?

 

Ctrl+O (按两次)

 (3) 如何复制粘贴?

 复制

方法一:先ma标记当前位置为a,移动到新的位置,再y`a或者y'a复制从标记位置a到当前位置的内容。`和'的区别:`以字符为单位,'以行为单位。这个方法应该是所有vi都适用的

 方法二:按v或V或Ctrl+V进入visual模式,移动光标选择一段内容,按y。三者的区别:v以字符为单位,V以行为单位,Ctrl+V是块选择。这个方法只在VIM下适用。粘贴p或P。区别:前者粘贴到光标后面,后者粘贴到光标前面。

 

(4) 如何在多个文件中进行替换?

 一般可以用sed或者vim来做。比如要对当前目录下的*.c文件进行替换:

方法一:

for i in *.c; do

sed -i -e 's/oldvalue/newvalue/g' $i

done

方法二:

vim *.c

:argdo %s/oldvalue/newvalue/g

 

(5) 如何把fold一次全部打开?

 zR 或者 :set foldlevel=999

 

(6) 如何选择、复制或者查找光标所在的单词?

 在VIM中用iw或者aw表示一个单词,两者稍有区别。

选择光标所在的单词:viw (v进入visual模式,然后iw)

复制光标所在的单词:yiw

 查找的话就是两个很常用的明令:# 和 *

 

(7) 如何计数搜索的字符串?

 如果需要统计缓冲中一个模式(pattern)出现的频率,需要把 'report' 置为0,然后用替换命令把模式替换成它自己。Vim 报告的已替换的数目就是模式出现的次数。例:

:set report=0

:%s/./&/g characters

:%s//i/+/&/g words

:%s/^ lines

:%s/the/&/g "the" anywhere

:%s///&/g "the" as a word

你可能希望复位 'hlsearch' 或者使用 ":nohlsearch"。

 

(8) 如何去掉高亮搜索?

 方法一::nohlsearch

方法二:/awertgvcxz (查找一个肯定不存在的字符串)

设置了高亮搜索(:set hlsearch)以后,可以通过 :set nohlsearch 永久地关闭高亮显示,也可以通过 :nohlsearch 暂时关闭高亮显示,下次搜索时将自动恢复高亮。

 

(9) 如何解决linux下gvim中文菜单乱码问题?

 以vim6.3为例

:source $VIMRUNTIME/delmenu.vim

:source $VIMRUNTIME/menu.vim

 

也可以将以上内容加入.vimrc

 光source一个menu.vim或者啥也不source都是乱码

注:这里的source指的是vim自己的source命令,和bash shell的source无关

 

(10) 如何对所编辑的文件语法高亮显示?

 需要解释的是,VI有很多变种,它本身并没有这种功能,提供这种功能

往往是其各种衍生版本,比如说vim。下面就vim中如何语法高亮简单解释一下。

 

首先,确定一下你所用的操作系统,如果是windows,那么默认的配置文件

就可以工作了。如果还不行,可以用鼠标从syntax菜单下选择一下适合你的

文件类型(新版本的gvim默认把文件类型选择关闭了,需要点开,然后按照开头字母选择类型)

如果是linux,那么确认一下是否是redhat。如果是redhat,那么需要安装

vim-enhanced的rpm包。这些都做了以后,可以用:syntax on来打开语法高亮。

必要时可以用:set filetype=...来设定你的文件类型。

如果使用图形界面,比如gvim,那么syntax on和set filetype的操作可以

用鼠标在菜单中选择,同windows下。

如果是在控制台中使用vim,还应当确定你的终端设置支持颜色。

 

(11) 如何快速插入多行数字0-99?

 在命令行中输入以下代码,或者先把代码保存到一个外部文件,然后source这个文件:

let i = 0

while i < 100

put = i

let i = i + 1

endw

如果位数不足需要在前面补零,可以用Ctrl-V块选择,然后I插入0。

 

(12) 如何设置中文编码?

 在.vimrc中作如下设置,可以实现界面以及显示字体采用gb2312,遇到utf8文件时自动做转换:

set encoding=prc

set fileencoding=prc

set fileencodings=utf8,prc

需要注意的是,按照上面的设置,如果你打开一个空的(0字节)或者是纯7bits的文件,这时VIM将认为是utf8编码的文件,如果你往里面输入中文,存盘的时候也将是utf8。因此你可能需要在存盘之前 :set fileencoding=prc 把编码改回来。另外,对于纯7bits的文件,由于认成了utf8,每次打开存盘的时候都要做一次转换,会比较慢,所以如果你很长一段时间不会接触utf8的话,可能暂时把 fileencodings一行注释掉比较好。

[警告]:转换可能会造成信息丢失!如果你需要编辑的是重要的系统文件,最好把fileencodings 一行暂时注释掉。

 

(13) 如何去掉或者插入^M这样的字符?

 在VIM的插入模式或者命令行中用输入^M这样的特殊字符,例如输入

:s///g

实际显示是

:s/^M//g

就可以去掉文件中所有的^M。同理,要在文件中输入^M只要按即可。

 

这个问题往往发生在WINDOWS/DOS系统和UNIX系统之间交换文件时,因为这两类系统对于文本的"换行"概念解释不同。所以,还有一个解决方法就是对这类文本进行转换。vim内部就可以做这件事情。首先打开文本,然后

set fileformat=unix再从新保存该文件覆盖原文件就可以去除:^M了

 

(14) 如何整体缩进一段代码(插入tab)?

 选中一段代码,< 或 > 或 2< 或 3> ……

 

(15) 如何合并两行?

 合并两行的键是 J

另外,如果你设置了

set backspace=2

你就可以用backspace或者delete很方便的删到上一行或者下一行。

 

(16) 如何设置缩进距离(tab宽度)?

 set tabstop=8

set shiftwidth=8

 

(17) 如何让VIM不生成备份文件(~文件)?

 set nobackup

更多细节请看 :help backup。另外,也可以不关掉backup而是设置backupdir将备份文件统一存放到一个目录下,比如

set backupdir=C:/Program/ Files/Vim/tmp

 

(18) 如何设置windows下gvim的字体?

 :set guifont=* 出选择字体对话框,

选好了后, 再 :set guifont? 看,最后把guifont的设置写进vimrc就行了。

 

(18) 如何设置vim的colorscheme

 :colorscheme 然后tab选取,最后把中意的scheme写进.vimrc文件。colorscheme的.vim文件在$vim$/colors/文件夹里面,可以在www.vim.org

 下载各种colorscheme。

 

---------2008-1-25 New Added---------------------------

在现在来看VI的力量还不仅仅如此,他的高度的可配置性让人惊讶,特别是在字符终端下可以完成自动完成之类的功能更让人心动,详情看看去年年末的日志,把VIM配置成为IDE的威力。

    

        Rev 1.0        Create Document    Nov 1, 2006

        Rev 1.1        Add some comments    Jan 25, 2008

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值