****************************Ctags安装***************************
ctrl + ] --- 跳到定义处
ctrl + T --- 返回到上一个地方
tags文件的作用:看函数,变量或者红定义等等的定义。
安装:
1. 从http://ctags.sourceforge.net网站下载源代码;
2. 解压安装:
tar -xzvf ctags-5.8.tar.gz
cd ctags-5.8
./configure
make
make install
用whereis ctags看ctags是否安装成功。
3. 到你工程的最上级目录,运行命令:ctags -R,会生成一个tags的文件;
4. 打开某个文件,输入:set tags=(路径)/tags
********************************************************************
*****************************taglist********************************
http://sourceforge.net/projects/vim-taglist/files/
解压后生成出现文件taglist.vim -- taglist.txt
plugin/taglist.vim – taglist插件
doc/taglist.txt - taglist帮助文件
移动taglist.txt到/usr/share/vim/vim73/doc/目录下
移动taglist.vim到/usr/share/vim/vim73/plugin/目录下
**********************************************************************
主要实现以下功能:
1.在vim命令模式下,按F12生成tags,按F11显示模块框
2.按F5直接编译执行C,C++,Java及Shell脚本
3.ctrl + A全选并复制
4.F2去掉代码空行
5.支持鼠标的滑动
6.Ctrl + p自动补全功能
7.代码缩进,高亮,括号的自动补全功能等等
set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示
set nu " 显示行号
set go= " 不要图形按钮
set guifont=Courier_New:h10:cANSI " 设置字体
syntax on " 语法高亮
autocmd InsertLeave * se nocul " 用浅色高亮当前行
autocmd InsertEnter * se cul " 用浅色高亮当前行
set ruler " 显示标尺
set showcmd " 输入的命令显示出来,看的清楚些
set novisualbell " 不要闪烁(不明白)
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\[TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\%H:%M\")} "状态行显示的内容
set laststatus=1 " 启动显示状态行(1),总是显示状态行(2)
set foldenable " 允许折叠
set foldmethod=manual " 手动折叠
set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
" 显示中文帮助
if version >= 603
sethelplang=cn
setencoding=utf-8
endif
setfencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8
"新建.c,.h,.sh,.java文件,自动插入文件头
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec":call SetTitle()"
""定义函数SetTitle,自动插入文件头
func SetTitle()
"如果文件类型为.sh文件
if&filetype == 'sh'
callsetline(1,"\#########################################################################")
callappend(line("."), "\# File Name: ".expand("%"))
callappend(line(".")+1, "\# Author: libang")
callappend(line(".")+2, "\# mail: [email protected]")
callappend(line(".")+3, "\# Created Time:".strftime("%c"))
callappend(line(".")+4,"\#########################################################################")
callappend(line(".")+5, "\#!/bin/bash")
callappend(line(".")+6, "")
else
callsetline(1, "")
callappend(line(".")+5, "")
endif
if&filetype == 'cpp'
callappend(line(".")+6, "#include")
callappend(line(".")+7, "using namespace std;")
callappend(line(".")+8, "")
endif
if&filetype == 'c'
callappend(line(".")+6, "#include")
callappend(line(".")+7, "")
endif
"新建文件后,自动定位到文件末尾
autocmdBufNewFile * normal G
endfunc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"键盘命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap w :w!
nmap f :find
" 映射全选+复制ctrl+a
map ggVGY
map! ggVGY
map gg=G
" 选中状态下 Ctrl+c 复制
vmap "+y
"去空行
nnoremap :g/^\s*$/d
"比较文件
nnoremap :vert diffsplit
"新建标签
map :tabnew
"列出当前目录文件
map :tabnew .
"打开树状文件目录
map \be
"C,C++ 按F5编译运行
map :call CompileRunGcc()
func! CompileRunGcc()
exec"w"
if&filetype == 'c'
exec"!g++ % -o %<"
exec"! ./%<"
elseif&filetype == 'cpp'
exec"!g++ % -o %<"
exec"! ./%<"
elseif&filetype == 'java'
exec"!javac %"
exec"!java %<"
elseif&filetype == 'sh'
:!./%
endif
endfunc
"C,C++的调试
map :call Rungdb()
func! Rungdb()
exec"w"
exec"!g++ % -g -o %<"
exec"!gdb ./%<"
endfunc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""实用设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置当文件被改动时自动载入
set autoread
" quickfix模式
autocmd FileType c,cpp map :w:make
"代码补全
set completeopt=preview,menu
"允许插件
filetype plugin on
"共享剪贴板
set clipboard+=unnamed
"从不备份
set nobackup
"make 运行
:set makeprg=g++\ -Wall\ \ %
"自动保存
set autowrite
set cursorline " 突出显示当前行
set magic " 设置魔术
set guioptions-=T " 隐藏工具栏
set guioptions-=m " 隐藏菜单栏
"set statusline=\ %