zoukankan      html  css  js  c++  java
  • vim--vim的几种模式和map映射之间的联系

    vim的几种模式

    1、Normal Mode 普通模式

    功能:在这种模式下可以移动光标等。

    进入:默认进入vim之后,处于这种模式。在其他模式下狂按ESC后进入此模式。

    2、Visual Mode 可视模式

    功能:在这种模式下可以选定一些字符、行、多列。

    进入:在普通模式下,按v进入。

    3、Insert Mode 插入模式

    功能:在这种模式下可以编辑输入等。

    进入:普通模式下,可以按i、a、o等进入。

    4、Command-Line 命令行模式

    功能:可以输入各种命令。

    进入:普通模式下按冒号(:)进入。

    5、Ex Mode Ex模式

    功能:多行的Command-Line模式。

    进入:普通模式下按Q进入Ex模式。

    6、Select Mode 选择模式

    功能:在gvim下常用的模式,用鼠标拖选区域的时候,就进入了选择模式。和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。

    进入:普通模式下,可以按gh进入。

    map映射

    在vim配置文件中经常会看到map、nmap、imap、vmap、vnoremap、nunmap、nmapclear等,都是什么意思呢?

    map前的n、v、nore、un等表示下列含义:

    nore—— 表示非递归。

    n ——表示在普通模式下生效。

    v ——表示在可视模式下生效。

    i ——表示在插入模式下生效。

    c——表示在命令行模式下生效。

    un——后面跟按键组合,表示删除这个映射。

    clear——表示清除相关模式下的所有映射。

           

    映 射 与 运 行 模 式


    有五种映射存在
    - 对于普通模式: 当输入命令时.
    - 对于可视模式: 当输入命令并且 Visual 区域已被设置为高亮时.
    - 对于 Operator-pending mode: 当一个操作符正在进行中 ("d", "y", "c",等等之后)
      例如: ":omap { w" 会使 "y{" 和 "yw" 一样, "d{" 和 "dw"一样.
    - 对于插入模式: 也被用于替换模式.
    - 对于命令行模式: 当输入一个 ":" 或 "/" 命令时.

    没有独立针对选择模式的映射.  和可视模式在 |Select-mode-mapping|
    中的一样.

    特殊情况:当在普通模式里为一个命令输入一个数时,对 0 的映射就会禁用。这样
    在输入一个带有0的数字时不会受到对 0 键映射的干扰。

                                                    *map-overview* *map-modes*
    每个映射命令工作的模式概况:

        命令:                                   模式:
                                                普通      可视  Operator-pending
    :map   :noremap   :unmap   :mapclear        yes        yes        yes
    :nmap  :nnoremap  :nunmap  :nmapclear       yes         -          -
    :vmap  :vnoremap  :vunmap  :vmapclear        -         yes         -
    :omap  :onoremap  :ounmap  :omapclear        -          -         yes

                                                插入     命令行        Lang-Arg
    :map!  :noremap!  :unmap!  :mapclear!       yes        yes         -
    :imap  :inoremap  :iunmap  :imapclear       yes         -          -
    :cmap  :cnoremap  :cunmap  :cmapclear        -         yes         -
    :lmap  :lnoremap  :lunmap  :lmapclear       yes*       yes*       yes*

     

    参考:http://man.chinaunix.net/newsoft/vi/doc/map.html#abbreviations

    http://haoxiang.org/2011/09/vim-modes-and-mappin/

  • 相关阅读:
    css 让div居中的代码
    纯Css实现两个Div占满整屏高度
    .net core api开发之从Postman发请求,接收不到参数值的问题记录
    win10下 IIS提示 处理程序“ExtensionlessUrlHandlerIntegrated4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    关于Linux fontconfig 字体库的坑
    前端性能优化方案,取自前端优化雅虎军规35条
    居中对齐
    sticky footer布局
    第30天 [js]写一个方法判断字符串是否为回文字符串
    第46天 [js] 写一个使两个整数进行交换的方法(不能使用临时变量)
  • 原文地址:https://www.cnblogs.com/helloweworld/p/3525905.html
Copyright © 2011-2022 走看看