您的位置:首页 > 运维架构 > Linux

vim配置

2016-03-24 09:06 405 查看

vim超强配置

宗旨:技术的学习是有限的,分享的精神是无限的。

****************************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: 18186747363@163.com")

        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=\ %
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vim tags 技术 Linux VIM配置