快速浏览和操作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. Spring源码分析(十四)从bean的实例中获取对象

    摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 在getBean方法中,getObjectForBeanlnstance ...

  2. Linux磁盘与文件系统管理(二)

    fsck 检查并修复文件系统中的错误,即针对有问题的系统或磁盘进行修复,类似的命令还有e2fsck,修复前有以下要求: 1)文件系统必须是卸载状态 2)不要对正常的分区使用fsck,不加参数的情况下, ...

  3. Go语言连接Oracle(就我这个最全)

    综合参考了网上挺多的方案 倒腾了半天终于连接好了 Go都出来这么多年了 还没有个Oracle的官方驱动... 过程真的很蛋疼..一度想放弃直接连ODBC 首先交代一下运行环境和工具版本: WIN10 ...

  4. sqlserver分区视图中分区列的规则

    分区列规则 分区列存在于每个成员表上,并且通过 CHECK 约束标识特定表中的可用数据.分区列必须遵守如下规则: 每个基表都拥有键值由 CHECK 约束所强制的分区列.每个表的 CHECK 约束的键范 ...

  5. 洛谷 P1580 yyy loves Easter_Egg I

    洛谷 P1580 yyy loves Easter_Egg I 题解: 队列+字符串 #include <cstdio> #include <string> #include ...

  6. 安装spark-1.5遇到的一些问题

    1.java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCodeLoader.buildSupportsSnappy()Z 这个问 ...

  7. $watch, $watchCollection, $watchGroup的使用

    官方文档 $watch简单使用 $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. $watch(watchExpression, listener, objec ...

  8. 第二章:走进shell

    2.2 通过Linux控制台终端访问CLI(command line interface) 打开CLI:control+alt+t   用于设置前景色和背景色的setterm选项 选项 参数 描述 - ...

  9. 原来new的java对象不是所有的都存在堆内存

    JVM在晚期(运行期)优化时,使用到一种技术----逃逸分析. 补充说明:逃逸分析在1999年就已提出,但是JDK1.6才实现逃逸分析.而且,这项优化目前仍不成熟,仍有很大改进余地. 这是大坑啊,目前 ...

  10. python+appium 实现qq聊天的消息,滑动删除聊天消息

    有人问我,appium怎么去删除qq聊天的, 当时想到的是滑动, 可是具体的大概有个思路,于是乎,就想自己来实现下, 打开模拟器,开发者选项,找到显示坐标的 然后去打开qq获取要删除的消息的坐标后, ...