vim学习资料

0.基础
1.配置
2.操作
3.插件
3.实际应用
4.小TIP

0.基础
http://www.vim.org/images/vim_header.gif
先到官方网站 (http://www.vim.org)下载一份gVim
gVim是跨平台的,我在windows系统下面就下载了一份for win32 (ftp://ftp.vim.org/pub/vim/pc/gvim71.exe)


1.配置
gVim的所有配置都是写在一个名为_vimrc的没有扩展名文件中的,使用文本编辑器就可以打开修改.
安装后gVim后会在安装目录下自动生成这个文件.
以后再安装移动的话保留这个配置文件会方便很多.

贴上我的配置

set linebreak
set textwidth=80
set nocompatible
set history=400
set ruler
set number
set hlsearch
set noincsearch
set expandtab
set noerrorbells
set novisualbell
set t_vb= "close visual bell
set foldmethod=marker
set tabstop=4
set shiftwidth=4
set nobackup
set nowritebackup
set noswapfile
set smarttab
set smartindent
set autoindent
set cindent
set wrap
set autoread
set cmdheight=1
set showtabline=2
"set clipboard+=unnamed
set tabpagemax=20
set laststatus=2
set statusline=\ [File]\ %F%m%r%h\ %w\ \ [PWD]\ %r%{CurrectDir()}%h\ \ %=[Line]\ %l,%c\ %=\ %P



function! CurrectDir()
let curdir = substitute(getcwd(), "", "", "g")
return curdir
endfunction

if has("multi_byte")
set encoding=utf-8
set termencoding=utf-8
set formatoptions+=mM
set fencs=utf-8,gbk
if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
set ambiwidth=double
endif
if has("win32")
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction


有些内容也是我从网上搜索出来的.
例如打开utf-8编码的文件会显示乱码.
在_vimrc中添加

if has("multi_byte")
set encoding=utf-8
set termencoding=utf-8
set formatoptions+=mM
set fencs=utf-8,gbk

if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
set ambiwidth=double
endif

if has("win32")
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8
endif
else
echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
endif

这样就支持utf-8编码的文件了.


2.操作

转一篇水木的精华文章.写的很好.

vi 的屏幕区域分为两个部分:最下面一行是命令行,一般用于提示信息或命令行输入;除此之外为正文显示区域。跟 notepad 不同的是,vi 中存在两种模式:普通(Normal)模式和插入(Insert)模式。

进入 vi 后默认即为普通模式。新手一般初次进入 vi 后就想输入一串字符,结果发现 vi 一连串莫名其妙的反应。其实,在 vi 的普通模式下,任何按键包括普通字符都表示某个命令,并不表示在当前光标处插入字符。常用的命令有:(注意区分大小写)
: 进入命令行
i 或 a 进入插入模式。区别是:i 进入插入模式后,光标在当前字符前面; a 进入插入模式后,光标在当前字符后面
h j k l 分别是光标左移、下移、上移、右移(一般来说你不会用到它们来移动光标,按方向键就可以了)
x 删除一个字符
dd 删除一行
J 删除本行的回车符,把下一行并入本行末尾
r字符 替换光标所在字符为新字符
^ $ 分别是光标移到行首和行末
数字G 移动光标到第若干行,如果直接按 G 则移动到最后一行

在普通模式中,命令以按键形式输入。而在命令行中,命令以字符串形式输入。下面是常用的命令行:
:q 退出! (更确切的说应该是关闭当前文件)
:w 文件名 存盘。如果还是保存为当前文件,不必写文件名
:wq 存盘退出
:new 文件名 打开或新建文件(同时关闭当前文件)。如果不指定文件名或者文件名不存在则是新建文件
:help 帮助! 看完后用 :q 关掉窗口。可以在 help 后面加某个帮助主题的名称,如 :help dd 或 :help help

还有一点是,如果某个命令得到警告(拒绝执行),则要在命令的命令词后加叹号表示强制执行。比如你修改过文件,但又想放弃存盘并退出,如果输入 :q,vi 会告诉你文件已修改,这时,你只能输入 :q! 退出。又如用 :w! a.txt 表示把当前文件存为 a.txt 而不管 a.txt 是否已经存在。

插入模式就不用多说了,添加你的新内容吧。不过,你也许会发现 BackSpace 键和 Delete 键的运用很受限制,也不能像 notepad 那样选择、复制和粘贴。这些都是由于这是 vi 的标准,后面我们将看到 VIM 扩展的功能可以解决这些问题。记住按 ESC 退出插入模式,回到普通模式。
2. 复制和粘贴

为了便于选取文本,VIM 引入了可视(Visual)模式。要选取一段文本,首先将光标移到段首,在普通模式下按 v 进入可视模式,然后把光标移到段末。需要注意,光标所在字符是包含在选区中的。这时可以对所选的文本进行一些操作,常用的(可视模式)命令有:
x 或 d 剪切(即删除,同时所选的文本进入剪贴板)
y 复制
r字符 所有字符替换为新字符
u U ~ 分别是所有字母变小写、变大写、反转大小写
> < 分别是缩进和反缩进

当输入了命令以后,VIM 将回到普通模式,这时可以按 p 或 P 进行粘贴。普通模式下有关复制和粘贴的命令:
v 进入可视模式
p 或 P 在当前位置粘贴剪贴板的内容,p 粘在光标所在字符后面,P 粘在前面

不得不承认,虽然引入了可视模式,复制和粘贴在 VIM 中仍然是比较麻烦的操作,这也许是 VIM 唯一的缺点。:-) 此外,VIM 还引入了选择 (Select)模式,跟可视模式类似。结合一些键的定义和选项设置,可以实现跟 notepad 相同的复制和粘贴的使用习惯。限于篇幅和水平,在此不提。



3.插件
这一块我还不是很熟悉安装..转一篇不错的文章

插件的安装


翻译得不好, 请大家多多包涵!

VIM 插件一般安装在 5 个地方, 存放插件的路径都列在“runtimepath”选项中,我们可以使用 set 命令查看它:

:set runtimepath?

显示结果如下:

runtimepath=~/.vim,/usr/local/share/vim/vimfiles,/usr/local/share/vim/vim63,/u
sr/local/share/vim/vimfiles/after,~/.vim/after

Unix 下的 $HOME/.vim 或 Windows 下的 %HOME%/vimfiles:用户自定义脚本及插件。 该目录下的脚本会在系统脚本加载前执行, 用于扩展与替代系统脚本原有功能。

$VIM/vimfiles: 功能同上, 不过是对所有用户均有效的。

$VIMRUNTIME: 随 VIM 一同发行的插件与脚本。 不要在这里存放你自己下载或安装的文件,升级 VIM 的时候, 这里的文件很可能被直接覆盖掉, 不会给出任何提示信息。

Unix 下的 $HOME/.vim/after 或 Windows 下的 %HOME%/vimfiles/after:用于对已有设置进行一些小的修正和覆写。

$VIM/vimfiles/after: 对所有用户均有效的一些全局设置修正脚本。

以上路径都是使用“VIM 语言”给出的, 一般情况下, $VIMRUNTIME 都不会被定义为系统环境变量, $VIM 在少数情况下会在 VIM 之外被定义。 如果你想知道这些路径都是什么, 可以在 VIM 中使用“:echo $VIMRUNTIME”或“:echo $VIM”。

以上提到的 5 个目录的子目录结构都是相同的。 如果你希望在其它目录里安装插件的话,建议使用 $VIMRUNTIME 的目录结构作为模版, 将必要的目录结构创建完整,像这样:

+ <Directory>
+ colors
+ compiler
+ doc
+ etc
+ ftdetect
+ ftplugin
+ indent
+ keymap
+ plugin
+ syntax



VIM常用插件的推荐
http://learn.tsinghua.edu.cn:8080/2005212716/html/vimplugins.html


asing使用插件
CSS color preview (http://www.vim.org/scripts/script.php?script_id=2150)
posted @ 2009-03-24 17:55  麦飞  阅读(1040)  评论(0编辑  收藏  举报