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

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

时间: 2024-11-08 21:19:29

打造自己的高效Vim编程环境的相关文章

vim编程与调试

一:熟悉vim编程环境: (1):vim环境中的常用变量:<:w> //保存 <:w filename> //另存为文件名为filename的文件.<:wq!> //保存并退出. <:wq! filename> . <:q!> //不保存退出. <:x>  //保存退出. (2):vim工作模式:存在三种工作模式:编辑模式,插入模式,命令模式. 1:编辑模式: 当进行查找和替换时,要按“Esc”键,进入命令模式:输入/或?就可以进行查

手把手教你把Vim改装成一个IDE编程环境(图文)

By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage: http://blog.csdn.net/wooin Copyright: 该文章版权由吴垠和他可爱的老婆小包子所有.可在非商业目的下任意传播和复制.对于商业目的下对本文的任何行为需经作者同意.联系方式:lazy.fox.wu#gmail.com 1 写在前面   Linux 下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux

Vim改装成一个IDE编程环境

1 写在前面   Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了, 我今天教大家把gvim改装成一个简易IDE, 说它"简易"是界面上看起来&quo

04-手把手教你把Vim改装成一个IDE编程环境(图文)

Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了, 我今天教大家把gvim改装成一个简易IDE, 说它"简易"是界面上看起来"简易"

【转】手把手教你把Vim改装成一个IDE编程环境(图文)

手把手教你把Vim改装成一个IDE编程环境(图文) By: 吴垠 Date: 2007-09-07 Version: 0.5 Email: lazy.fox.wu#gmail.com Homepage: http://blog.csdn.net/wooin Copyright: 该文章版权由吴垠和他可爱的老婆小包子所有.可在非商业目的下任意传播和复制.对于商业目的下对本文的任何行为需经作者同意.联系方式:lazy.fox.wu#gmail.com 1 写在前面   Linux下编程一直被诟病的一

vim配置python编程环境及YouCompleteMe的安装教程

python号称人工智能语言,现在可算大热,这篇博客将介绍如何用vim打造一款自己专属的python编程环境. step1 由于安装YouCompleteMe需要vim8.0及以上版本,所以得安装使用vim的8.0及以上版本,使用vim --version查看自己的vim版本,如果没达到要求可以参考我的另一篇博客vim8.0安装教程进行安装.接着使用git安装vim的包管理工具Vundle git clone https://github.com/gmarik/Vundle.vim.git ~/

使用anaconda和conemu打造Python编程环境

首先,在写下我的第一篇51CTO学院博客之前,我想说一些我的心里话,以便回首来时路的时候,我能够正确地审视自己的心路历程.我今年大三了,现在是寒假之时.不知道何时,我的心里产生了一股危机感,身边的同学都已经选择了走上考研路,不管是学习好的还是学习不好的,这让我压力很大.我的爸爸肯定是天天在我耳边念叨我考研考研,他老人家肯定是盼着我有更高的学历的.我还是迟疑了.我的内心不想这样的,真的,我不想这样的.我想真正地学会Python全栈的技术,而不是每天沉浸在书本中复习考研.我想真正地能为单位带来一些技

Qt在Mac OS X下的编程环境搭建(配置Qt库和编译器,有图,很清楚)

尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/46234079 在Mac OS X下使用Qt开发,需要配置Qt库和编译器.编译器只能使用苹果公司自主研发的Clang.1.分别下载并安装XCode和Command Line Tools(必须安装),安装完毕后,Clang就有了. https://developer.apple.com/downloads/ 2.下载Qt并默认安装 http://down

unix网络编程环境搭建

unix网络编程环境搭建 新建 模板 小书匠 1.点击下载源代码 可以通过下列官网中的源代码目录下载最新代码: http://www.unpbook.com/src.html 2.解压文件 tar -xzvf upv13e.tar.gz 3.上传至阿里云 本人本地已经配置好,这次实验是将环境搭建至云服务器中. scp -r unpv13e [email protected]120.76.140.119:/root/program/unp // -r 上传文件夹  4.编译文件 cd unpv13