vim使用积累

vim使用积累


VIM 基本设置
---------------------------------------------------------------------------
Vim的配置一般都是通过修改~/.vimrc文件来完成的。在Vim的安装目录中,有一个此文件的范例,
可以将它直接拷贝到家目录中使用
$ cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc
.vimrc 配置见最后


VIM 不太会用的命令
---------------------------------------------------------------------------
:split                 水平分割当前窗口
:vsplit               垂直分割当前窗口
:split file          水平分割当前窗口,并打开文件file
:vsplit file         垂直分割当前窗口,并打开文件file
:close               关闭当前窗口 
:qa                    关闭所有窗口
<C-w> h|j|k|l   移动光标到左/下/上/右边窗口

nw          移动n单词


ctags 使用
---------------------------------------------------------------------------
NO.1 用途
扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来
NO.2 安装
1) 到 http://ctags.sourceforge.net/ 下载 ctags 源码 ctags-5.6.tar.gz
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

NO.3 使用

$ cd ~/SourceCodeFolder
$ ctags -R .

常用操作:
<C-]>      跳转到光标所在函数的定义处
<C-T>      跳回调用处


taglist 使用
---------------------------------------------------------------------------
NO.1 用途
taglist 是一个vim插件,可以在vim中显示一个边栏样式窗口,将ctags分析到的所有tag
以列表的样式显示出来
NO.2 安装
1) 到http://vim.sourceforge.net/scripts/script.php?script_id=273
下载taglist_42.zip,即
http://vim.sourceforge.net/scripts/download_script.php?src_id=6416
2) 解压得到两个文件
# unzip -d taglist taglist_42.zip
3) 安装
cp doc/taglist.txt /usr/share/vim/vim61/doc/
cp plugin/taglist.vim /usr/share/vim/vim61/plugin/
NO.3 使用
可以用“:TlistOpen”打开taglist窗口,用“:TlistClose”关闭taglist窗口。
或者使用“:TlistToggle”在打开和关闭间切换

在taglist窗口中,可以使用下面的快捷键:
<CR> 跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o 在一个新打开的窗口中显示光标下tag
<Space> 显示光标下tag的原型定义
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出现顺序排序间切换
x taglist窗口放大和缩小,方便查看较长的tag
+ 打开一个折叠,同zo
- 将tag折叠起来,同zc
* 打开所有的折叠,同zR
= 将所有tag折叠起来,同zM
[[ 跳到前一个文件
]] 跳到后一个文件
q 关闭taglist窗口
<F1> 显示帮助

在我的.vimrc中定义了下面的映射,使用“,tl”键就可以打开/关闭taglist窗口:
map <silent> <leader>tl :TlistToggle<cr>


Cscope 使用
---------------------------------------------------------------------------
NO.1 用途
Cscope算是一个增强版的ctags。ctags可以跳转到函数的定义,却无法查看此函数的所有
调用,而Cscope可以做到这一点
NO.2 安装
1) 软件下载:http://sourceforge.net/project/showfiles.php?group_id=4664
2) 软件安装:  
./configure
make
make install
NO.3 使用
$ cscope -Rbkq
这会在源码目录中生成三个文件:cscope.out,cscope.in.out,cscope.po.out,
其中cscope.out是我们需要的,其他两个是参数q的副产品。

Cscope缺省只解析C文件(.c和.h)、lex文件(.l)和yacc文件(.y),虽然它也可以支持C++
以及Java,但它在扫描目录时会跳过C++及Java后缀的文件。

如果你希望cscope解析C++或Java文件,需要把这些文件的名字和路径保存在一个名为
cscope.files的文件。当cscope发现在当前目录中存在cscope.files时,就会为
cscope.files中列出的所有文件生成索引数据库

find . –type f > cscope.files
cscope -bq 

在vim中使用cscope非常简单,首先调用”cscope add“命令添加一个cscope数据库,
然后就可以调用”cscope find“命令进行查找了。

vim支持8种cscope的查询功能,如下:
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文件

例如,我们想在vim 7.0的源代码中查找调用do_cscope()函数的函数,我们可以输入:
”:cs find c do_cscope“,回车后发现没有找到匹配的功能,可能并没有函数调用do_cscope()。
我们再输入”:cs find s do_cscope“,查找这个C符号出现的位置,现在vim列出了这个符号出现的所有位置。


code_complete 使用
---------------------------------------------------------------------------
NO.1 用途
代码自动补全
NO.2 安装
1) 下载地址 http://www.vim.org/scripts/script.php?script_id=1764
2) 把 code_complete.vim 放到 $HOME/.vim/plugin 中。
NO.3 使用
你只要输入适当的关键字,然后按 tab 键就会给你补全。例如输入 in 按 tab 就会自动补全为 #include ""

Vim本身支持的自动完成种类实际上是很多的
最常用的补全方式应该是
CTRL-N
CTRL-P
它们会在当前缓冲区、其它缓冲区,以及当前文件所包含的头文件中查找以光标前关键字开始的单词



vimrc 配置
===========================================================================
" ###################################################################
" vimrc 配置
" Edit By Peter
" ###################################################################

" 基本设置
"--------------------------------------------------------------------
set nocompatible        " 关闭 vi 兼容模式 
syntax on               " 自动语法高亮
"set cursorline         " 突出显示当前行 
set ruler               " 打开状态栏标尺 
set shiftwidth=4        " 设定 << 和 >> 命令移动时的宽度为 4 
set softtabstop=4       " 使得按退格键时可以一次删掉 4 个空格 
set tabstop=4           " 设定 tab 长度为 4 
set nobackup            " 覆盖文件时不备份
set incsearch           " 输入搜索内容时就显示搜索结果 
set hlsearch            " 搜索时高亮显示被找到的文本 
set noerrorbells        " 关闭错误信息响铃 
set smartindent         " 开启新行时使用智能自动缩进 
set laststatus=2        " 显示状态栏 (默认值为 1, 无法显示状态栏) 
filetype on             " 打开文件类型检测

" 记住上次打开的位置
au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif

" 设置在状态行显示的信息 
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\


" 阅读代码设置
" ctags
"--------------------------------------------------------------------
set tags=tags;
set autochdir

" taglist
"--------------------------------------------------------------------
let TList_Show_One_File=1               "只显示当前文件的Tag
let TList_Exit_OnlyWindow=1             "当只剩下taglist窗口时,退出vim
let TList_Use_Right_Window=1            "显示在右侧
let TList_GainFocus_On_ToggleOpen=0     "打开时焦点不放在tl窗口中

" cscope
"--------------------------------------------------------------------
if has("cscope")
    set csprg=/usr/bin/cscope
    set csto=1
    set cst
    set nocsverb
    " add any database in current directory
    if filereadable("cscope.out")
        cs add cscope.out
    endif
    set csverb
endif

nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>




































你可能感兴趣的:(java,数据库,File,vim,encoding,yacc)