Vim - 常用配置
基本配置
不用任何插件的情况下,先按如下配置:
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 - 常用配置的更多相关文章
- vim常用配置 vimrc文件
自从接触vim,自己瞎鼓捣.vimrc也有一段时间了.收集记录一下好用的配置. 一.奇技淫巧 1.折叠代码 折叠代码常常用在代码块较长的情况下,比如一个文件里定义了很多个函数,或者注释.括号影响的阅读 ...
- Vim 常用配置及插件安装使用
在 Linux 中习惯了 vim 编辑器. 找了一些资料后自己尝试配置起来了.下面是一些过程. 首先需要知道 vim 相关的配置都是写在 ~/.vimrc 文件中.我下面的笔记只配置了一些我常用的功能 ...
- Vim常用配置
mkdir -p ~/.vim/bundle/Vundle.vim git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/V ...
- Vim常用配置(~/.vimrc)(转载)
原文地址:http://www.2cto.com/os/201309/246271.html " This must be first, beacuse it changes other o ...
- Vim常用命令及配置方案
Vim常用命令及配置方案 几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...
- vim+vundle配置
Linux环境下写代码虽然没有IDE,但通过给vim配置几个插件也足够好用.一般常用的插件主要包括几类,查找文件,查找符号的定义或者声明(函数,变量等)以及自动补全功能.一般流程都是下载需要的工具,然 ...
- Vim 常用技巧:
Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...
- VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装
VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装在阿里云开源镜像地址下载镜像Index of /centos/7.2.1511/isos/x86_64/http://mirro ...
- Linux常用命令及vim的使用、vim常用插件(推荐)
看了3篇文章,很好 vim中的区域拷贝 剪切,粘贴: 正常模式,移动光标到剪切的区域开始处,按v,进入可视模式,然后选择区域.按x键,剪切.到指定位置按p粘贴. 撤销按u 恢复按ctrl-r 简明 ...
随机推荐
- geotrellis使用(三十三)关于Geotrellis读取Geotiff的两个细节
前言 在上两篇文章中我介绍了如何直接将Geotiff(一个或者多个)发布为TMS服务.这中间其实我遇到了一个问题,并且这个问题伴随Geotrellis的几乎所有使用案例,下面我进行详细讲述. 一.问题 ...
- 警惕Java编译器中那些“蜜糖”陷阱
一.前言 随着Java编译器不断地向前发展,它为程序员们提供了越来越多的“蜜糖”(compiler suger),极大地方便了程序的开发,例如,foreach的增强模式,自动拆箱与装箱以及字符串的连接 ...
- 月亮之眼_KEY
[问题描述] 吉儿是一家古董店的老板娘,由于她经营有道,小店开得红红火火.昨天,吉儿无意之中得到了散落民间几百年的珍宝--月亮之眼.吉儿深知"月亮之眼"价值连城:它是由许多珍珠相连 ...
- 我的第一个python web开发框架(3)——怎么开始?
小白与小美公司经过几次接触商谈,好不容易将外包签订了下来,准备开始大干一场.不过小白由于没有太多的项目经验,学过python懂得python的基本语法,在公司跟着大家做过简单功能,另外还会一些HTML ...
- C++ static成员变量与static成员函数
类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类 ...
- 记一次坑爹的RSA旅程____快哭了555555555(来自实验吧的warmup的wp和感想)
这么简单的题目搞了我那么久,森森感觉自己菜的不行....哎,努力吧少年,BXS已经全国第二了. 嗯,废话不说,这道题目来自实验吧的"warmup",附上链接 http://www. ...
- http://codeforces.com/contest/536/problem/B
B. Tavas and Malekas time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- struts整合easyUI以及引入外部jsp文件url链接问题
找了很久没有解决,在这篇博客中找到了思路,在此引用: 使用EasyUI搭建后台页面框架 EasyUI菜单的实现 ssh项目可参考: ssh框架项目实战
- Android开发更新UI的几种方式
1.runOnUiThread 2.handler post 3.handler sendmessage 4.view post xml布局文件: <RelativeLayout xmlns:a ...
- spring 内部工作机制(二)
本章节讲Spring容器从加载配置文件到创建出一个完整Bean的作业流程及参与的角色. Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表, ...