快速浏览和操作Buffer -- 插件: MiniBufExplorer

下载地址 [http://www.vim.org/scripts/script.php?script_id=159]

版本     6.3.2

安装     将下载的 minibufexpl.vim文件丢到 \~/.vim/plugin 文件夹中即可

手册     在minibufexpl.vim 文件的头部

在编程的时候不可能永远只编辑一个文件, 你肯定会打开很多源文件进行编辑,

如果每个文件都打开一个vim进行编辑的话那操作起来将是多麻烦啊, 所以vim有bu

ffer(缓冲区)的概念, 可以看vim的帮助:

:help buffer

vim自带的buffer管理工具只有:ls, :bnext, :bdelete 等的命令, 既不好用,

又不直观. 现在隆重向你推荐一款vim插件(plugin): MiniBufExplorer

使用方法:

重新启动vim, 当你只编辑一个buffer的时候MiniBufExplorer派不上用场, 当

你打开第二个buffer的时候, MiniBufExplorer窗口就自动弹出来了, 见下图:

上面那个狭长的窗口就是MiniBufExplorer窗口, 其中列出了当前所有已经打开

的buffer, 当你把光标置于这个窗口时, 有下面几个快捷键可以用:

<Tab>   向前循环切换到每个buffer名上

<S-Tab> 向后循环切换到每个buffer名上

<Enter> 在打开光标所在的buffer

d       删除光标所在的buffer

在命令模式下:

:bn   打开当前buffer的下一个buffer

:bp   打开当前buffer的前一个buffer

:b"num"   打开指定的buffer,"num"指的是buffer开始的那个数字,比如上图,我想打开list_audit.erb,输入:b7就ok了

以下的两个功能需要在~/.vimrc中增加:

let g:miniBufExplMapCTabSwitchBufs = 1

<C-Tab> 向前循环切换到每个buffer上,并在但前窗口打开

<C-S-Tab> 向后循环切换到每个buffer上,并在但前窗口打开&nbsp;  注:MiniBufExplore默认是这两个快捷键,可是在ubuntu10.04中不能使用,原因可能是bash中已经定义了ctrl+tab快捷键所以我们可以更换此快捷键

在~/.vim/plugin/minibufexpl.vim中

找到

" &nbsp;noremap <C-TAB> &nbsp; :call <SID>CycleBuffer(1)<CR>:<BS>  noremap <C-TAB>   :call <SID>CycleBuffer(1)<CR>:<BS>

noremap <C-S-TAB> :call <SID>CycleBuffer(0)<CR>:<BS>

重新定义成自己的map即可

我的为

noremap <silent> <leader>n&nbsp;&nbsp; :call <SID>CycleBuffer(1)<CR>:<BS>

noremap <silent> <leader>N&nbsp; :call <SID>CycleBuffer(0)<CR>:<BS>

这样就可以用,n&nbsp; ,N 进行buffer切换(let mapleader = "," 我已在~/.vimrc中定义leader)

如果在~/.vimrc中设置了下面这句:

let g:miniBufExplMapWindowNavVim = 1

则可以用<C-h,j,k,l>切换到上下左右的窗口中去,就像:

C-w,h j k l    向"左,下,上,右"切换窗口.

在~/.vimrc中设置:

let g:miniBufExplMapWindowNavArrows = 1

是用<C-箭头键>切换到上下左右窗口中去

以下是MiniBufExplorer的几个命令:

:MiniBufExplorer    " Open and/or goto Explorer

:CMiniBufExplorer   " Close the Explorer if it's open

:UMiniBufExplorer   " Update Explorer without naviting

:TMiniBufExplorer   " Toggle the Explorer window open and closed

如果你用gvim的话,MiniBufExplorer会出现多个窗口的烦人问题,我一直没能很好地解决这个问题,一般都是用:CMiniBufExplorer命令把MiniBufExplorer窗口给close掉

如果你在.vimrc(windows底下的是_vimrc)中配置了mapleader,如我的

let mapleader = ","       "Set mapleader

你就可以在normal模式下用,mbc代替 :CMiniBufExplorer命令

其他命令为:

:MiniBufExplorer    ,mbe

:CMiniBufExplorer   ,mbc

:UMiniBufExplorer   ,mbu

:TMiniBufExplorer  ,mbt

推荐大家一个安装vim插件的脚本,可以实现一个命令就把常用插件安装好,很方便:一个具有类似于IDE功能的容易安装的VIM

 
 

MiniBufExplorer现在是vim默认安装的插件了吧。

记住几个常用的命令(从SO上学来的):

  • :e <filename> 打开文件
  • :ls    当前打开的buf
  • :bn    下一个buf
  • :bp    前一个buf
  • :b<n>    n是数字,第n个buf
  • :b<tab>    自动补齐
  • :bd    删除buf

vim 多个文件切换 :b 命令的更多相关文章

  1. 二、vim的保存文件和退出命令

    vim的保存文件和退出命令   命令 简单说明 :w 保存编辑后的文件内容,但不退出vim编辑器.这个命令的作用是把内存缓冲区中的数据写到启动vim时指定的文件中. :w! 强制写文件,即强制覆盖原有 ...

  2. vim的保存文件和退出命令

    文章来源:http://blog.sina.com.cn/s/blog_5e357d2d0100zmth.html 命令 简单说明 :w 保存编辑后的文件内容,但不退出vim编辑器.这个命令的作用是把 ...

  3. vim 多个文件切换

    打开多个文件:1.vim还没有启动的时候:在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件2.vim已经启动输入:open file可以再打开一个文件,并且 ...

  4. vim文本编辑器——文件导入、命令查找、导入命令执行结果、自定义快捷键、ab命令、快捷键的保存

    1.文件的导入(r): 导入前: 导入后: 在光标处,将tmp目录下的zhbb文件的内容导入到了当前文件. 2.命令的查找: 3.导入命令的执行结果: 光标所在行为导入的位置. 4.自定义快捷键: ( ...

  5. linux命令之vim使用-(转)vim的保存文件和退出命令

    博客地址: http://blog.sina.com.cn/s/blog_5e357d2d0100zmth.html

  6. DOS当中的基本操作命令,如何切换磁盘,如何查看文件和文件夹,如何清屏,进入文件夹的命令,javac是什么意思,作用是什么?DOS如何建文件夹?退出文件夹?

    如何切换磁盘:使用盘符+:举例 d: 如何查看文件和文件夹 dir/w 如何清屏: cls (clear screen) 进入文件夹的命令cd ,举例cd JDK javac是什么意思,c 是comp ...

  7. vim的跨文件复制粘贴

    1.用vim打开一个文件,例如:a.cpp 2.在普通模式下,输入:":sp"(不含引号)横向切分一个窗口,或者":vsp"纵向切分一个窗口,敲入命令后,你将看 ...

  8. vim置于后台,vim 编辑多文件

    这里介绍一个很实用的方法:1.将vim置于后台,直接按 ctrl + z可以将当前的vim置于后台 2.然后可以去别的目录再打开一个 当你需要打开之前的vim的时候3.打jobs命令看当前有哪些vim ...

  9. VIM vim/vi的文件内、跨文件复制粘贴操作、替换操作

    https://www.cnblogs.com/shengulong/p/6702868.html vi/vim 中可以使用 :s 命令来替换字符串 1.s/vivian/sky/ 替换当前行第一个 ...

随机推荐

  1. 【jq】插件—弹出层layer.js

    layer.js包含了所有的层级情形,并且附加的有:tab层,相册层.webIM层. 适用于移动版本的layer.js   为layer for mobile 配套的layui 非常适合用于后台系统的 ...

  2. 在Linux中连接android设备

    1.用usb线连接电脑和android设备,在命令行中输入lsusb可查看采用usb连接到电脑的设备 找到设备的vendor ID. 如上图: "Bus 002 Device 007: ID ...

  3. uniapp开发踩坑记录

    数组绑定class的问题 版本:v1.5.4 自定义了一个icon的组件,部分代码如下 <template> <text :class="[name, icon]" ...

  4. PHP访问数缓存处理

    利用Redis或Memcache作为MySQL的缓存,采用是ThinkPHP框架. 方法一 采用ThinkPHP的S方法: $savedata['uid']=session('uid'); $save ...

  5. 洛谷 P3795 钟氏映射

    洛谷 P3795 钟氏映射 题目背景 2233年,CSSYZ学校的数学老师兼数学竞赛顾问钟JG已经2200+岁啦! 为了庆生,他或她给广大人民群众出了道题. 题目描述 设集合N=M={x∣x∈N+​, ...

  6. 10 ORM 多表操作 查询

    1.子查询:基于对象的跨表查询 def query(request): """ 跨表查询: 1.基于对象查询 2.基于双下划线查询 3.聚合.分组查询 4. F Q 查询 ...

  7. 07 -模型层ORM

    1.orm简介 2. models.py from django.db import models # Create your models here. class Book(models.Model ...

  8. iOS开发者证书-详解

    iOS开发者证书-详解/生成/使用 本文假设你已经有一些基本的Xcode开发经验, 并注册了iOS开发者账号. 相关基础 加密算法 现代密码学中, 主要有两种加密算法: 对称密钥加密 和 公开密钥加密 ...

  9. druid之监控设置及问题小记

    druid是什么注不再赘述了.想了解直接参见 https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 本文 ...

  10. paramiko 简单的使用

    感觉自己操作服务器还要用xshell,麻烦很多,于是呢就去google,找到了paramiko. 使用这个模块还是很简单的, 我们链接服务器,只需要导入 SSHClient,AutoAddPolicy ...