参考:http://blog.csdn.net/shuangde800/article/details/11430659 很好
鼠标在各个窗口间循环移动:
ctrl+w+(小写的 hjkl), "非线性"的跳转的: ctrl_w+t(top : 左上角, +b: bottom, 右下角), p: preview: 上一个子窗口.
set mouse=a 所有all 的状态下都可以使用 鼠标..窗口本身的位值的移动:
ctrl_w + r: 窗口本身, 不是鼠标指针顺时针 (向下, 向右 移动), R : 则是逆时针反方向(向上, 向左)移动.
ctrl_w+x: 左右上下对应位置的窗口 对调. 要注意窗口必须是 对应的, 如果不对应将无法对换, 比如左边一个大窗口, 右边有两个小的 子窗口, 则左右不能互换.窗口本身 的位置移动, 而且大小也发生"最大化"变化
Ctrl_w+ HJKL( 注意是大写的字母 H, J, K, L , 表示要按shift才能实现的)... 要注意, 可以通过 windows 窗口 "贴边" 最大化来理解, H和 L 就是 向左或向右 最大化贴边 显示; 而 JK 则是 向上 或 向下 贴边 最大化显示. 最大化后 就不能 再次操作复原窗口了, 其实也没有必要调整窗口的水平/垂直尺寸?
用ctrl+ w 结合 >, <调整水平尺寸, 用+ - 调整垂直尺寸, 这个是微调. 也可以用纯粹的命令用 :resize +/- n, 或者 vertical resize +/- n (支持命令简写, 但是要能够使命令被唯一确定才行. 通常要用5,10,15, 20的大小间隔来调...太小了没有意义)除了这些调整/ 遍历鼠标的方法, 还有一个关闭子窗口的问题. 关闭的方式, 除了命令外, 还有窗口关闭 的方式: 用ctrl+w + q(quit), c(close), o(other)等.
在vim中, :ls 表示list, 它列出的, 正是 缓冲区中 的内容. 等同于 :buffers.
通过 :ls, 还可以查看各个编辑文件的位置等信息...
而!ls才是列出当前路径下的文件信息..
如何使buffermini窗口最小化?
先使某个子窗口向左最大化, ctrl_w_H, 然后水平向下最大化 ctrl_w+J, 就可以把其他窗口都 "憋" 到最小化.
set mouse=a的神奇功效!
即使在vim命令窗口, 也可以实现 鼠标 的激活功能; 除此之外, 鼠标还可以 可是化的, 手动的调整拖拽调整 各个窗口的大小; 还可以直接用鼠标单击miniBuffer上的文件标签而打开文件
窗口位置的调整,使用的快捷键, ctrl_w, 只是适合字符界面窗口, 如果是分页标签窗口,则不可以, 因为此时ctrl_w表示关闭窗口????
**一切知识只有在用中学, 只有需求才能真正让你掌握一种东西, 这真是真理阿 nerdtree在真正的写代码, 程序开发中, 才会显得那么重要! **
.. (up a dir)其实是排除在Tree之外的. 树的root在.. 之下, 用浅橙色表示的那个就是. x是关闭parent dir, 如果当前本身就是root了,再用x就无效,而且底部报错.
open和preview的区别? 当然是有区别的! preview只是打开文件, 只是预览, 鼠标 光标的焦点还是还是在Nerd这里, 可以再次连续操作Nerd, 而不用切换子窗口光标 , 是在 对应的操作 前面加上g
要分类别的记忆nerd的mappings.
file node mappings: enter, douleclicks,o都是在上一窗口打开 (不会新开一个子窗口);go 同样占用上一个窗口, 但是是preview.
directory node mappings: o: open/close 按原样(不展开不折叠)..; O: recursively打开;x: close parent, X: 遍历地关闭当前目录的所有子目录
Tree navigation mappings: p, P, j, k, J, K, c-j, c-k;
FileSystem mappings: u, U(都是将root上移一级,U不关闭原来的), r刷新光标所在目录, R 刷新root目录, cd 将当前目录设为选中的目录, C 将root设置为当前选择的目录, CD将root设为当前目录...
Tree filter mapping:
I: 显示/隐藏 (.文件)
F:(显示/隐藏)普通文件.
另外, nerd窗口, 跟其他窗口一样, 它还相当于一个文件!支持 gg, G, ^f ^u等跳转, 支持搜索...
nerd如何使用书签?
首先要打开/启用标签, 在NerdTree中, 按B(大写的).
然后就会出现---bookmarks--- 这个书签列表.
在 bookmark table mappings 上的快捷健就是 针对这个bookmarks table列表而言的.
包括o打开书签(目录的话, 就将书签设置为root, 相当于C命令). D 删除书签.
书签等"软件功能", 要根据自己的 设计来 实现 "软件功能", 不必一定按某个模式框框来做.
vim的set & let的区别: set是全局性的设置, 而let通常是针对某一个软件自身的设置. NERDTree的自动显示书签的设置:
let NERDTreeShowBookmarks = 1
let NERDTreeWinPos = left // 设置nerdtree的窗口位置
如何删除某个buffer?
使用命令: bdelete num, 简写位 : bdel num, 如 bdel 3. 或者直接简写为 bd 3
另外bp, bn
为什么nerdtree窗口中的文件出现那么多的星号?
是指, 如果文件是可执行文件, 就会在nerdtree窗口中, 以星号表示, 标识.标识.
nerdtree的书签功能很强大, 可以把你常用的 经常要操作的目录, 文件都集中起来, 而不会去 换来换去
vim, nerdtree, mysql, 包括所有的linux, 都是最接近程序的本质的,一切都是字符, 一切都在你的头脑中.
Nerdtree中的 文件系统的 快捷键映射?
cd 快捷键, (注意不是 :方式的 editor 命令), 相当于 cd the_selected_dir, 就是将cwd切换到当前选中的目录.
CD (大写字母是针对 tree root而言的), 是将root 设置为, cwd.
C = change, 就是将 tree root设置为当前选中的目录...
两行合并的操作, 记得是j什么的, 但不是 ctrl+j, 而是 使用 大写的 J
在vim中, 快速 跳转的方式:
补充两点: 在最近之前的那一次, 位置之间 跳转, 两个单引号 ' ', 在上下行的 行首 之间跳转, 使用的是 加号 和减号 这个还是很方便的.
如何区分alt+f7 和 f8?
f7是移动窗口, 只是出现一个手形状,
f8是改变窗口的大小, 在手形的下方有窗口大小的数字表示. 那么根据数字就可以区分了.
使用vim的高级操作命令
vim的命令,开始只能记住一些基本的, 常用的命令, 要使用一些更 高效的命令, 只能在 熟练之后, 再反复使用, 才能掌握, 如fd, = find 字符d, 但是有多个字母反复查找就比较麻烦, 直接使用: nfx: 如3f"你要查找的字符", nFx, 而如果要移动到查找字符的前一个字符, 用t或T, 还可以结合分号, 和逗号来移动!
又比如: 到某一行使用 冒号+行号, 更高效的命令是: 行号+G. 而更神奇的移动方法是用 数字+%, 跳转到百分之多少的地方
交换当前字符和它后面的一个字符xp.
vim的窗口最大化, ctrl_w+大写的hjkl, h和l其实是反的, 不是在水平方向上最大化, 而是在竖值方向上最大化,H就是靠左, 在竖直方向上最大化.
vim中的c命令?
cw,是修改一个单词, cc是修改整行, 而 C 是修改到行尾的内容 = c$, 类似的, d是删除, dw, dd, D =d$, 删除到行尾的内容!
同一个子窗口中, 如果打开过多个文件, 可以使用 ctrl+^, 在他们之间切换.
对于放弃和保存, 使用all表示针对所有的, 就不用一个文件一个文件的进行保存了.
:wa, :qa
vim中, 几乎所有的命令都支持 "倍数" 操作: (以dd为例): 倍数n所在的位置有 两种方式 ndw 或者 dnw, 两者的命令结果虽然 是一样的, 但是, 他们 的 含义和操作方式是不同的! ndw 是指dw这个操作重复n次, 而 dnw 则是操作一次, 但是一次删除n个单词. 其他命令也是类似的.
RSI: re'petitive strain injury, 重复性疲劳(应力, 张力)损伤.
使用 linux下的 提醒软件: workrave.
在vim中设置和命令的区别?
设置使用 set命令, 命令的话, 直接使用冒号, 前面不用set. 所以, 如果一个命令用set出错, 而且报错: invalid argument(s)/option(s), 就改用 直接输入命令, 不要set,如: 设置/取消搜索高亮显示: set hlsearch, 而取消时, 就不用 set, 直接是: :nohl.
以单词为单位移动光标: w, 向前移动, e同w,但是e是移动到单词的尾部; b向后移动, 而ge 则是向后移动, 但是移动到 单词的尾部.
要时长有 倍数操作 的概念, 那样操作更高效,如: 3w , 3b, 3$等等.
vim多标签的切换, gt, gT, 是一个一个地往前或向后切换, 实际上也可以直接 切换到 某个标签, 使用命令: [count]gt/gT, 两者是不一样的!
[count]gt, 是切换到顺数的 第 n 个标签页, 首位的标签页是1, 是按顺序来数的. 如果当前是第一个标签页, 则2gt将切换到第二个标签页.
[count]gT, 是向后切换 / 跳跃 / 跨过 n个标签位置. 是指跳过 几个标签, 如: 2gT, 如果当前是第三个标签, 则切换到第一个标签页.