快速浏览和操作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. Linux 无法连接网络排查方法

    .hosts文件增加 127.0.0.1 对localhost的解析. .检查/etc/resove.cnf dns配置是否正确 .route命令检查是否有默认路由,没有就 route add 网段 ...

  2. python 定时器schedule执行任务

    import schedule import time """英文版书籍:<essential sqlalchemy>,这本书讲了很多在每天某个指定的时间点上 ...

  3. 总结js基础方法

    //判断对象上是否有个这个属性 hasProreturn obj != null && hasOwnProperty.call(obj, key); //判断是不是布尔值 isBool ...

  4. CH1102 火车进出栈问题(高精/卡特兰数)

    描述 一列火车n节车厢,依次编号为1,2,3,-,n.每节车厢有两种运动方式,进栈与出栈,问n节车厢出栈的可能排列方式有多少种. 输入格式 一个数,n(n<=60000) 输出格式 一个数s表示 ...

  5. MongoDB相关操作

    1.  连接MongoDB <?php //1.连接到MongoDB $host = "127.0.0.1"; $port = 27017; $server = " ...

  6. php使用urlencode对中文编码而引出的问题:urlencode和rawurlencode的区别

    事件背景: 之前做h5小游戏,需要后端输出用户的相关信息给前端,输出的内容有:用户id,用户昵称等字段,使用get方式传参.后端使用PHP语言对中文昵称进行格式化编码,使用的是常用的urlencode ...

  7. Scala_单例对象

    在 Scala 中,是没有 static 这个东西的,但是它也为我们提供了单例模式的实现方法,那就是使用关键字 object. 对象的无参构造器在第一次使用时被调用,且单例对象没有有残构造器. Enu ...

  8. Java基础——注释规范

    一.注释格式分类: 1.单行(single-line)注释://…… 2.块(block)注释:/*……*/ 3.文档注释:/**……*/ javadoc有如下: 二.加注释的场景: 1. 基本注释( ...

  9. 2017-2018-1 20155305 《信息安全系统设计基础》第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客)

    2017-2018-1 20155305 <信息安全系统设计基础>第四周学习总结(课堂提交作业未来得及提交码云链接myod补充博客) 课堂提交题目要求 编写MyOD.java 用java ...

  10. Storm 第三章 Storm编程案例及Stream Grouping详解

    1 功能说明 设计一个topology,来实现对文档里面的单词出现的频率进行统计.整个topology分为三个部分: SentenceSpout:数据源,在已知的英文句子中,随机发送一条句子出去. S ...