vimrc config and NERDTree
nmap <C-N> :tabnext<CR>
下载和配置
NERDTree插件的官方地址如下,可以从这里获取最新的版本 https://github.com/scrooloose/nerdtree 下载zip安装包 或者使用下面官网源文件安装方法
我的实验环境是centos6.6,其他版本可能有些不同。 安装方法很简单,先把压缩文件下载下来,解压后将plugin目录下的NERD_tree.vim拷贝~/.vim/plugin以及doc目录下的NERD_tree.txt拷贝到~/.vim/doc. ~表示当前用户的目录,我的环境中没有~/.vim ~/.vim/plugin ~/.vim/doc ,待会会创建,如果你的版本有,那就更好了。
wget http://www.vim.org/scripts/download_script.php?src_id=17123 -O nerdtree.zip
unzip nerdtree.zip
mkdir -p ~/.vim/{plugin,doc}
cp plugin/NERD_tree.vim ~/.vim/plugin/
cp doc/NERD_tree.txt ~/.vim/doc/
安装好后,命令行中输入vim,打开vim后,在vim中输入:NERDTree,你就可以看到NERDTree的效果了
---------------------------------
https://www.cnblogs.com/zzb-Dream-90Time/p/7116406.html
普通模式的映射命令
map
命令格式:
:map {lhs} {rhs}
其含义是,在:map作用的模式中把键系列 {lhs} 映射为 {rhs},{rhs}可进行映射扫描,也就是可递归映射。
举例:
:map td :tabnew .<cr>
含义:在其作用模式(普通、可视、操作符)下,输入td等价于输入 :tabnew . <cr>。而普通模式下输入:tabnew . <cr>就是打开当前目录
如果再定义绑定 :map ts td,就是指在其作用模式下输入ts等价于td,也就是打开当前目录。不过如果没有特殊需要,一般不建议递归映射。
noremap
:noremap和:map命令相对,作用模式和命令格式都相同,只不过不允许再对{rhs}进行映射扫描,也就是{lhs}定义后的映射就是{rhs}的键序列,不会再对{rhs}键序列重新解释扫描。它一般用于重定义一个命令,当然如果:map不需要递归映射的话,建议使用:noremap
比如:
:noremap ts td
它的意思是在其作用模式下,输入ts就是输入td,但是和:map不同的是,此时td再不会做进一步扫描解释。虽然之前已经定义了td,但是不会对td再做扫描。
unmap
:unmap是对应取消:map绑定的{lhs},作用模式相同,命令格式 :unmap {lhs}。
例如:
:unmap td
就是取消在其作用模式中td的绑定,比如之前td被绑定为:tabnew .<cr>,此时此绑定消失。
mapclear
:mapclear时对应取消所有:map绑定的,慎用!
只用于普通模式的
:nmap
:nmap是:map的普通模式板,也就是说其绑定的键只作用于普通模式。
例如:
:nmap td :tabnew .<cr> 和 :map td :tabnew .<cr> 在普通模式下等效
:nnoremap
:nnorempa和:nmap的关系和:noremap和:map的关系一样,只是:nmap的非递归版
:nunmap
:nunmap和:nmap的关系和:unmap和:map的关系一样,取消:nmap的绑定。
:nmapclear
:nmapclear是对应取消所有:map绑定的,慎用!
另外
{rhs} 之前可能显示一个特殊字符:
- 表示它不可重映射
& 表示仅脚本的局部映射可以被重映射
@ 表示缓冲区的局部映射
到这一步你可以轻松的长吸一口气,因为相关的命令已经都了解了,记不住没关系,可以随时:help map一下。
键表
<k0> - <k9> 小键盘 0 到 9
<S-...> Shift+键
<C-...> Control+键
<M-...> Alt+键 或 meta+键
<A-...> 同 <M-...>
<Esc> Escape 键
<Up> 光标上移键
<Space> 插入空格
<Tab> 插入Tab
<CR> 等于<Enter>
特殊参数
有些特殊参数必须映射命令的后边,在其他任何参数的前面。
<buffer>
<buffer>如果这些映射命令的第一个参数是<buffer>,映射将只局限于当前缓冲区(也就是你此时正编辑的文件)内。比如:
:map <buffer> ,w /a<CR>
它的意思时在当前缓冲区里定义键绑定,“,w”将在当前缓冲区里查找字符a。同样你可以在其他缓冲区里定义:
:map <buffer> ,w /b<CR>
比如我经常打开多个标签(:tabedit),想要在各自标签里定义",w"键绑定,那么你只要在每个标签页里分别定义就可,其作用域也只在各自的标签里。同样要清除这些缓冲区的键绑定也要加上<buffer>参数,比如:
:unmap <buffer> ,w
:mapclear <buffer>
<silent>
<silent>是指执行键绑定时不在命令行上回显,比如:
:map <silent> ,w /abcd<CR>
你在输入,w查找abcd时,命令行上不会显示/abcd,如果没有<silent>参数就会显示出来。
<special>
<special>一般用于定义特殊键怕有副作用的场合。比如:
:map <special> <F12> /Header<CR>
<expr>
<expr>. 如果定义新映射的第一个参数是<expr>,那么参数会作为表达式来进行计算,结果使用实际使用的<rhs>,例如:
:inoremap <expr> . InsertDot()
这可以用来检查光标之前的文本并在一定条件下启动全能 (omni) 补全。
一个例子:
let counter = 0
inoremap <expr> <C-L> ListItem()
inoremap <expr> <C-R> ListReset()
func ListItem()
let g:counter += 1
return g:counter . '. '
endfunc
func ListReset()
let g:counter = 0
return ''
endfunc
在插入模式下,CTRL-L插入顺序的列表编号,并返回;CTRL-R复位列表编号到0,并返回空。
<unique>
<unique>一般用于定义新的键映射或者缩写命令的同时检查是否该键已经被映射,如果该映射或者缩写已经存在,则该命令会失败
<Leader>和mapleader变量
mapleader变量对所有map映射命令起效,它的作用是将参数<leader>替换成mapleader变量的值,比如:
:map <Leader>A oanother line<Esc>
如果mapleader变量没有设置,则用默认的反斜杠代替,因此这个映射等效于:
:map \A oanother line<Esc>
意思时输入\A键时,在下一行输入another line并返回到普通模式。
如果设置了mapleader变量,比如:
let mapleader = ","
那么就等效于:
:map ,A oanother line<Esc>
<LocalLeader>和maplocalleader变量
<LocalLeader>和<Leader>类似,只不过它只作用于缓冲区。
因此在设置mapleader和maplocalleader时最好区分开,不要出现冲突
作者:JasonDing
链接:https://www.jianshu.com/p/8ae25a680ed7
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
vimrc config and NERDTree的更多相关文章
- ~/.vimrc config
runtime! debian.vim "设置编码 set encoding=utf- set fencs=utf-,ucs-bom,shift-jis,gb18030,gbk,gb2312 ...
- VIM树状文件列表NERDTree
下载和配置 NERDTree插件的官方地址如下,可以从这里获取最新的版本 https://github.com/scrooloose/nerdtree 下载zip安装包 或者使用下面官网源文件安装方法 ...
- vim插件:显示树形目录插件NERDTree安装 和 使用
下载和配置 NERDTree插件的官方地址如下,可以从这里获取最新的版本 https://github.com/scrooloose/nerdtree 下载zip安装包 或者使用下面官网源文件安装方法 ...
- vim插件:显示树形目录插件NERDTree安装 和 使用【转】
本文转载自:https://my.oschina.net/VASKS/blog/388907 下载和配置 NERDTree插件的官方地址如下,可以从这里获取最新的版本 https://github.c ...
- 大神的vim配置
大神的vim配置,O(∩_∩)O spf13-vim : Steve Francia's Vim Distribution __ _ _____ _ ___ _ __ / _/ |___ / __ _ ...
- vim插件安装总结
vim插件安装总结 vim 插件 vundle 插件对于vim来说是一个杀手级别的神器助手,能自动补全,语法高亮,文件搜索等等,有效地提升了编程效率.下面就个人的一些安装和使用进行一个总结. 自动管理 ...
- VIM Taglist + ctags
Windows下 进入http://ctags.sourceforge.net/ 下载ctags 把ctags58.zip解压,随便放个地方,我放到了Home\Vim\vim72下,在ctags58文 ...
- vim插件
所需即所获:像 IDE 一样使用 vim https://github.com/yangyangwithgnu/use_vim_as_ide mark.vim http://www.vim.org/s ...
- neovim的新体验
A. 缘由 vim下的CtrlP插件好用,但是当文件较多时,不能很快检索,时有卡死的情况发生.听说neovim引入了很多新的功能,例如异步处理,job管理等. B. 安装neovim1. Ubunt ...
随机推荐
- 希望对自学的javascript新手有帮助
- 最新 网易java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易.京东.去哪儿等10家互联网公司的校招Offer,因为某些自身原因最终选择了网易.6.7月主要是做系统复习.项目复盘.LeetCode与牛客刷题 ...
- pureftp 超时 mlsd
问题起因,新项目搭建系统环境,ftp总有问题 能连接成功,但总是时好时不好,解决处理,忘有用 mlsd 超时列目录问题 (一会好一会不好) # a.指定被动端口中,如20000-60000,在ipta ...
- electron node.js 实现文件拖动读取文件
css/styles.css .for_file_drop { width: 100%; height: 100px; background-color: blueviolet; } index.ht ...
- .NET细节知识总结,不断更新
1.catch (Exception)和catch (Exception e) Exception 类包含许多子类 程序执行的时候要将每一个类都搜索一遍 以找到符合的异常类 这样是蛮消耗资源的 影响效 ...
- I2C的协议层和物理层
I2C 协议简介 I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART.CAN 等通讯协议的 ...
- spring cloud微服务实践一
最近在学习spring框架.其中spring cloud在微服务方面很火,所以在学习过程中,也做一些记录. 注:这一个系列的开发环境版本为 java1.8, spring boot2.x, sprin ...
- asp.net core-15.Individual authentication 模板
在visual studio code执行dotnet new mvc --help 可以查看执行命令 visual studio code先创建一个mvc的项目 dotnet new mvc -au ...
- Java 中的锁原理、锁优化、CAS、AQS 详解!
来源:jianshu.com/p/e674ee68fd3f 1.为什么要用锁? 锁-是为了解决并发操作引起的脏读.数据不一致的问题. 2.锁实现的基本原理 2.1.volatile Java编程语言允 ...
- (六)授权(下):自定义permission
一.Authorizer.PermissionResolver及RolePermissionResolver Authorizer的职责是进行授权(访问控制),是Shiro API中授权核心的入口点, ...