Aug 17

zz: vimrc 文件的配置 不指定

felix021 @ 2008-8-17 01:46 [IT » 软件] 评论(0) , 引用(0) , 阅读(5073) | Via 本站原创 | |
发现自己的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 ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>

function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
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 当前离线    
回复时引用此帖



欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
Tags:
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]