工欲善其事,必先利其器
==============================
昨天好好整理下vim,小结一下:
1>保存工作状态:
关闭vim过程:
:mksession foo.vim "创建一个会话文件
:wviminfo foo.viminfo "创建一个viminfo文件
:qa "退出vim
下次开启的时候,执行:
在命令行下执行gvim &,再次进入vim,这时看到的是一个空白窗口。然后执行下面的命令:
:source foo.vim '载入会话文件
:rviminfo foo.viminfo '读入viminfo文件
就可以回到之前的状态了.
--------------------------------------------------------------------------
2>把本项目相关的配置保存起来,下次打开本项目时自动恢复这些配置
在vim载入会话文件的最后一步,它会查找一个额外的文件并执行其中的ex命令。查找的规则是,把会话文件名的后缀去掉,然后在后面加上”x.vim“,。假设你的会话文件名为example.session,vim就会查找是否有examplex.vim,如果找到,就会执行此文件中的ex命令。
好了,我们先创建我们的会话文件:
:cd ~/src
:mksession foo.vim '创建一个会话文件
然后再编辑一个名为~/src/foox.vim的文件,文件的内容为(当然,你可以在这个文件中加入更多内容):
"set project path set path+=~/src/**
退出vim后,在命令行下执行”gvim &”,再次进入vim,这时看到的是一个空白窗口。然后执行下面的命令:
:source ~/src/foo.vim '载入会话文件 这样,原来的会话环境已经恢复,并且项目相关的配置也设置好了!
=====================================================
taglist的使用:
在list窗口中使用
---------------------------------------------------------------
<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o 在一个新打开的窗口中显示光标下tag
<Space> 显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
<F1> 显示帮助
-------------------------------------------------------------------
使用winmanager插件可以控制各插件在vim窗口中的布局显示
nmap <C-W><C-F> :FirstExplorerWindow<cr>
nmap <C-W><C-B> :BottomExplorerWindow<cr>
nmap <silent> <leader>wm :WMToggle<cr>
使用,wm启动winmanager
在BufExplorer窗口中使用”CTRL-N“可以切换到FileExplorer窗口,再使用一次则又切换回BufExplorer窗口
===================================================================================
lookupfile 查找文件(用在较大项目中)
----------------------------------------------------
在项目文件夹下创建索引文件,bash如下:
#!/bin/sh # generate tag file for lookupfile plugin echo -e "!_TAG_FILE_SORTED\t2\t/2=foldcase/" > filenametags find . -not -regex '.*\.\(png\|gif\)' -type f -printf "%f\t%p\t1\n" | \ sort -f >> filenametags
--------------------------------------------------------------------------
1> echo命令用来生成filenametags文件中的”!_TAG_FILE_SORTED”行,表明此tag文件是经过排序的。
2> find命令用来查找所有类型为普通文件,文件后缀名不是.png和.gif的文件,找到的文件按”文件名\t文件路径\t1″的格式输出出来。
3> sort命令则把find命令的输出重新排序,然后写入filenametags文件中
------------------------------------------------------------------------------
在vim中使用如下命令就可以加载索引
let g:LookupFile_TagExpr = '"./filenametags"'
现在我们就可以使用lookupfile来打开文件了,按”<F5>“或输入”:LookupFile“在当前窗口上方打开一个
lookupfile小窗口,开始输入文件名(至少4个字符),随着你的输入,符合条件的文件就列在下拉列表中了。
文件名可以使用vim的正则表达式,这大大方便了文件的查找。你可以用”CTRL-N“和”CTRL-P“
(或者用上、下光标键)来在下拉列表中选择你所需的文件。选中文件后,按回车,就可以在之前的窗口中打开此文件。
有了上面的定义,
当我输入”,lk“时,就会在tag文件中查找指定的文件名;
当输入”,ll“时,就会在当前已打开的buffer中查找指定名字的buffer;
当输入”,lw“时,就会在指定目录结构中查找。
----------------------------------------------------------------------------
程序写完,输入如下
:set makeprg=gcc\ -Wall\ -ohello\ hello.c
:make
就可以编译运行了
如果出现错误,则使用quickfix检测
======================================如果是单个c文件,自己定义一个vim键映射================
以下代码内容是:,F7为编译, ,F8是运行, ,F9是带输入文件的运行
nmap <leader><F7> :call Gcc_make()<cr>
nmap <leader><F9> :call Gcc_run_infile()<cr><cr>
nmap <leader><F8> :call Gcc_run()<cr>
function Gcc_run()
exec "!./`echo %:r | cut -d'_' -f2`"
endfunction
function Gcc_run_infile()
exec "!./`echo %:r | cut -d'_' -f2` < %:r.in > %:r.out"
exec "!cat ./%:r.out"
endfunction
function Gcc_make()
exec "!gcc -Wall -g -o `echo %:r | cut -d'_' -f2` %"
endfunction
===========================================================================
" function Gcc_make()
" let s:input_file = expand("%") . \\
" let s:output_file = expand("%:r")
" exec \"set makeprg=gcc\\\ -g\\\ -Wall\\\ \" . s:input_file \"-o\\\ " . s:output_file
" endfunction ==============================================================================
quickfix的使用
在quickfix模式里经常用到的命令有:
:cc 显示详细错误信息 ( :help :cc )
:cp 跳到上一个错误 ( :help :cp )
:cn 跳到下一个错误 ( :help :cn )
:cl 列出所有错误 ( :help :cl )
:cw 如果有错误列表,则打开quickfix窗口 ( :help :cw )
:col 到前一个旧的错误列表 ( :help :col )
:cnew 到后一个较新的错误列表 ( :help :cnew )
=======================================================
自动补全命令集合
vim中其它的补全方式包括:
整行补全 CTRL-X CTRL-L
根据当前文件里关键字补全 CTRL-X CTRL-N
根据字典补全 CTRL-X CTRL-K
根据同义词字典补全 CTRL-X CTRL-T
根据头文件内关键字补全 CTRL-X CTRL-I
根据标签补全 CTRL-X CTRL-]
补全文件名 CTRL-X CTRL-F
补全宏定义 CTRL-X CTRL-D
补全vim命令 CTRL-X CTRL-V
用户自定义补全方式 CTRL-X CTRL-U
拼写建议 CTRL-X CTRL-S
-------------------------------------------------------------------------