Solaris中对gvim进行设置
1 将tab宽度设置为4:
在$HOME下面建立文件.exrc
把set shiftwidth=4 tabstop=4 添加进去
把set shiftwidth=4 tabstop=4 添加进去
----------------------------------------------------------
以下为转载,原文地址:http://blog.chinaunix.net/u/9465/showart_278161.html
vim一些最常见的问题(FAQ)--新水木的FAQ
本文将根据版上的提问不断修改、补充,力图回答大多数的常见问题。欢迎大家指正或 补充(补充解答的内容,或者补充没有列出的问题)。 注:以下问题以及解答均由版上的文章归纳整理而来,部分内容为原文引用。 (请搜索“(编号)”快速定位到问题答案部分。) (01) 为什么别人的方法在我这里行不通? (02) 如何找到上次编辑的文件? (03) 如何复制粘贴? (04) 如何在多个文件中进行替换? (05) 如何把fold一次全部打开? (06) 如何选择、复制或者查找光标所在的单词? (07) 如何计数搜索的字符串? (08) 如何去掉高亮搜索? (09) 如何解决linux下gvim中文菜单乱码的问题? (10) 如何对所编辑的文件语法高亮显示? (11) 如何快速插入多行数字0-99? (12) 如何设置中文编码? (13) 如何去掉或者插入^M这样的字符? (14) 如何整体缩进一段代码(插入tab)? (15) 如何合并两行? (16) 如何设置缩进距离(tab宽度)? (17) 如何让VIM不生成备份文件(~文件)? (18) 如何设置windows下gvim的字体? (19) 如何让打开文件时光标自动到上次退出该文件时的光标所在位置 (20) 如何让一个文件在原有的gvim中用新开的tab打开 (21) 为什么文件很多行仅仅在每行开头显示个"@" (22) 在插入模式下Backspace键怎么无法删除了? ============================================================================ (01) 为什么别人的方法在我这里行不通? 估计这是最难回答的一个问题了。:-) 不过首先应该确定你的VIM版本是否足够新,功能是否完整。使用 :version 命令查看你 的VIM版本以及功能。一个常见的情况,如果你用的是RedHat系统,请确定安装了 vim-enhance的rpm包,否则将是不完整的VIM。 (02) 如何找到上次编辑的文件? Ctrl+O (按两次) (03) 如何复制粘贴? 复制 方法一:先ma标记当前位置为a,移动到新的位置,再y`a或者y'a复制从标记位置a到 当前位置的内容。`和'的区别:`以字符为单位,'以行为单位。这个方法应该是所有vi 都适用的。(如果不对请指正。) 方法二:按v或V或Ctrl+V进入visual模式,移动光标选择一段内容,按y(若要使用系统黏贴 板,按"+y)。三者的区别: v以字符为单位,V以行为单位,Ctrl+V是块选择。这个方法只在VIM下适用。 粘贴 p或P。区别:前者粘贴到光标后面,后者粘贴到光标前面。 (04) 如何在多个文件中进行替换? 一般可以用sed或者vim来做。比如要对当前目录下的*.c文件进行替换: 方法一: for i in *.c; do sed -i -e 's/oldvalue/newvalue/g' $i done 方法二: vim *.c :argdo %s/oldvalue/newvalue/ge | update (05) 如何把fold一次全部打开? zR 或者 :set foldlevel=999 全部关上是 zM (06) 如何选择、复制或者查找光标所在的单词? 在VIM中用iw或者aw表示一个单词,两者稍有区别。 选择光标所在的单词:viw (v进入visual模式,然后iw) 复制光标所在的单词:yiw 查找的话就是两个很常用的明令:# 和 * (07) 如何计数搜索的字符串? 如果需要统计缓冲中一个模式(pattern)出现的频率。Vim 会报告已匹配的数目就是模式 出现的次数。例: :%s/./&/gn characters :%s//i/+/&/gn words :%s/^//n lines :%s/the/&/gn "the" anywhere :%s//<the/>/&/gn "the" as a word 你可能希望复位 'hlsearch' 或者使用 ":nohlsearch"。 (08) 如何去掉高亮搜索? 方法一::nohlsearch 方法二:/awertgvcxz (查找一个肯定不存在的字符串) 设置了高亮搜索(:set hlsearch)以后,可以通过 :set nohlsearch 永久地关闭高亮 显示,也可以通过 :nohlsearch 暂时关闭高亮显示,下次搜索时将自动恢复高亮。 (09) 如何解决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=ucs-bom,utf8,prc 需要注意的是,按照上面的设置,如果你打开一个空的(0字节)或者是纯7bits的文件, 这时VIM将认为是utf8编码的文件,如果你往里面输入中文,存盘的时候也将是utf8。 因此你可能需要在存盘之前 :set fileencoding=prc 把编码改回来。 另外,对于纯7bits的文件,由于认成了utf8,每次打开存盘的时候都要做一次转换, 会比较慢,所以如果你很长一段时间不会接触utf8的话,可能暂时把 fileencodings 一行注释掉比较好。 [警告]:转换可能会造成信息丢失!如果你需要编辑的是重要的系统文件,最好把 fileencodings 一行暂时注释掉。 (13) 如何去掉或者插入^M这样的字符? 在VIM的插入模式或者命令行中用<C-V>输入^M这样的特殊字符,例如输入 :%s/<C-V><C-M>//g 实际显示是 :%s/^M//g 就可以去掉文件中所有的^M。同理,要在文件中输入^M只要按<C-V><C-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就行了。 (19) 如何让打开文件时光标自动到上次退出该文件时的光标所在位置 将下面的语句放入vimrc中,就可以了 autocmd BufReadPost * if line("'/"") && line("'/"") <= line("$") | exe "normal `/"" | endif 若是某一次这种需要,直接运行normal命令 `" (20) 如何让一个文件在原有的gvim中用新开的tab打开 在linux下可以这样打开 $gvim --remote-tab-silent filename 而在windows下,DOS下也可以象上面那样打开;而若是“双击”打开方式,则可以修改注册 表HKEY_CLASSES_ROOT/Applications/gvim.exe/shell/edit/command将其键值修改为 "C:/Program Files/Vim/vim70/gvim.exe" -p --remote-tab-silent "%1" 而若是用鼠标右键中的“用 vim 编辑”,先删掉注册表中的 HKEY_CLASSES_ROOT/*/shellex/ContextMenuHandlers/gvim,然后手工添加鼠标右键菜单, 两种方式: a. 直接进入注册表,在HKEY_CLASSES_ROOT/*/shell下添加项“用 vim 编辑”, 再在项“用 vim 编辑”下添加子项“command”,在其右边窗口把其键值设定为 "c:/Program Files/Vim/vim70/gvim.exe" -p --remote-tab-silent "%1" b. 把下面的内容保存为文件gvim.reg,并将之导入注册表 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT/*/shell/Edit with &Vim] [HKEY_CLASSES_ROOT/*/shell/Edit with &Vim/command] @="/"c://Program Files//Vim//vim70//gvim.exe/" -p --remote-tab-silent /"%1/"" 另外,也可以添加到鼠标右键中的“发送到” 方法:进入到目录c:/Documents and Settings/用户名/SendTo下,“鼠标右键”-“新建” -“快捷方式”,然后通过对话框的“浏览”找到gvim安转位置,这样就建立gvim的一个快 捷方式,右键单击这个快捷文件-属性-快捷方式,在“目标(T)”的地址栏写入: "C:/Program Files/Vim/vim70/gvim.exe" -p --remote-tab-silent "%*" 注意:上面都是默认安装gvim的地址,若不是默认地址,请自行修改 (21) 为什么文件很多行仅仅在每行开头显示个"@" set dy=lastline (22) 在插入模式下Backspace怎么无法删除了? set backspace=indent,eol,start |