标题:zz: vimrc 文件的配置 出处:Felix021 时间:Sun, 17 Aug 2008 01:46:04 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?1091 内容: 发现自己的Blog上居然没有一篇关于vim的日志,惭愧。。顺手转一篇吧。 最牛B的VIM配置见http://www.amix.dk/vim/vimrc.html ,不要照抄,不一定适合你,建议通读,学习如何配置。 以下内容转载自 http://bbs.linuxunion.net/showthread-t_463.html vimrc 文件的配置 2007-01-22 21:57:49 / 个人分类:Linux C /*************************************************************** *以下资料是从网上收集而来的,由于比较多,就没有注明转贴的地址了, * *这里没有把VI 和 VIM 分开, 请不要跟不相关的贴. * *http://vcd.gro.clinux.org/ 这里有很全的中文资料。 ****************************************************************/ vim插件 http://edyfox.codecarver.org/html/vimplugins.html ----------------------------------------------------------------- 回到光标上次所处的地方 按两次单引号 假入现在在第1行,你按下G,到了最后一行,接着按两次单引号又回到第一行了 -------------------------------------------------------------- 好像很多编辑器里都有括号自动完成这样的功能,比如,输入左边括号"("后 自动完成")",并把光标定位到两个括号中间,vim通过简单的键映射也可以做到. 把以下代码拷贝到.vimrc文件里 :inoremap ( ()i :inoremap ) =ClosePair(')') :inoremap { {}i :inoremap } =ClosePair('}') :inoremap [ []i :inoremap ] =ClosePair(']') function ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\" else return a:char endif endf ------------------------------------------------------------ vim设置选项 linuxman | 2004年12月06日, 23:47 转自水木清华: ---------------------------------------- 选项 | 描述 ---------------------------------------- :set all 查看所有set选项 :set 显示当前set设置 :filetype on 通过$VIMRUNTIME/filetype.vim.打开文件类型检测 ai/noai 自动缩进,新行与前面的行保持—致的自动空格/不自动空格(缺省) aw/noaw 自动写,转入shell或使用:n编辑其他文件时,当前的缓冲区被写入/不写 flash/noflash 在出错处闪烁但不呜叫(缺省)/使用呜叫而不闪烁 ic/noic 在查询及模式匹配时忽赂大小写/不忽略大小写(缺省) lisp/nolist 在编辑lisp程序时设置自动空格以便排列文本/按前一行自动设置空格 magic/nomagic 在进行模式匹配时使用全部的特殊宁符/将特殊宁符只限制于"^"和"$" mesg/nomesg 允许/不允许其他用户向终端上写东西 nu/nonu 屏幕左边显示行号/不显示行号(缺省) ro/noro 只读,除非明确设置为:w,否则不允许对文件改动/普通读/写模式 remap/noremap 允许将宏直接映射到已经编辑好的命令行中(缺省)/求宏定义明确 showmatch 显示括号配对,当键入"]"")"时,高亮度显示匹配的括号/缺省不高亮 showmode 处于文本输入方式时加亮按钮条中的模式指示器/缺省不指示当前模式 ts=n 将TAB键的跨度设置为n个宁符间距,缺省为8 warn/nowarn 对文本进行了新的修改后,离开shell时系统给出显示(缺省) ws/nows 在搜索时如到达文件尾则绕回文件头继续搜索 wrap/nowrap 长行显示自动折行 wm=n 保留空边,n为显示的最右边留出的空白边的字符数 si smart indent 括号自动对齐 fe=prc 设置汉字整字处理 augroup 显示已存在auto命令组 nobackup 取消自动备份 encoding=prc 设置汉字处理,否则backspace删除半个汉字 cindent 设置C格式缩进,缩进量是通过shiftwidth的值,而不是通过tabstop的值 cino=string string定义了特殊需求的cindent行为, ---------------------------------------------------------------------------------------- [[: 跳转到上一个位于第一列的{ ]]: 跳转到下一个位于第一列的 { []: 跳转到上一个位于第一列的 } ][:跳转到下一个位于第一列的} [[, ]] ,[] ,][ 这几组跳转命令搞的头大,虽然发现C编程时这些键很有用 文章《C editing with VIM HOWTO》中对这几个键是这样解释的 把这两个键分开记忆: 第一个用来表示方向:[ 表示向上查找, ] 表示向下查找 第二个用来表示匹配类型: 如果两次按键相同,表示查找 {, 如果两次按键不同,表示查找 } ------------------------------------------------------------------------------------------------------------ 请问怎样设置使得vi打开一个文件后自动把光标停留在上次编辑的地方? Add the following lines to your VIMRC file ----------------------------------------------------------- " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif ----------------------------------------------------------------------------------------------------------- vim的高级用法:退出vim时自动保存当前vim窗口的状态,重新打开后恢复原来状态,就和没退出是一样. -------------------------------------------------------------------------------- 用vim编辑文档时,我们经常会在同一个vim中同时打开几个文档在不同的窗口中并且会定义一些marks和在registers里面存储一些内容. 当我们退出vim后,这些信息大部分丢失了,特别是当我们重新打开文件后,原来打开的多窗口不会恢复,我们只打开了一个当前文件窗口. 由于vim强大的功能,我们想能不能在打开文件时,完全恢复原来退出时的状态, 就象我们没退出过一样.包括marks和registers都没被改变.答案是 可以.下面就列出来我是怎么修改vim的配置达到目的的 : 在你的 /etc/vim/gvimrc或/etc/vim/gvimrc.local中加入一下两行: au VimLeave * mksession! ~/.vim/session/%:t.session au VimLeave * wviminfo! ~/.vim/session/%:t.viminfo 并保证 目录~/.vim/session存在. 然后写一个脚本程序gvims: #!/bin/sh if [ -r ~/.vim/session/$1.session ]; then gvim "+source ~/.vim/session/$1.session" "+rviminfo ~/.vim/session/$1.viminfo" else gvim $1 fi 当用gvim编辑完后,退出是,文件是以当前子窗口的名字保存窗口信息的,所以下次打开时,要用那个窗口名字作为gvims的参数. 这样的话, 对于一个项目的编辑非常有用. 例如: 我们现在做一个项目,名字是storm. 我们切换到项目storm所在的目录,运行 gvims storm. 这样就会打开一个gvim窗口,然后我们用 命令 :new storm.c 回车, 然后有输入命令 :vert new storm.h. 然后调整窗口大小,编辑,保存. 现在我们这个gvim窗口里有三个子窗口,一个显示storm, 一个显示storm.c,一个显示storm.h. 这时,我们切换到storm的编辑窗口,然后我们输入命令 :qa 退出gvim. 过了几天,我们可能要重新编辑项目storm,这是 你在任一个目录下(不一定是 项目storm的目录), 输入shell命令 gvims storm (如果你还记得你的项目名字是storm的话 (= ). 当gvim运行后,你会发现你的gvim显示的状态就象你几天前没退出一样. enjoy! sulilo 当前离线 回复时引用此帖 Generated by Bo-blog 2.1.0