vim自定义快捷键的键位解释

本文详细介绍Vim编辑器中的map命令,包括如何自定义快捷键,如普通模式、可视模式、插入模式等的映射命令,以及如何取消映射。深入解析Vim的六种模式,提供map、noremap、unmap等命令的具体使用场景。

map命令简介

map是一个映射命令,将常用的很长的命令映射到一个新的功能键上。map是Vim强大的一个重要原因,可以自定义各种快捷键,用起来自然得心应手。Vim中有五种映射存在:

1 用于普通模式: 输入命令时。 2, 用于可视模式: 可视区域高亮并输入命令时。
2 用于操作符等待模式: 操作符等待中 (“d”,”y”,”c” 等等之后)。
3 用于插入模式: 也用于替换模式。
4 用于命令行模式: 输入 “:” 或 “/” 命令时。

Vim的模式,细分的话有6种之多,分别为:
  1. Normal Mode,也就是最一般的普通模式,默认进入vim之后,处于这种模式。
  2. Visual Mode,一般译作可视模式,在这种模式下选定一些字符、行、多列。在普通模式下,可以 按v进入。
  3. Insert Mode,插入模式,其实就是指处在编辑输入的状态。普通模式下,可以按i进入。
  4. SelectMode,选择模式。用鼠标拖选区域的时候,就进入了选择模式。和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。和windows下的编辑器选定编辑的效果一致。普通模式下,可以按gh进入。
  5. Command-Line/Ex
    Mode,命令行模式和Ex模式。两者略有不同,普通模式下按冒号(:)进入Command-Line模式,可以输入各种命令,使用vim的各种强大功能。普通模式下按Q进入Ex模式,其实就是多行的Command-Line模式。

普通模式的映射命令

  1. map,命令格式=>:map {lhs} {rhs},其含义是,在:map作用的模式中把键系列 {lhs} 映射为
    {rhs},{rhs}可进行映射扫描,也就是可递归映射。例如::map td :tabnew
    .,表示在其作用模式(普通、可视、操作符)下,输入td等价于输入 :tabnew .。而普通模式下输入:tabnew .
    就是打开当前目录。如果再定义绑定 :map ts
    td,就是指在其作用模式下输入ts等价于td,也就是打开当前目录。不过如果没有特殊需要,一般不建议递归映射。

  2. noremap
    ,:noremap和: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 .,此时此绑定消失。

  4. mapclear,:mapclear时对应取消所有:map绑定的,慎用!

  5. nmap,:nmap是:map的普通模式板,也就是说其绑定的键只作用于普通模式。例如,:nmap td :tabnew . 和:map td :tabnew . 在普通模式下等效。

  6. nnoremap,:nnorempa和:nmap的关系和:noremap和:map的关系一样,只是:nmap的非递归版。

  7. nunmap,:nunmap和:nmap的关系和:unmap和:map的关系一样,取消:nmap的绑定。

  8. nmapclear,:nmapclear是对应取消所有:map绑定的,慎用!

{rhs} 之前可能显示一个特殊字符。* 表示它不可重映射,& 表示仅脚本的局部映射可以被重映射,@ 表示缓冲区的局部映射。

键盘按键的表示

- 小键盘 0 到 9
<S-…> Shift+键
<C-…> Control+键
<M-…> Alt+键 或 meta+键
<A-…> 同 <M-…> 解释:ideavim用的这个方式
Escape 键
光标上移键
插入空格
插入Tab
等于

特殊参数

有些特殊参数必须映射命令的后边,在其他任何参数的前面。

,如果这些映射命令的第一个参数是,映射将只局限于当前缓冲区(也就是你此时正编辑的文件)内。比如,:map ,w /a。它的意思时在当前缓冲区里定义键绑定,“,w”将在当前缓冲区里查找字符a。同样你可以在其他缓冲区里定义,:map ,w /b。比如我经常打开多个标签(:tabedit),想要在各自标签里定义”,w”键绑定,那么你只要在每个标签页里分别定义就可,其作用域也只在各自的标签里。同样要清除这些缓冲区的键绑定也要加上参数,比如,:unmap ,w :mapclear 。
2 ,是指执行键绑定时不在命令行上回显,比如,:map ,w /abcd。你在输入,w查找abcd时,命令行上不会显示/abcd,如果没有参数就会显示出来。
3 ,一般用于定义特殊键怕有副作用的场合。比如,:map /Header。
4 ,. 如果定义新映射的第一个参数是,那么参数会作为表达式来进行计算,结果使用实际使用的,例如,:inoremap . InsertDot(),这可以用来检查光标之前的文本并在一定条件下启动全能 (omni) 补全。
5 ,一般用于定义新的键映射或者缩写命令的同时检查是否该键已经被映射,如果该映射或者缩写已经存在,则该命令会失败。
6 和mapleader变量,mapleader变量对所有map映射命令起效,它的作用是将参数替换成mapleader变量的值,比如,:map A oanother line,如果mapleader变量没有设置,则用默认的反斜杠代替,因此这个映射等效于,:map \A oanother line,意思时输入\A键时,在下一行输入another line并返回到普通模式。如果设置了mapleader变量,比如,let mapleader = “,”,那么就等效于,:map ,A oanother line。
7 和maplocalleader变量,和类似,只不过它只作用于缓冲区。因此在设置mapleader和maplocalleader时最好区分开,不要出现冲突。

内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文中不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价值。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网中提升稳定性的内在机理;③复现顶刊论文中的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文中提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值