vim使用
转载自 http://tenanchris.javaeye.com/blog/625111
http://www.rayninfo.co.uk/vimtips.html
本文所有内容摘自公司同事的ppt。
1、什么是vim
• Vim是从 vi 发展出来的一个文本编辑器。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
• Vim的第一个版本由Bram Moolenaar在1991年发布。最初的简称是Vi IMitation ,随着功能的不断增加,正式名称改成了Vi IMproved。
2、版本与配置文件
• Linux
vim
ftp://ftp.vim.org/pub/vim/unix/vim-7.2.tar.bz2
/etc/.vimrc (全局) ~/.vimrc (用户)
• Windows
gvim
ftp://ftp.vim.org/pub/vim/pc/gvim72.exe
%installpath%\_vimrc
3、如何获得vim帮助
• man vim
• Vimcdoc (中文版vim帮助)
http://nchc.dl.sourceforge.net/project/vimcdoc/vimcdoc/1.7.0/vimcdoc-1.7.0.tar.gz
Online:
http://vimcdoc.sourceforge.net/doc/help.html (cool)
4、vimcdoc 安装使用
• wget http://nchc.dl.sourceforge.net/project/vimcdoc/vimcdoc/1.7.0/vimcdoc-1.7.0.tar.gz
• tar -zxvf vimcdoc-1.7.0.tar.gz
CTRL-] 或双击鼠标进入,CTRL-T、CTRL-O、g<RightMouse>、或 <C-RightMouse> 可以用来跳回到你原来的地方。
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
• 设置 Vim 内部使用的字符编码。它应用于缓冲区、寄存器、表达式所用的字符 串、viminfo 保存的等等各种文本。
• 如果 fileencoding 不同于 encoding,读写文件时需要进行转换。
• 如果 fileencoding 为空,使用 encoding 相同的值
• set fileencodings=gb2312,utf-8
• GTK+ 2 上强烈建议设置 'encoding' 为 "utf-8"。
– 选择模式 进入方式 :set selectmode=mouse gh, gH, gCTRL-H
– gq 按照 'textwidth' 指定的宽度排版行 (1)
+--------------------------------------------------------------+
|one.c=============================|
|one.c=============================|
+--------------------------------------------------------------+
+-------------------------------------------------------------------+
|/* file two.c */ |/* file one.c */ |
|two.c ===============================|
+-------------------------------------------------------------------+
>> Global search and replace --> :1,$ s/old/new/g
In english, this means: | | | | |
From 1 to $ (end of file) | | | |
substitute -----------------/ | | |
occurrences of "old" ----------/ | |
with occurrences of "new" --------/ |
globally (i.e., all istances of "old")
用 "u" 和 CTRL-R 命令你可以切换到任何你编辑过的状态。
Scared Of The Moon-迈克尔 杰克逊(Michael Jackson).mp3
Take Me Away-艾薇儿 拉维妮(Avril Lavigne).mp3
Thing I'll Never Say-艾薇儿 拉维妮(Avril Lavigne).mp3
Tomorrow You Didn't-艾薇儿 拉维妮(Avril Lavigne).mp3
Tomorrow-艾薇儿 拉维妮(Avril Lavigne).mp3
When You're Gone-艾薇儿 拉维妮(Avril Lavigne).mp3
When Your're Gone-艾薇儿 拉维妮(Avril Lavigne).mp3
Why-艾薇儿 拉维妮(Avril Lavigne).mp3
Will You Be There-迈克尔 杰克逊(Michael Jackson).mp3
+-----------------------------------+
+-----------------------------------+
'foldmethod' 'fdm' 字符串 (缺省: "manual")
|fold-indent| indent 相同缩进距离的行构成折叠。
|fold-expr| expr 'foldexpr' 给出每行的折叠级别。
|fold-marker| marker 标志用于指定折叠。
|fold-syntax| syntax 语法高亮项目指定折叠。
• 键映射用于改变输入键的含义。最常见的用途是把功能键定义为一系列的命令。
– :map {lhs} {rhs} ,把键系列 {lhs} 映射为 {rhs}
:map :noremap :unmap :mapclear 是 是 是
:nmap :nnoremap :nunmap :nmapclear 是 - -
:vmap :vnoremap :vunmap :vmapclear - 是 -
:omap :onoremap :ounmap :omapclear - - 是
http://www.vim.org/scripts/index.php
• 用约定方式编写的脚本能够被除作者外的很多人使用。这样的脚本叫做插件。Vim 用户只 要把你写的脚本放在 plugin 目录下就可以立即使用了。
• 实际上有两种插件:
– 全局插件: 适用于所有类型的文件。
– 文件类型插件: 仅适用于某种类型的文件。
• 查看插件路径
– :set runtimepath?
– output
runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
38、Vim插件-安装
• mkdir ~/.vim
• cd ~/.vim/
• mkdir autoload && mkdir plugin
• cp *.vim ~/.vim/plugin
39、vim插件-taglist
• 下载
– http://www.vim.org/scripts/download_script.php?src_id=7701
http://prdownloads.sourceforge.net/ctags/ctags-5.6.tar.gz
– (2)解压并安装
tar zxvf ctags-5.6.tar.gz
cd ctags-5.6
./configure && make && make install
– (3)使用 [/home/brimmer/src]$ ctags -R
• 打开taglist插件
– :Tlist
• 帮助
– :help taglist.txt
– :help tag
• Ctrl-] 跳转到当前光标所在的标签;
• Ctrl-O 返回到跳转前的位置;
• Ctrl-T 沿着经过的标签列表向回跳转,也可以在其前面输入一个数字,如N-Ctrl-T会向回跳转N步,相当于按了N下Ctrl-T;
• :tags 显示所有经过的标签列表;
vim插件-taglist窗口帮助
F1: 打开帮助
回车键:跳到光标所在的标记的定义处(如将光标移到main函数,按回车键)
o: 新建一个窗口,跳到标记定义处
p: 预览标记定义(仍然在taglist窗口)
空格:显示标记的原型(如函数原型)
u: 更新标记列表(比如源文件新增了一个函数,并在保存后,可在taglist窗口按u)
s: 选择排序字段(暂时我也不知道什么意思)
d: 删除光标所在的taglist文件(如用vi打开了两个文件f1.c,f2.c可以删除f1.c的标记)
x: 放大/缩小taglist窗口
+: 展开(指标记)
-: 折叠
*: 全部展开
=: 全部折叠
[[: 将光标移到前一个文件的起点
]]: 将光标移到后一个文件的起点
q: 退出taglist窗口
F1: 关闭帮助
vim插件-taglist配置
• let Tlist_Auto_Open=1
• let Tlist_Show_One_File = 1
• let Tlist_Exit_OnlyWindow = 1
• let Tlist_Ctags_Cmd = "/usr/bin/ctags"
• set nocp
• filetype plugin on
40、vim插件-autocomplpop.vim
• 自动补齐插件
• 支持7.0以上版本的vim
• 下载http://www.vim.org/scripts/script.php?script_id=1879
http://www.newsmth.net/bbscon.php?bid=731&id=24898&ftype=11
-------------------------------------------------------------
BufExplorer Taglist latexsuite word_complete Sketch
DrawIt Mark SearchComplete vcscommand switchtags
ccal.rb viki NERD_tree fencview matrix
taglis Tetris BlockComment
-------------------------------------------------------------
42、小技巧
• gg=G 格式化文本
• K man info
• '.
• % 匹配括号
• /<C-R><C-W>
• /<C-R><C-A>
43、彩蛋
• :h!
• :h 42
• :h holy-grail
44、推荐资料
• Vim 键盘图
• Vim 帮助
• Vim 学习笔记by watercloud
• 网站: 水木vim版
http://www.newsmth.net/bbsdoc.php?board=VIM