vim进阶学习笔记
最近在看《学习vi和vim编辑器第7版中文版》,一些基本的命令这里就不介绍了,反正大家都找得到,这里给大家介绍一点有趣的东西
关于ex 编辑器
ex编辑器是一个行编辑器,在vim中输入 Q 会进入到ex编辑器,如果是不小心进入的,输入vi 或者 visual 就可以回到vim 中了
大家都知道 vim 是有三种模式的,其实命令行模式的vim 就是打开了一个可视化的ex编辑器。所以说学点ex行编辑器的知识在vim中还是很有用的。
:set命令
打开选项
:set option
关闭选项
:set nooption
指定搜索模式忽略大小写
:set ic
检查vi正在使用的选项
:set all
:set nu (:set number) 显示行号,这个在编写程序的时候是非常有用的
.exrc文件
.exrc文件用来控制vi的环境,可以编辑设置。
但是这里要注意优先级,储存在环境变量里面的EXINIT是最先执行的,然后是主目录下面的.exrc 最后才是当前目录下的.exrc文件
当然你也可以读取其他目录下的.exrc文件,可以使用:so .progoptions
:! command 创建一个shell
比如
:! date 可以在不离开vi的情况下显示时间
当然如果你想输入多个命令,可以创建一个shell
:sh
请注意这里其实并没有离开vi环境,可以使用ctrl+d来重新回到vi的怀抱中~~~
:r (: read)可以与命令相结合,将命令的结果读入到文件中,比如
:r !date 会将系统时间读入到你的文件中
单词缩写:
:ab abbr phrase
例如
:ab imrc International Materials Research Center 制定缩写,但是在vim下面好像不能递归定义,比如
:ab the the 这样的递归调用是不允许的
:map 自定义命令序列(对vi的命令模式命令宏)
:map x sequence 将x映射到编辑命令sequence 中
比如
:map v dwelp 按下v键就可以颠倒两个单词的顺序
当然ex编辑器还有很多好玩的有用的地方,我就先介绍到这里了
下面我们来玩玩 折叠命令
zf 创建折叠 (范围从开始到光标移动到达后的位置结束)
比如你可以使用z4j来折叠5行
za 切换一个折叠的状态
zd 删除一个折叠
zj光标移到下一个折叠开始的地方
zk光标移到上一个折叠结尾处
zE去除所有折叠
zo递归打开折叠
手动组合命令折叠是很强大的哦~
比如 首先将你的光标移到 { 处, zf% 后就会自动折叠到对应的},这样是不是很方便呢,^_^
多窗口功能
利用vim的多窗口功能,我们可以很方便的比较两个不同版本的文件,可以快速的在多个文件当中进行剪切和复制操作
vim -o file1 file 2 使用-o选项可以同时打开多个文本文件
当然你也可以指定要打开几个窗口
vim -o5file1 file2
那么第1个窗口,就是最顶端的窗口打开file1,第2个窗口打开file2,后面三个是空文件,注意由于打开的是不同的文件,所以他们各自对应不同的缓冲区。
如果你想设置窗口的尺寸,那么你可以用winheight 和winwidth来设置
:set winheight=100 可以将窗口高度设置成100
那么怎么分割同一个文件共享相同的缓冲区呢?
:split 水平分割
:vsplit 垂直分割(我想一般人还是喜欢垂直分割吧^_^)
当然你也可以在后面指定文件同时编辑不同的文件
下面来具体说说split命令:
:[n] new [++opt] [+cmd] [file]
n Vim指定在新窗口中显示的行数,新窗口位于画面顶端
opt 传递vim选项信息给新的窗口会话(前面加++)
cmd 传入在新窗口中执行的命令(前面加+)
file指定欲在新窗口中编辑的文件
例如
:15split ++fileformat=unix otherfile
指定了新打开的文件为otherfile行高为15,使用unix的fileformat
你也可以使用按键命令^Ws ^WS ^W^S分割窗口
好了,现在我们已经会创建多个窗口了,那么怎么移动呢?其实鼠标是一种很方便的方法。默认的vim可能没有发开mouse选项,那么我们可以设置一下
:set mouse=a 这时候你会发现不仅可以光标可以在不同窗口之间切换了~~不仅如此,还可以调整窗口的大小边距了~~~
当然,也可以使用键盘切换
CTRL+W j 表示移动到下一个窗口
CTRL+W k 表示移动到上一个窗口
CTRL+W h 表示移动到左边一个窗口
CTRL+W l 表示移动到右边一个窗口
这里和移动光标是一样的,还可以使用上下左右键
CTRL+W t 表示移动到最左上角的窗口
CTRL+W b 表示移动到最右上角的窗口
移动窗口本身
CTRL+W r 向右或向下轮换窗口
CTRL+W R 向左或向上轮换窗口(大写跟小写的意思是相反的,这在很多vim命令里面都是这样设定的哦)
CTRL+W x (X) 交换同行或同列的窗口的位置,当然你可以使用3^Wx这样的命令来与第3个窗口交换
移动窗口改变布局
CTRL+W K 移动当前屏幕到顶端,使用屏幕全部宽度
CTRL+W J 移动当前屏幕到底端,使用屏幕全部宽度
CTRL+W H 移动当前屏幕到左端,使用屏幕全部高度
CTRL+W L 移动当前屏幕到右端,使用屏幕全部高度
窗口调整尺寸命令
CTRL+W = 调整所有窗口到相同尺寸
CTRL+W + 当前窗口高度增加一行
CTRL+W - 当前窗口高度减少一行
CTRL+W < 减少当前窗口宽度
CTRL+W > 增加当前窗口宽度
你也可以用命令编辑:
:resize n (设置高度)
:vertical resize n (设置宽度)
创建新分页
就好比大家在用火狐浏览器一样,vim也可以创建多个分页,然后在分页上编辑哦!!!
:tabnew filename 打开新分页
:tabclose 关闭当前分页
:tabonly 关闭其他所有分页
更方便的是,你可以打开鼠标选项:set mouse=a
然后点击上方的分页列表就可以选择分页,双击可以自动创建分页。是不是很方便啊,我估计Notepad++就是从vim里学来的吧~~~
语法高亮配色方案
学过windowsSDk的应该都知道资源文件.rc吧,同样的,在vim里面你也可以编辑配置文件.vimrc编写自己的脚本来设置属于你自己的vim
这里我们先来设置一样环境配色方案吧
Vim自定义了17种默认配色方案,比如
在.vimrc文件里面输入(如果没有的话可以新创建一个,创建 ~/.vimrc 就能改变 ~目录下所有的 vim配置了
colorscheme desert
这个据说是很多人喜欢的低调的沙漠配色方案
但是我不是很喜欢啊,于是自己去网上找啊找,找到了一个很好看的配色方案:molokai
具体步骤如下:
这里先提供网站给大家下载
http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
http://code.google.com/p/vimcolorschemetest/
然后比如像我一样下了molokai
首先把下载下来的 .vim 文件放在 “/usr/share/vim/vim73/colors/”目录或者放在“~/.vim/colors/”目录下,后者如果不存在可以自己建一个。
然后 在 “~/.vimrc” 文件中添加下面一行,重新打开一个vim就可以了。
colorscheme 配色方案名称
比如我就是 colorscheme molokai
另外,可以用一个插件 “Color Scheme Explorer” 来帮你选择喜欢的配色。把解压后的文件放到 “~/.vim/plugin/” 下,在vim中输入下面的命令:
:ColorSchemeExplorer
会列出上面两个colors目录中的所有配色文件,按”回车”来选择一个方案来test就可以了。
在选择配色方案的过程中,如果发现更改后的配色和目标配色不一致,或者说色调非常难看,那么在 “~/.vimrc” 中添加下面一行就可以了。这个用来指定配色方案是256色。
set t_Co=256
给大家看下效果图: