码迷,mamicode.com
首页 > 系统相关 > 详细

打造自己的高效Vim编程环境

时间:2015-11-10 16:03:45      阅读:407      评论:0      收藏:0      [点我收藏+]

标签:

Vim简介

Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

Vim功能概要

  • 根据设定可以和原始vi完全兼容
  • 多缓冲编辑
  • 任意个数的分割窗口(横,竖)
  • 具备列表和字典功能的脚本语言
  • 可以在脚本中调用Perl,Ruby,Python,Tcl,MzScheme
  • 单词缩写功能
  • 动态单词补全
  • 多次撤销和重做
  • 对应400种以上文本文件的语法高亮
  • C/C++,Perl,Java,Ruby,Python等40种以上语言的自动缩排
  • 利用ctags的标签中跳转
  • 崩溃后文件恢复
  • 光标位置和打开的缓冲状态的保存 复原(session功能)
  • 可以对两个文件进行差分,同步功能的diff模式
  • 远程文件编辑
  • Omni补全(上下文相关的补全)

Vim命令图解:

 技术分享

装上插件后的Vim:

 技术分享

下面是插件:
#================================================
1.Ctags
(1). 功能
Ctags对浏览代码非常的方便, 可以在函数, 变量之间跳来跳去等等.
(2). 安装
首先, 下载ctags安装包Exuberant Ctags, 然后解压并安装, 命令如下:
$ tar -xzvf ctags-5.7.tar.gz
$ cd ctags-5.7
$ ./configure
# make
# make install
(3). 使用方法
去你的源码目录, 如果你的源码是多层的目录, 就去最上层的目录, 在该目录下
运行命令: ctags -R,此时在源码目录下会生成一个 tags 文件
我现在以我的一个C的源码目录做演示
$ cd ~/C/C_Project/Graph
$ ctags -R
现在用vim打开~/C/C_Project/Graph/main.c
$vi ~/C/C_Project/Graph/main.c
再在vim中运行命令:
:set tags=~/C/C_Project/Graph/tags
该命令将tags文件加入到vim中来, 你也可以将这句话放到~/.vimrc中去,
对于经常在不同工程间编程, 可以在.vimrc中设置:
set tags=tags;    // ; 不能没有
set autochdir
(4). 使用方法
把光标定位到某一函数名上, 按下 Ctar + ], vim就可以自动切换到该函数定义处!
要返回只需要按下Ctrl + t .
#================================================
#================================================
2.TagList
(1). 功能
高效地浏览源码, 其功能就像VC/Eclipse/NetBeans中的workpace,
那里面列出了当前文件中的所有宏,全局变量, 函数名等.
(2). 安装
下载taglist压缩包, 然后把解压的两个文件taglist.vim 和 taglist.txt 分别放到
$HOME/.vim/plugin 和 $HOME/.vim/doc 目录中.
(3). 使用方法
首先请先在你的~/.vimrc文件中添加下面语句:
let Tlist_Ctags_Cmd=‘/bin/ctags‘
此时用vim打开一个C源文件试试:
$ vim ~/vim/src/main.c
进入vim后用下面的命令打开taglist窗口.
:Tlist
为了更方便地使用, 可以在.vimrc文件中加入:
map <silent> <leader>tl :TlistToggle<CR>
这样就可以用 ",tl" 命令进行taglist窗口的打开和关闭之间方便切换了. // 这里
的","是我.vimrc设置的leader, 你也可以设置成别的, 在.vimrc中修改即可, 如我
的: let mapleader=","
#================================================
#================================================
3. WinManager
(1). 功能
管理各个窗口, 或者说整合各个窗口.
(2). 安装
下载WinManager.zip压缩包, 解压后把*.vim文件放到 $HOME/.vim/plugin 目录中,
把*.txt文件放到 $HOME/.vim/doc (帮助文件)目录中.
(3). 使用方法
在.vimrc中加入如下设置:
let g:winManagerWindowLayout=‘FileExplorer|TagList|BufExplorer‘
nmap <silent> <leader>wm :WMToggle<cr>
(4). 使用方法
在终端输入vim启动vim:
$vim
在正常模式下, 敲入 ",wm" 即可看到, vim的左侧新建了两个窗口:FileExplorer和
BufExplorer, 这样我们即可在FileExplorer窗口很方便地对目录进行查看, 编辑等
操作; 在BufExplorer窗口中查看当前vim已经打开那些文件.
#================================================
#================================================
4. c.vim
(1). 功能
C/C++-IDE for Vim. 简单的说, 就是如果安装配置好后, vim就是一个
c/c++编程的一个IDE, 其功能堪比Windows里常用的VC.
(2). 安装
下载cvim.zip压缩包后, 把压缩包copy到 $HOME/.vim 目录
unzip cvim.zip    // 解压命令
(3). 使用方法
在终端用vim打开一个c文件:
$vim hello.c
进入vim, 敲入 "\im" 即可发现一个main函数框架就这样快捷简单完美地写出.
#================================================
附上我的.~/vimrc文件和~/.vim文件树:
~/vimrc文件:
"syntax enable"支持自定义语法
":helptags ~/.vim/doc "生成help-tags(Vim中)
set number "设置行号
set showmode "显示模式
set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
set history=1000 "记录历史的行数
set background=dark "背景使用黑色
set autoindent "vim使用自动对齐,也就是把当前行的对起格式应用到下一行
set smartindent "依据上面的对起格式,智能的选择对起方式
set tabstop=4 "设置tab键为4个空格
set shiftwidth=4 "设置当行之间交错时使用4个空格
set showmatch "设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set ruler "在编辑过程中,在右下角显示光标位置的状态行
filetype on "侦测文件类型
filetype plugin on "载入文件类型插件
filetype indent on "为特定文件类型载入相关缩进文件
let g:C_MapLeader  = ‘,‘
"****** ctags start ******
"ctags -R "生成tags文件
set tags=tags; "导入tags文件到Vim
set autochdir
let mapleader=","
"****** ctags end ******
"****** Taglist start ******
map <silent> <leader>tl :TlistToggle<cr> "用 ",tl" 命令进行taglist窗口的打开和关闭之间切换
let Tlist_Ctags_Cmd = ‘/usr/bin/ctags‘
let Tlist_Exit_OnlyWindow = 1
let Tlist_Show_One_File=1
let Tlist_OnlyWindow=1
let Tlist_Use_Right_Window=0
let Tlist_Process_File_Always = 1
let Tlist_Sort_Type=‘name‘
let Tlist_Exit_OnlyWindow=1
let Tlist_Show_Menu=1
let Tlist_Max_Submenu_Items=10
let Tlist_Max_Tag_length=20
let Tlist_Use_SingleClick=0
let Tlist_Auto_Open=0
let Tlist_Close_On_Select=0
let Tlist_File_Fold_Auto_Close=1
let Tlist_GainFocus_On_ToggleOpen=0
let Tlist_Process_File_Always=1
let Tlist_WinHeight=10
let Tlist_WinWidth=18
let Tlist_Use_Horiz_Window=0
"let g:miniBufExplMapCTabSwitchBufs = 1
"****** Taglist end ******
"****** Winmanage start ******
"nmap <silent> <leader>f :FirstExplorerWindow<cr> "跳到FileExplorerWindow
"nmap <silent> <leader>b :BottomExplorerWindow<cr> "跳到TaglistWindow
nmap <silent> <leader>w :WMToggle<cr> "打开Winmanager
let g:winManagerWindowLayout=‘FileExplorer|TagList|BufExplorer‘
let g:persistentBehaviour=0
let g:winManagerWidth=25
let g:defaultExplorer=1
"****** Winmanage end ******
~/.vim文件树
:~/.vim$ tree
.
├── colors
├── compiler
├── c-support
│   ├── codesnippets
│   │   ├── calloc_double_matrix.c
│   │   ├── calloc_int_matrix.c
│   │   ├── main.c
│   │   ├── main.cc
│   │   ├── Makefile
│   │   ├── Makefile.multi-target.template
│   │   ├── print_array.cc.noindent
│   │   ├── print_double_array.c.noindent
│   │   └── print_int_array.c.noindent
│   ├── doc
│   │   ├── ChangeLog
│   │   ├── c-hotkeys.pdf
│   │   └── c-hotkeys.tex
│   ├── rc
│   │   ├── customization.ctags
│   │   ├── customization.gvimrc
│   │   ├── customization.indent.pro
│   │   └── customization.vimrc
│   ├── scripts
│   │   └── wrapper.sh
│   ├── templates
│   │   ├── c.comments.template
│   │   ├── c.cpp.template
│   │   ├── c.idioms.template
│   │   ├── cpp.comments.template
│   │   ├── cpp.cpp.template
│   │   ├── cpp.idioms.template
│   │   ├── cpp.preprocessor.template
│   │   ├── cpp.statements.template
│   │   ├── c.preprocessor.template
│   │   ├── c.statements.template
│   │   └── Templates
│   └── wordlists
│       ├── c-c++-keywords.list
│       ├── k+r.list
│       └── stl_index.list
├── doc
│   ├── bufexplorer.txt
│   ├── csupport.txt
│   ├── taglist.txt
│   ├── tags
│   └── winmanager.txt
├── ftplugin
│   ├── c.vim
│   └── make.vim
├── indent
├── keymap
├── plugin
│   ├── bufexplorer.vim
│   ├── c.vim
│   ├── taglist.vim
│   ├── winfileexplorer.vim
│   ├── winmanager.vim
│   └── wintagexplorer.vim
├── README.csupport
└── syntax

打造自己的高效Vim编程环境

标签:

原文地址:http://www.cnblogs.com/pycole/p/4952949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!