有五种映射存在
- 用于普通模式: 输入命令时。
- 用于可视模式: 可视区域高亮并输入命令时。
- 用于操作符等待模式: 操作符等待中 ("d","y","c" 等等之后)。
见下: |omap-info|。
- 用于插入模式: 也用于替换模式。
? 用于命令行模式: 输入 ":" 或 "/" 命令时。
下表是map绑定中,对应的模式代号。现在先了解一下,等看完之后再回过头看这个模式代号就会明白了。
字 符 模 式 ~
<Space> 普通、可视、选择和操作符等待
n 普通
v 可视和选择
s 选择 (在可视模式下Ctrl+G进入)
x 可视
o 操作符等待
! 插入和命令行
i 插入
l 插入、命令行和 Lang-Arg 模式的 ":lmap" 映射
c 命令行
我主要讲解一下“n(普通模式)”下的两个绑定命令,等看完之后就对应的明白别的模式下的命令了。
适用于普通模式的映射命令主要有:
1. :map
[语法] :map {lhs} {rhs} |mapmode-nvo| *:map*
1.1 作用模式: n、v、o (普通、可视和选择、操作符等待)
1.2 命令格式:
:map {lhs} {rhs}
含义: 在:map作用的模式中把键系列 {lhs} 映射为 {rhs},{rhs}可进行映射扫描,也就是可递归映射。
1.3 举例:
:map td :tabnew .<cr>
含义:在其作用模式(普通、可视、操作符)下,输入td等价于输入 :tabnew . <cr>。而普通模式下输入:tabnew . <cr>就是打开当前目录
如果再定义绑定 :map ts td,就是指在其作用模式下输入ts等价于td,也就是打开当前目录。不过如果没有特殊需要,一般不建议递归映射。
2. :noremap
:moremap和:map命令相对,作用模式和命令格式都相同,只不过不允许再对{rhs}进行映射扫描,也就是{lhs}定义后的映射就是{rhs}的键序列,不会再对{rhs}键序列重新解释扫描。它一般用于重定义一个命令,当然如果:map不需要递归映射的话,建议试用:noremap
比如:
:noremap ts td
它的意思是在其作用模式下,输入ts就是输入td,但是和:map不同的是,此时td再不会做进一步扫描解释。虽然之前已经定义了td,但是不会对td再做扫描
3. :unmap
:unmap是对应取消:map绑定的{lhs},作用模式相同,命令格式 :unmap {lhs}。
例如:
:unmap td
就是取消在其作用模式中td的绑定,比如之前td被绑定为:tabnew .<cr>,此时此绑定消失。
4. :mapclear
:mapclear时对应取消所有:map绑定的,慎用!
5. :nmap
:nmap是:map的普通模式板,也就是说其绑定的键只作用于普通模式。
例如:
:nmap td :tabnew .<cr> 和 :map td :tabnew .<cr> 在普通模式下等效
6. :nnoremap
:nnorempa和:nmap的关系和:noremap和:map的关系一样,只是:nmap的非递归版
7. :nunmap
:nunmap和:nmap的关系和:unmap和:map的关系一样,取消:nmap的绑定。
8. :nmapclear
:nmapclear是对应取消所有:map绑定的,慎用!
看完以上,应该可以发现一个规律,前4个是一组,后4个时一组,后一组比前一组多一个n就是指只作用于普通模式。其中每组内*nore*是其对应的非递归版、*un*是取消绑定某个<lhs>绑定、clear后缀是取消所有绑定。发现了这个规律,再翻到前面的模式代号表,你大体可以猜到vmap、xmap、smap、omap是什么意思了吧,以及相对应的nore版本、un版本、clear版本。
另外:
{rhs} 之前可能显示一个特殊字符:
* 表示它不可重映射
& 表示仅脚本的局部映射可以被重映射
@ 表示缓冲区的局部映射
到这一步你可以轻松的长吸一口气,因为相关的命令已经都了解了,记不住没关系,可以随时:help map一下。不过别急,后面还有map更多的选项等着去攻克。
键表 |key-notation|
<k0> - <k9> 小键盘 0 到 9 *keypad-0* *keypad-9*
<S-...> Shift+键 *shift* *<S-*
<C-...> Control+键 *control* *ctrl* *<C-*
<M-...> Alt+键 或 meta+键 *meta* *alt* *<M-*
<A-...> 同 <m-...> *<A-*
<t_xx> termcap 里的 "xx" 入口键
特殊参数:
1. <buffer>
2. <silent>
3. <special>
4. <script>
5. <expr>
6. <unique>
它们必须映射命令的后边,在其他任何参数的前面。
<buffer>如果这些映射命令的第一个参数是<buffer>,映射将只局限于当前缓冲区(也就是你此时正编辑的文件)内。比如:
:map <buffer> ,w /a<CR>
它的意思时在当前缓冲区里定义键绑定,“,w”将在当前缓冲区里查找字符a。同样你可以在其他缓冲区里定义:
:map <buffer> ,w /b<CR>
比如我经常打开多个标签(:tabedit),想要在各自标签里定义",w"键绑定,那么你只要在每个标签页里分别定义就可,其作用域也只在各自的标签里。同样要清除这些缓冲区的键绑定也要加上<buffer>参数,比如:
:unmap <buffer> ,w
:mapclear <buffer>
<silent>是指执行键绑定时不在命令行上回显,比如:
:map <silent> ,w /abcd<CR>
你在输入,w查找abcd时,命令行上不会显示/abcd,如果没有<silent>参数就会显示出来
<special>一般用于定义特殊键怕有副作用的场合。比如:
:map <special> <F12> /Header<CR>
<unique>一般用于定义新的键映射或者缩写命令的同时检查是否该键已经被映射,如果该映射或者缩写已经存在,则该命令会失败
<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,并返回空。
<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时最好区分开,不要出现冲突。
大体上映射的主要部分已经都提到了,还有很多具体的映射相关的内容可以参见:help map
相关推荐
ICNN实现入侵检测的思路与源码(CIC-IDS-2017)
基于ICNN实现入侵检测,可用于现实网络
【vim 学习系列文章 7-- vim vnormap nnoremap nmap map inoremap 区别】
记住,为了避免映射冲突或无法预料的结果,最好在创建新的键盘映射之前,先使用 unmap 命令来取消任何现有的映射。Vim 的可视模式是 Vim 的三种主要模式之一,另外两种是普通模式和插入模式。在普通模式下按 V 将进入行可视模式,在这个模式下,你可以通过上下移动光标来选择整行文本。在普通模式下按 v 将进入字符可视模式,在这个模式下,你可以通过移动光标来选择文本。在普通模式下按 将进入块可视模式,在这个模式下,你可以通过移动光标来选择一个文本块。在普通模式下将 F2 键映射为保存文件的命令。
大数据实时+离线项目架构----智慧物流大数据平台(超流行框架!)
智慧物流大数据平台 文章目录智慧物流大数据平台一、项目背景二、逻辑架构三、解决方案技术亮点:数据流转四、项目的技术选型4.1流式处理平台4.2 分布式计算平台4.3 海量数据存储框架软件版本总结 一、项目背景 本项目基于一家大型物流公司研发的智慧物流大数据平台。该物流公司是国内综合性快递、物流服务商,并在全国各地都有覆盖的网点。经过多年的积累、经营以及布局,拥有大规模的客户群,日订单达上千万。如此规模的业务数据量,传统的数据处理技术已经不能满足企业的经营分析需求。公司需要基于大数据技术构建数据中心,从而挖
vim map
<br />自己边学习边记录的,可能对大家有帮助 <br /><br />有五种映射存在 <br />- 用于普通模式: 输入命令时。 <br />- 用于可视模式: 可视区域高亮并输入命令时。 <br />- 用于操作符等待模式: 操作符等待中 ("d","y","c" 等等之后)。 <br />见下: |omap-info|。 <br />- 用于插入模式: 也用于替换模式。 <br />• 用于命令行模式: 输入 ":" 或 "/" 命令时。 <br /><br />下表是map绑定中,对应的模式代号
记二开金蝶云星空动态表单艰辛历程
整个过程,开发接近一周,期间也有做其他事,遇到不会的第一时间也是找金蝶社区,搜索有无相关的解决问题经历。再就是问同事,最终还不能解决就提工单给供应商。响应一般都要大半天(我们公司是有vip,相对大半天能够响应是算好了),虽然有时候有响应,但是会转到其他研发老师,期间可能会是几天!如果是经常开发云星空的二开功能,熟练了速度回很快,但是对于接触不多的,或者刚入门的,会是个漫长的折磨过程。1、重新生产模块的dll.2、退出客户端3、重启iis4、等待五六分钟5、附加到进程6、登录客户端进去操作。
Matplotlib之bar3d画3D柱状图
3D柱状图通常用于展示数据集中不同分类项的数据大小或数量。与普通的柱状图相比,3D柱状图更适合展示数据的三个维度 3D 柱状图 按行/列涂颜色 柱加阴影、描黑边 自定义座标轴名、刻度标签、范围
VIM cscope nmap不能工作
cscope为*nix平台下的功能强大的本文搜索工具,其按照和使用说明可以很方便的找到,本文所描述的问题为:Ubuntu 14.04不能正常使用vimrc下配置的cscope nmap快捷键的问题。 操作系统版本:Ubuntu 14.04 vim:版本 7.4.52 vim插件:cscope_maps.vim 将cscope_maps.vim中的快件配置拷贝到~/.vimrc中,如
第十四节《OpenCascade集成Qt》
将 OpenCascade 与 Qt 集成是开发图形界面应用的常见需求。通过将 OpenCascade 的几何建模与 Qt 的图形用户界面(GUI)功能结合,可以创建强大而灵活的 CAD 或建模工具。OpenCascade 提供了与 Qt 的集成接口,允许你在 Qt 应用程序中嵌入 OpenCascade 的视图,执行几何操作,并与用户进行交互。以下是 OpenCascade 与 Qt 集成的详细步骤:首先,确保已安装 OpenCascade 和 Qt。你可以从 OpenCascade 官方网站或通过包管理
VIM - vim的几种模式和map映射之间的联系
VIM - vim的几种模式和map映射之间的联系
C语言试题三之计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5))
1 、题目 计算并输出 s=1+(1+2^(0.5))+(1+2^(0.5)+3^(0.5))+…+(1+2^(0.5)+3^(0.5)+…+n^(0.5)) 2、部分函数说明 C 库函数 double pow(double x, double y) 返回 x 的 y 次幂。 3、源代码实现 #include <stdio.h> #include <...
【异常】Milvus向量数据库的常见错误“collection not loaded“(集合未加载)
Milvus数据库报错"collection not loaded"分析及解决方案。该错误发生在对未加载的集合执行查询操作时,核心原因是集合创建后需先加载到内存才能使用。解决方案包括:1)确认集合是否存在;2)查询前调用loadCollection接口加载集合;3)处理加载超时或失败情况,可检查加载状态;4)确保Milvus服务正常运行。建议在长期不使用集合时释放内存资源。文末附Java代码示例说明具体操作方法。
提高 Vim 使用效率的 12 个技巧
本文由 伯乐在线 - Alick 翻译,黄利民 校稿。未经许可,禁止转载! 英文出处:sheerun。欢迎加入翻译小组。 1. 使用空格键做为Leader(热键) Leader是个非常有创意的设计,通过不同按键的顺序操作可以执行各种命令,而不需要通过组合键的方式,自从使用Leader之后我就很少使用ctrl-xxx的这种组合键。 长久以来我都是使用 , 做为Leader,直到我
【ROS2】从yaml文件中读取参数配置
ROS2:从yaml中读取参数,到节点;使用C++演示参数的增、删、改、查、遍历、监听变化
【Vim】使用map自定义快捷键
map简介map是一个映射命令,将常用的很长的命令映射到一个新的功能键上。map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手。映射的种类有五种映射存在: 用于普通模式: 输入命令时。 用于可视模式: 可视区域高亮并输入命令时。 用于操作符等待模式: 操作符等待中 (“d”,”y”,”c” 等等之后)。 用于插入模式: 也用于替换模式。 用于命
Data-Structures-and-Algorithm-Analysis-in-Java.pdf
作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...
Outlook Express 6 (OE6) for Win7/Win8/Win10
英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。
简单聊聊Vim中的自定义快捷键
摘要: Vim中几个Map命令的区别 分享几个自定义的快捷键 前言 平常在Vim中自定义快捷键,使用的都是map命令,但最近发现自定义快捷键命令还有好多,如noremap, nmap,vmap等等。所以就想写一篇关于Vim中自定义快捷键的文章,来总结一些Vim中的自定义快捷键的命令和他们的命名方式。 与自定义快捷键相关的四个系列命令 map系列命令...
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
vim自定义快捷键的键位解释
map命令简介 map是一个映射命令,将常用的很长的命令映射到一个新的功能键上。map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手。Vim中有五种映射存在: 1 用于普通模式: 输入命令时。 2, 用于可视模式: 可视区域高亮并输入命令时。 2 用于操作符等待模式: 操作符等待中 (“d”,”y”,”c” 等等之后)。 3 用于插入模式: 也用于替换模式。 4 用于命令行模...
IDEA的使用指南
IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.
【VIM效率翻倍秘籍:map快捷键魔法全解析】
作为"编辑器之神",VIM的魔力不仅在于模式编辑,更在于其高度可定制性。当你还在反复输入:wq时,老手早已通过map将常用操作熔铸成肌肉记忆——今天我们就揭开这个效率利器的神秘面纱!现在,是时候打开你的配置文件,将那些重复到手指发疼的操作,变成优雅的键盘芭蕾了!进阶技巧:用noremap避免递归(比如避免jj映射覆盖原有功能)防冲突原则:避免覆盖y/d/p等核心快捷键。" 可视模式快速注释(需安装注释插件)模式混淆:在插入模式误触普通模式快捷键。" 禅模式写作(隐藏状态栏)" 插入模式秒逃回普通模式。
vim之map 映射快捷键
map简介 map是一个映射命令,将常用的很长的命令映射到一个新的功能键上。map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手。 映射的种类 有五种映射存在: 用于普通模式: 输入命令时。 用于可视模式: 可视区域高亮并输入命令时。 用于操作符等待模式: 操作符等待中 ("d","y","c" 等等之后)。 用于插入模式: 也用于替换模式。
vim快捷键的设定
vim快捷键自定义不能定义 Ctrl+q 和Ctrl+s.其他的如: map :w map :make 是enter键 ,其中 的内容被替换为:w map 可以改为 :map Normal, Visual and Operator-pending:vmap Visual:nmap Normal:omap Operator-pending:map! I
[Vim]vim的几种模式和按键映射
Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手。vim里最基本的map用法也就是:map c a 这里把c映射成了a,在map生效的情况下,按下c就等同于按下了a当然,常用的Ctrl,Shift,Alt自然也是支持的。令Ctrl+a对应到a:map a 令Alt+a对应到a:map a 令Ctrl+Alt+a对应到a:map a 到此,我们已经可以做很多事情了。但...
vim的工作模式和按键映射
Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手。 vim里最基本的map用法也就是 :map c a 这里把c映射成了a,在map生效的情况下,按下c就等同于按下了a, 当然,常用的Ctrl,Shift,Alt自然也是支持的。 • 令Ctrl+a对应到a :map a • 令Alt+a对应到a :map a • 令Ctrl+Alt+a对应到
Vim映射冲突终极指南:使用:map命令快速检测和解决快捷键重叠问题 [特殊字符]
Vim作为一款强大的文本编辑器,其快捷键映射功能让用户可以高度自定义编辑体验。然而,随着自定义快捷键的增加,**Vim映射冲突**问题常常让用户感到困扰。本指南将教你如何使用`:map`命令快速检测和解决这些冲突问题,让你的Vim配置更加清晰高效。✨ ## 什么是Vim映射冲突? **Vim映射冲突**指的是多个快捷键被映射到相同的按键组合,导致预期外的行为。想象一下,当你按下`<leader
vim的map功能
Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手。 vim里最基本的map用法也就是 :map c a 这里把c映射成了a,在map生效的情况下,按下c就等同于按下了a 当然,常用的Ctrl,Shift,Alt自然也是支持的。 令Ctrl+a对应到a :map C-a> a
vim插件管理器Vundle.vim
下载地址:https://github.com/VundleVim/Vundle.vim git安装 git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim git下起来好慢的感觉,可以直接用zip包,下载解压到目录:~/.vim/bundle/Vundle.vim unzip Vundl...
vim/vi的使用(Ubuntu12.04)
2019独角兽企业重金招聘Python工程师标准>>> ...
vim的几种模式和按键映射
Map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手。 vim里最基本的map用法也就是: :map c a 这里把c映射成了a,在map生效的情况下,按下c就等同于按下了a 当然,常用的Ctrl,Shift,Alt自然也是支持的。 令Ctrl+a对应到a :map C-a> a
8414



被折叠的 条评论
为什么被折叠?



