基本配置

不用任何插件的情况下,先按如下配置:

set nu
syntax on
set hlsearch set tabstop=4
set shiftwidth=4
set expandtab
set smartcase
set ic colorscheme srcery-drk

Vundle

Vundle是Vim的插件管理器,像NeoBundle也是基于Vundle实现。
虽然Vim插件可以独立安装,但如果换了台机器,使用Vundle只需要copy一份.vimrc即可。

安装方法并不复杂,先clone到~/.vim目录下:

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

在~/.vimrc头部加上以下内容:

set nocompatible
filetype off set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin() Plugin 'VundleVim/Vundle.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'git://git.wincent.com/command-t.git'
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} call vundle#end() " required
filetype plugin indent on " required

保存,在vim里执行PluginInstall,等过程执行结束即可。

或者在命令行执行以下命令也是相同的效果:

vim +PluginInstall +qall

查看帮助:

:h vundle

在~/.vimrc声明插件,例如:

Plugin 'scrooloose/nerdtree'
Plugin 'shougo/vimshell.vim'

基本命令:

" :PluginList       - 列出所有插件
" :PluginInstall - 安装插件
" :PluginInstall! - 更新插件
" :PluginSearch foo - 搜索foo插件
" :PluginClean - 移除未使用插件

NerdTree

目录树插件,前提安装了Vundle,在~/.vimrc声明了NerdTree:

Plugin 'scrooloose/nerdtree'

在vim中执行以下命令即可完成安装:

:source %
:PluginInstall

我的NerdTree配置如下:

" ============ NERDTree ============
" open NERDTree by default
autocmd vimenter * NERDTree " synchronize NERDTree with current opened file
autocmd BufEnter * lcd %:p:h " open NERDTree automatically when vim starts up if no files were specified
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif " open NERDTree automatically when vim starts up on opening a directory
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif " open NERDTree with Ctrl+n
map <C-n> :NERDTreeToggle<CR> " view the current buffer in NERDTree
map <leader>r :NERDTreeFind<cr>
" close vim if the only window left open is a NERDTree
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif " change arrows
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾' " show hidden files by default
let NERDTreeShowHidden=1

NerdTree的常用快捷键:

快捷键 说明
? 查看帮助
m 呼出菜单,对当前目录进行操作
r 刷新目录
F 显示、隐藏隐藏文件
A 目录树切全屏
go 打开文件,光标停留在目录树上
i|gi 水平打开窗口
s|gs 垂直打开窗口
ctrl+w+h|j|k|l 方向键选择窗口
ctrl+w+w 切窗口
t|T 在tab打开窗口
gt|gT 切tab

如果用git,有个NerdTree的扩展插件,可以在目录树中显示文件的git status。
安装仍然是通过Vundle,插件声明如下:

Plugin 'Xuyuanp/nerdtree-git-plugin'

TagBar

个人阅读代码时,如果IDE打开的是另一个工程,一般不会将工程导入IDE再读,而是用Vim读代码。
只是跳转到变量或者函数的功能只是通过gD的话,跳转的位置并不是很准确。

TagBar可以生成文件中的变量、函数列表。

用Vundle安装,在~/.vimrc加上以下声明:

Plugin 'majutsushi/tagbar'

保存,执行:PluginsInstall,等待过程结束。

个人使用的配置如下:

let g:tagbar_width = 30
nmap <F10> :TagbarToggle<CR>
let g:tagbar_autopreview = 1
let g:tagbar_sort = 0

source配置文件后,重新进入vim,按下F10呼出TagBar。

macOS可能出现以下提示:

Tagbar: Ctags doesn't seem to be Exuberant Ctags!

TagBar依赖Exuberant Ctags 5.5,这种情况brew install ctags后重新进入vim即可。

Vim - 常用配置的更多相关文章

  1. vim常用配置 vimrc文件

    自从接触vim,自己瞎鼓捣.vimrc也有一段时间了.收集记录一下好用的配置. 一.奇技淫巧 1.折叠代码 折叠代码常常用在代码块较长的情况下,比如一个文件里定义了很多个函数,或者注释.括号影响的阅读 ...

  2. Vim 常用配置及插件安装使用

    在 Linux 中习惯了 vim 编辑器. 找了一些资料后自己尝试配置起来了.下面是一些过程. 首先需要知道 vim 相关的配置都是写在 ~/.vimrc 文件中.我下面的笔记只配置了一些我常用的功能 ...

  3. Vim常用配置

    mkdir -p ~/.vim/bundle/Vundle.vim git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/V ...

  4. Vim常用配置(~/.vimrc)(转载)

    原文地址:http://www.2cto.com/os/201309/246271.html " This must be first, beacuse it changes other o ...

  5. Vim常用命令及配置方案

    Vim常用命令及配置方案   几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...

  6. vim+vundle配置

    Linux环境下写代码虽然没有IDE,但通过给vim配置几个插件也足够好用.一般常用的插件主要包括几类,查找文件,查找符号的定义或者声明(函数,变量等)以及自动补全功能.一般流程都是下载需要的工具,然 ...

  7. Vim 常用技巧:

    Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...

  8. VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装

    VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装在阿里云开源镜像地址下载镜像Index of /centos/7.2.1511/isos/x86_64/http://mirro ...

  9. Linux常用命令及vim的使用、vim常用插件(推荐)

    看了3篇文章,很好 vim中的区域拷贝 剪切,粘贴: 正常模式,移动光标到剪切的区域开始处,按v,进入可视模式,然后选择区域.按x键,剪切.到指定位置按p粘贴. 撤销按u 恢复按ctrl-r  简明 ...

随机推荐

  1. 运用GRASP原则来做uml交互类图-------pos机实例

    重要的几个GRASP原则:1.控制器模式   2.创建者模式 (原则)3.信息专家模式(原则) 4. 高内聚 低耦合   这里所说的模式并不是java中针对具体的事件的设计模式 主成功场景的几个操作: ...

  2. Servlet第三篇【request和response简介、response的常见应用】

    response.request对象 Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象.和代表响应的response对象 既然request对象代表ht ...

  3. System.getProperty()参数大全

    System.getProperty()获取Java各种配置属性,参数如下: Java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vend ...

  4. 作为一个C#程序员, 你应该上手Kotlin

    Kotlin最近火了, 在Google IO大会 Kotlin宣布Kotlin将会成为Android官方开发语言之后, Kotlin这样一个JVM上的新*(其实从诞生到现在已经有5年历史的)语言. 终 ...

  5. node 当中的 cnpm和npm 的区别和使用

    在安装nodejs之后会有npm命令 打开命令符输入之后 输入node -v(记得-v前空格)查看版本信息   如果显示出来了就说明安装成功 然后 npm 可以安装node插件 cnpm使用的是淘宝网 ...

  6. 如何从两个List中筛选出相同的值

    问题 现有社保卡和身份证若干,想要匹配筛选出一一对应的社保卡和身份证. 转换为List socialList,和List idList,从二者中找出匹配的社保卡. 模型 创建社保卡类 /** * @a ...

  7. Linux入门之常用命令(3)

    df 查看硬盘总容量.已用容量和inode [-ikm] du 查看文件已用容量,显示所有文件 每块硬盘最多四个分区. fdisk [-l] [设备名称] 硬盘分区工具 (-l 显示这张硬盘的分区) ...

  8. Hive 存储类型 StoreType

    file_format: : SEQUENCEFILE | TEXTFILE -- (Default, depending on hive.default.fileformat configurati ...

  9. java中log4j学习笔记

    Log4j是apache的一个开源项目,用来操作程序日志信息的框架.因便于管理,在工程中用来代替System.out打印语句.通过配置Log4j中的log4j.properties,可以指定日志信息的 ...

  10. 虚拟机中ubuntu-16.04 Linux系统下配置mysql数据库,并在windows下使用navicat远程连接

    Linux系统下mysql数据库安装配置步骤: 1.在服务器上安装mysql:sudo apt-get install mysql-server sudo apt-get install mysql- ...