`
hulianwang2014
  • 浏览: 718298 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

vim的强大,vim设置和插件的使用,脱离windows才是王道

 
阅读更多

首先分享下我的vimrc设置

如下

map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
let Tlist_Show_One_File=1  
let Tlist_Exit_OnlyWindow=1
let Tlist_Auto_Open=1 
set nocompatible
""""""""""界面""""""""""
colorscheme elflord
"set guifont=Monospace\ 11
set tabstop=4
set backspace=2
set nu! "显示行号
set nowrap
set linebreak "整词换行
set whichwrap=b,s,<,>,[,] "左右光标移动到头时可以自动下移
"set autochdir "自动设置目录为正在编辑的文件所在目录
set hidden "没有保存的缓冲区可以自动隐藏
set scrolloff=7 "设置光标上下保留的最小的行数
set smartindent "智能对齐方式
set shiftwidth=4    "换行时行间交错使用4个空格
set autoindent  "自动对齐
set ai! "设置自动缩进
set showcmd     " display incomplete commands
set wildmenu "增强模式的命令行
"=========状态栏相关===========
set laststatus=2    "总是显示状态栏status line
set ruler   "在编辑过程中,右下角显示光表位置的状态行
set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
"==========编辑相关============
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
" Don't use Ex mode, use Q for formatting
"map Q gq
" In many terminal emulators the mouse works just fine, thus enable it.
if has('mouse')
  set mouse=v
endif
set autowrite "在切换buffer时自动保存当前的文件
set autoread
"===========查找替换相关============
set hlsearch
set incsearch "" 查询时非常方便,如要查找book单词,当输入到/b时,会自动找到
               " 第一个b开头的单词,当输入到/bo时,会自动找到第一个bo开头的
               " 单词,依次类推,进行查找时,使用此设置会快速找到答案,当你
               " 找要匹配的单词时,别忘记回车
set gdefault    "替换所有的行内匹配都被替换,而不是第一个
"=========编程相关===========
"set completeopt=longest,menu   "关掉只能补全的时的预览窗口
filetype plugin indent on
syntax on
syntax enable
"========================================"
if has("vms")
  set nobackup      " do not keep a backup file, use versions instead
else
  set backup        " keep a backup file
endif
" Put these in an autocmd group, so that we can delete them easily.
"===================autocmd====================="
augroup vimrcEx
au!
"如果文件类型为text,则设置文本显示的宽度为78,更多参考:h setlocal
autocmd FileType text setlocal textwidth=78
" When editing a file, always jump to the last known cursor position.
" Don't do it when the position is invalid or when inside an event handler
" (happens when dropping a file on gvim).
" Also don't do it when the mark is in the first line, that is the default
" position when opening a file.
" 如下的autocmd实现打开文件自动跳到上次编辑的位置
autocmd BufReadPost *
  \ if line("'\"") > 1 && line("'\"") <= line("$") |
  \   exe "normal! g`\"" |
  \ endif
autocmd! bufwritepost vimrc source ~/.vimrc
augroup END
" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
" Only define it when not defined already.
if !exists(":DiffOrig")
  command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
          \ | wincmd p | diffthis
endif
"==========自定义的键映射=================="
"实现CTRL-S保存操作
nmap <c-s> :w<CR>
imap <c-s> <Esc>:w<CR>a
"实现了CTRL-C、CTRL-V复制粘贴操作的映射
vnoremap <c-c> "+y
inoremap <c-v> <esc>"+p<CR>i
map <F2> <c-e>  "使用F2上翻页
map <F3> <c-y>  "使用F3下翻页
map <silent> <F12> :nohlsearch<CR>
let mapleader = ","
let g:mapleader = ","
"使用CTRL+[hjkl]在窗口间导航
"map <C-c> <C-W>c
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
"map <C-c> <C-W>c
"使用箭头导航buffer
map <right> :bn<cr>
map <left> :bp<cr>
" Tab configuration
map <leader>tn :tabnew<cr>
map <leader>te :tabedit
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
"括号匹配
vnoremap $1 <esc>`>a)<esc>`<i(<esc>
vnoremap $2 <esc>`>a]<esc>`<i[<esc>
vnoremap $3 <esc>`>a}<esc>`<i{<esc>
vnoremap $$ <esc>`>a"<esc>`<i"<esc>
vnoremap $q <esc>`>a'<esc>`<i'<esc>
vnoremap $e <esc>`>a"<esc>`<i"<esc>
"非常好用的括号匹配,实际是自动生成括号
"实现便利和兼容的折中
inoremap $1 ()<esc>i
inoremap $2 []<esc>i
inoremap $3 {}<esc>i
inoremap $4 {<esc>o}<esc>O
inoremap $q ''<esc>i
inoremap $e ""<esc>i
inoremap $t <><esc>i
"使用ALT+[jk]来移动行内容
nmap <M-j> mz:m+<cr>`z
nmap <M-k> mz:m-2<cr>`z
vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z
vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z
"========================================
" CTRL-U in insert mode deletes a lot.  Use CTRL-G u to first break undo,
" so that you can undo CTRL-U after inserting a line break.
inoremap <C-U> <C-G>u<C-U>
"========================================"
"========自动载入项目的配置文件=========="
if filereadable("workplace.vim")
    source workplace.vim
endif
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope setting
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"自动判断是否存在cscope并配置
if has("cscope")
    set csprg=/usr/local/bin/cscope
    set csto=0
    set cst
    set nocsverb
    " add any database in current directory
    if filereadable("cscope.out")
        cs add cscope.out
    " else add database pointed to by environment
    elseif $CSCOPE_DB != ""
        cs add $CSCOPE_DB
    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>
" Using 'CTRL-spacebar' then a search type makes the vim window
" split horizontally, with search result displayed in
" the new window.
"nmap <C-M>s :scs find s <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M>g :scs find g <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M>c :scs find c <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M>t :scs find t <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M>e :scs find e <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M>f :scs find f <C-R>=expand("<cfile>")<CR><CR>
"nmap <C-M>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
"nmap <C-M>d :scs find d <C-R>=expand("<cword>")<CR><CR>
"
"" Hitting CTRL-space *twice* before the search type does a vertical
"" split instead of a horizontal one
"
"nmap <C-M><C-M>s
"   \:vert scs find s <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M><C-M>g
"   \:vert scs find g <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M><C-M>c
"   \:vert scs find c <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M><C-M>t
"   \:vert scs find t <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M><C-M>e
"   \:vert scs find e <C-R>=expand("<cword>")<CR><CR>
"nmap <C-M><C-M>i
"   \:vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
"nmap <C-M><C-M>d
"   \:vert scs find d <C-R>=expand("<cword>")<CR><CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" end cscope setting
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""
"====== Minibuffer plugin======="
"let g:miniBufExplModSelTarget = 1
"let g:miniBufExplorerMoreThanOne = 2
"let g:miniBufExplModSelTarget = 0
"let g:miniBufExplUseSingleClick = 1
"let g:miniBufExplMapWindowNavVim = 1
"let g:miniBufExplVSplit = 25
"let g:miniBufExplSplitBelow=1
let g:bufExplorerSortBy = "name"
autocmd BufRead,BufNew :call UMiniBufExplorer
"使用<leader>u 打开Minibuffer
map <leader>u :TMiniBufExplorer<cr>
"========================================"
"Auto Completion Popmenu
let g:acp_behaviorSnipmateLength=1
使用插件

<style type="text/css"> <!-- @page {margin:2cm} p {margin-bottom:0.21cm} --> </style>

1安装使用Ctags

Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是TaglistOmniCppComplete工作的基础。

这里介绍从源代码包安装,安装步骤跟大多数软件的从源代码安装步骤一样。

1)从http://ctags.sourceforge.net/下载源代码包后,解压缩生成源代码目录,

wget下载: wgethttp://prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz

tar解压: tar zxvf ctags-5.8.tar.gz

2)然后进入源代码根目录执行./configure

3)然后执行make

4)编译成功后执行makeinstall

5)在~/.vimrc中增加以下这行:

map<C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q.<CR>

到此,Ctags已安装成功。

另外,由于在前面第5条,我们已经在Vim中配置了Ctrl-F12组合快捷键,所以我们也可以进入代码根目录后,打开Vim,按下Ctrl-F12快捷键自动生成tags文件。

命令执行完后,会在源代码目录生成tags文件。Vim默认会自动读取当前目录下的tags文件,所以不需要修改~/.vimrc文件。此时,我们已经具有定义跳转的功能了。有两组快捷键是最常用的。

Ctrl-] 跳转到光标所在符号的定义。

Ctrl-t 回到上次跳转前的位置。

更多功能通过命令manctags或在Vim命令行下运行helpctags查询。


2Taglistvim的一个插件,提供源代码符号的结构化视图

1)从http://www.vim.org/scripts/script.php?script_id=273下载安装包,也可以从http://vim-taglist.sourceforge.net/index.html下载。

2)进入~/.vim目录,将Taglist安装包解压,解压后会在~/.vim目录中生成几个新子目录,如 plugindoc(安装其它插件时,可能还会新建autoload等其它目录)。

3)进入~/.vim/doc目录,在Vim下运行"helptags."命令。此步骤是将doc下的帮助文档加入到Vim的帮助主题中,这样我们就可以通过在Vim中运行“helptaglist.txt”查看taglist帮助。

4)打开配置文件~/.vimrc,加入以下三行:

letTlist_Show_One_File=1

letTlist_Exit_OnlyWindow=1

letTlist_Auto_Open=1


vim实在是强大的不得了,不用不知道,一用吓一跳,爱死了

我的vim

vim插件下载地址点击打开链接


分享到:
评论

相关推荐

    vim7.2 for windows 包含增强插件

    vim对于广大的linux用户来说并不陌生,本人提供的是自己收藏的东东,包括简体中文帮助文档、vim文件类型关联脚本vim-reg.reg(在windows下的vim没有文件关联功能,因此在打开每个文件前都需要右键使用vim打开,很是...

    经典vim插件设置

    Vim,全名Vi Improved,是一款强大的文本编辑器,它在传统的vi编辑器基础上进行了大量改进,提供了丰富的功能和高度的可定制性。...对于开发者来说,掌握Vim的高级使用技巧和插件配置,能显著提高开发效率。

    notepad++使用vim插件

    标题"notepad++使用vim插件"指出,我们要讨论的是如何在Notepad++中安装和使用Vim插件。这个过程并不复杂,主要涉及一个名为visimulator.dll的动态链接库文件。动态链接库(DLL)是一种共享库,它包含可供多个程序...

    vim jeffy插件和配置

    Jeffy插件和配置文件(.vim):代码高亮 自动提示等。 vim版本必须大于7.1。 1,备份下vim配置文件(可选) 2,解压jeffy-vim.zip 和里面的jeffy-vim-read.tar.gz 3,进入目录jeffy-vim-read运行安装脚本:#./install....

    vim配置插件-dierge

    vim配置插件

    vim-plugin插件

    Vim 是一款强大的文本编辑器,它以其高度可配置性和高效的工作流而闻名。Vim 插件系统是其灵活性的核心,允许用户通过安装各种插件来扩展编辑器的功能,以适应不同工作场景的需求。"vim-plugin插件" 涵盖了多种提升 ...

    vim 用的c 插件

    在 Vim 中使用 C 插件可以极大地提升编写 C 语言代码的效率和体验。本篇文章将详细探讨如何在 Windows 环境下设置并利用 Vim 的 C 插件,以及这些插件能为 C 编程带来哪些便利。 标题提及的“vim 用的 c 插件”通常...

    vim插件-linux使用

    Vim,全称Vi Improved,是一款强大的文本编辑器,尤其在Linux系统中...熟练掌握Vim插件的使用和管理,能显著提高开发效率,让Vim成为你不可或缺的工具。通过不断探索和定制,你将能够打造出属于自己的理想编辑环境。

    vim插件-配合数字电路systemverilog编程时使用

    安装插件时,只需在`.vimrc`配置文件中添加插件名,并运行Vim的插件管理命令,如`Vundle#install`,即可自动下载和设置。 对于更复杂的SystemVerilog开发,还可以考虑结合其他Vim插件,如NERDCommenter用于注释处理...

    超全的vim配置文件和插件

    【vim配置文件与插件详解】 vim,全称Vi IMproved,是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。...通过学习和掌握这些配置和插件的使用,你将能够更好地利用vim的强大功能,提升自己的生产力。

    systemverilog.vim-1.9插件包

    Systemverilog.vim-1.9插件是专为Vim编辑器设计的一款增强工具,旨在提高SystemVerilog语言的开发效率和代码质量。SystemVerilog是一种广泛应用于集成电路(IC)设计领域的硬件描述语言,它提供了丰富的结构和行为...

    vim+windows 文件

    下面将详细介绍如何在Windows上安装和使用vim,以及一些常用插件的功能。 首先,我们来看基础的安装过程。文件“gvim72.exe”是GVIM的安装程序,用户可以通过运行这个可执行文件在Windows上安装图形化的vim编辑器。...

    eclipse的vim插件

    总之,Eclipse的Vim插件为习惯使用Vim的开发者提供了一种在Eclipse环境中高效工作的可能,它结合了Eclipse的强大功能和Vim的高效编辑方式,是提高开发效率的一个利器。无论是初学者还是经验丰富的开发者,都可以通过...

    vim打造ide代码浏览器的插件

    总结起来,通过Cscope、WinManager、MiniBuffer和TagList等插件,Vim可以被转变为一个强大的代码浏览器,提供类似于IDE的功能,使Linux环境下的代码开发和浏览变得更加高效。这些插件的结合使用,不仅可以提高代码...

    vim/gvim for window 安装和插件

    在Windows环境下安装Vim和Gvim,以及添加和管理插件,是提升工作效率的重要步骤。 首先,让我们详细探讨如何在Windows上安装Vim/Gvim。安装过程通常包括下载安装包和执行安装程序。可以从官方网站或第三方源获取...

    vim 插件,更加方便使用vim编辑器,拥有函数目录,行号自动显示等功能

    Vim,全称为“Vi Improved”,是一款强大的文本编辑器,被广泛用于Linux和Unix系统中。它以其高效、可扩展和高度自定义性而受到程序员和系统管理员的喜爱。本压缩包提供了一些 Vim 插件,旨在使Vim的使用体验更加...

    windows下的使用vim

    在Windows操作系统中,尽管它自带了记事本等文本编辑器,但许多开发者和高级用户更倾向于使用功能强大的文本编辑器或IDE,如Vim。Vim(Vi IMproved)是一款源自于Vi的文本编辑器,它在Linux系统中广受欢迎,同时也...

    vim插件集合和配置

    Vim是一款强大的文本编辑器,深受程序员和代码爱好者喜爱。其可扩展性是它的一大亮点,用户可以通过安装各种插件来提升编辑效率和工作环境。本文将深入探讨“vim插件集合和配置”,以及如何覆盖~目录下的相应文件。 ...

    vim集成各种插件

    Vim插件是为Vim定制功能的小型程序,它们可以扩展编辑器的功能,如自动完成、语法高亮、代码折叠、项目管理、Git集成等。通过安装这些插件,Vim可以从一个基础的文本编辑器转变为一个功能全面的开发环境。 在Ubuntu...

    vim-plug, 我的vim插件, 基于vim-plug安装.zip

    这个压缩包“vim-plug, 我的vim插件,基于vim-plug安装.zip”包含了Vim-plug的源代码,这将帮助你了解如何在你的Vim环境中安装和使用它。 首先,让我们了解一下Vim。Vim(Vi IMproved)是一款强大的文本编辑器,...

Global site tag (gtag.js) - Google Analytics