我是一个vimer,还在用着这个上古时代的编辑器,但我并不是守旧派,因为即使是 现在,vim也在不断的创新。我用vim也有一两年的光景了,但是我还是不敢我自己 精通vim,当然我使用vim基本是两个地方,一个是修改系统的配置文件,一个就是 写Python的时候,至于用来写Java我还没有达到这么强大的驾驭能力。在使用Eclipse 的时候还是感觉用起来非常的不习惯,因为我需要不断的去找鼠标,这让我非常的别扭。 而vim可以让我基本不用离开我的大键盘就完成我的编辑工作。

相信所有使用vim的同学都知道文件管理插件NERDTree,这个几乎是所有拥护vim的开发人员 都会使用的插件,可是我在刚开始使用的时候,完全用错了这个插件,使用起来反而是 负担了。今天就总结一下如何优雅的使用NERDTree。

安装和基本用法

安装插件建议使用Vundle进行安装, Vundle的用法很简单,可以到GitHub上面查看。

在NERDTree操作区的一些基本操作:

?: 快速帮助文档
o: 打开一个目录或者打开文件,创建的是buffer,也可以用来打开书签
go: 打开一个文件,但是光标仍然留在NERDTree,创建的是buffer
t: 打开一个文件,创建的是Tab,对书签同样生效
T: 打开一个文件,但是光标仍然留在NERDTree,创建的是Tab,对书签同样生效
i: 水平分割创建文件的窗口,创建的是buffer
gi: 水平分割创建文件的窗口,但是光标仍然留在NERDTree
s: 垂直分割创建文件的窗口,创建的是buffer
gs: 和gi,go类似
x: 收起当前打开的目录
X: 收起所有打开的目录
e: 以文件管理的方式打开选中的目录
D: 删除书签
P: 大写,跳转到当前根路径
p: 小写,跳转到光标所在的上一级路径
K: 跳转到第一个子路径
J: 跳转到最后一个子路径
<C-j>和<C-k>: 在同级目录和文件间移动,忽略子目录和子文件
C: 将根路径设置为光标所在的目录
u: 设置上级目录为根路径
U: 设置上级目录为跟路径,但是维持原来目录打开的状态
r: 刷新光标所在的目录
R: 刷新当前根路径
I: 显示或者不显示隐藏文件
f: 打开和关闭文件过滤器
q: 关闭NERDTree
A: 全屏显示NERDTree,或者关闭全屏

以上是一些基本的用法,平时常用的就几个。

增加一些配置

在使用NERDTree的过程中有一些不太方便的地方就是打开的过个文件 不共享NERDTree,所以就需要配合安装一个共享插件 vim-nerdtree-tabs, 这就让你赶紧只是打开了一个NERDTree

" 关闭NERDTree快捷键
map <leader>t :NERDTreeToggle<CR>
" 显示行号
let NERDTreeShowLineNumbers=1
let NERDTreeAutoCenter=1
" 是否显示隐藏文件
let NERDTreeShowHidden=1
" 设置宽度
let NERDTreeWinSize=31
" 在终端启动vim时,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" 显示书签列表
let NERDTreeShowBookmarks=1

在NERDTree 中显示git信息

开发的过程中,我们希望Git信息直接在NERDTree中显示出来, 和Eclipse一样,修改的文件和增加的文件都给出相应的标注, 这时需要安装的插件就是 nerdtree-git-plugin

配置信息如下

let g:NERDTreeIndicatorMapCustom = {
\ "Modified" : "✹",
\ "Staged" : "✚",
\ "Untracked" : "✭",
\ "Renamed" : "➜",
\ "Unmerged" : "═",
\ "Deleted" : "✖",
\ "Dirty" : "✗",
\ "Clean" : "✔︎",
\ "Unknown" : "?"
\ }

NERDTree配合使用这两个插件文件管理就很棒了,当然如果再加上ctrlp,那就无敌了。

vim 窗口操作:多tab|窗口拆分的更多相关文章

  1. Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)

    //Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWi ...

  2. vim 多窗口,多tab编辑

    原文: https://blog.csdn.net/shuangde800/article/details/11430659 ------------------------------------- ...

  3. 搞定vim的窗口操作

    最近在给学生演示数据结构代码时,发现用一般的方法总会有不方便,如果使用ide又觉得太浪费了,后来觉得用vim就够了,使用buffer总会需要页面调来跳出,学生看起来容易迷糊.所以就研究了下vim的窗口 ...

  4. (四)、vim的缓冲区、标签、窗口操作

    1.缓冲区的基本操作 a.文件与缓冲区的区别 vim file1   打开一个文件时,其实是从磁盘中读取文件到内存中,文件的内容会被加载到缓冲区中, 这个缓冲区在一个窗口上显示,所以他是一个已激活的缓 ...

  5. vim 多窗口操作

    1.打开多个窗口打开多个窗口的命令以下几个:横向切割窗口:new+窗口名(保存后就是文件名) :split+窗口名,也可以简写为:sp+窗口名纵向切割窗口名:vsplit+窗口名,也可以简写为:vsp ...

  6. vim 多标签和多窗口

    多文件编辑时的利器啊.谁用谁知道. 多标签 一次性以标签的形式打开多个文件: vim -p *.cpp :tabnew 增加一个标签 :tabc       关闭当前的tab :tabo       ...

  7. Windows对象操作:浏览器窗口信息

    属性(值或者子对象):opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null,可以利用这个属性来关闭源窗口. 属性:Windows.shuxing; 方法(函 ...

  8. 转-JS子窗口创建父窗口操作父窗口

    Javascript弹出子窗口  可以通过多种方式实现,下面介绍几种方法 (1) 通过window对象的open()方法,open()方法将会产生一个新的window窗口对象 其用法为: window ...

  9. uCGUI窗口操作要点

    uCGUI窗口操作要点 1. 创建一个窗口的时候,会给此窗口发送“创建(WM_CREATE)”消息,从而执行它的回调函数:如果创建窗口的标志带有“可视标志(WM_CF_SHOW)”,那么在后续执行GU ...

随机推荐

  1. 新闻编辑室第一季/全集The Newsroom迅雷下载

    第一季 The Newsroom Season 1 (2012)看点:频出佳剧的HBO这次将目光对准了新闻间这个话题多,故事更多的“小”地方.该剧讲述的是一家虚构的有线电视新闻网ACN的故事,由阿伦· ...

  2. vue quill editor输入文字出现首字母的问题

    当使用vue quill editor输入中文时,第一个中文的汉语拼音第一个字母会显示如图. 解决的办法就是升级vue quill editor js文件的版本,目前的我升级之后ok的版本是 < ...

  3. Protobuf 协议语言指南

    l  定义一个消息(message)类型 l  标量值类型 l  Optional 的字段及默认值 l  枚举 l  使用其他消息类型 l  嵌套类型 l  更新一个消息类型 l  扩展 l  包(p ...

  4. 多目标进化算法(MOEA)概述

    Weighted Sum Approach 该方法给出的表达式为: 首先,λ被称之为权重向量,观察和式,这完全就是m维向量的点乘公式嘛.具体的说,在目标空间中,把算法求出的一个目标点和原点相连构造成一 ...

  5. Jackson 教程演示样例

    查看原文教程:http://www.ibloger.net/article/275.html Json经常使用的类库例如以下 Jackson:http://jackson.codehaus.org/ ...

  6. windows核心编程-互斥器(Mutexes)

    线程同步的方式主要有:临界区.互斥区.事件.信号量四种方式. 前边讲过了临界区线程同步-----windows核心编程-关键段(临界区)线程同步,这章我来介绍一下互斥器(Mutexes)在线程同步中的 ...

  7. Mockito 中被 Mocked 的对象属性及方法的默认值

    在 Java 测试中使用 Mockito 有段时日了,以前只是想当然的认为 Mock 的对象属性值和方法返回值都是依据同样的规则.基本类型是 0, 0.0, 或 false, 对象类型都是 null, ...

  8. Linux系统性能优化

    CPU性能评估 通过下面的命令能了解到CPU是否出现性能瓶颈,再结合top.ps等命令进一步检查,即可定位到那些进程导致CPU负载过大 vmstat命令:查看CPU负载. [blackfox@loca ...

  9. (转)Unity原厂讲师大解密

    本文转载自:http://nedwu13.blogspot.tw/2013_11_01_archive.html   Asset Bundle工作流程及人物換裝實例 - 劉剛 Unity內部的資源有兩 ...

  10. Ext JS isField为空或不是对象问题的解决

    在做Ext Js的DataGrid的时候经常会遇到这种问题,火狐谷歌没有问题,IE8及以下版本就无法通过,经调试会提示: “isField为空或不是对象问题的解决” 这通常是我们在js代码中多加了一个 ...