zoukankan      html  css  js  c++  java
  • Vim魔法堂:认识快捷键绑定

    Brief                              

    习惯在VS上按<F5>来编译运行程序,刚用上VIM上就觉得无比的麻烦,而随着对VIM的学习我们分阶段的简化这一操作

      1. 退出VIM,在shell下编译&&运行程序

    :wq
    [root@fsjohnhuang ~]# gcc main.c -o main
    [root@fsjohnhuang ~]# ./main

      2. 在VIM的命令行模式下编译&&运行程序

    :!gcc % -o main
    :!./main

      3. 快捷键绑定一键编译&&运行程序

    :map <F5> <ESC>:w<CR> <ESC>:!gcc % -o %< && ./%<<CR>

         以后我们只需在命令模式下按<F5>即可实现程序的编译&&运行了!

         现在我们知道通过:map我们可以自定义快捷键,那仅知道这些就足矣了吗?如果不是那请继续看下文吧!

    Know command :map More!                   

        通过ESC进入VIM的命令模式,这里我们可以输入VIM命令(以:开头,如:map)和外部命令(以:!开头,如:!ls)。

      绑定快捷键

        :map命令就是将一连串操作绑定到指定的快捷键,语法格式: :map <快捷键> <命令组> 

        <快捷键>,各功能键和组合键均可作为快捷键,并且均可通过VIM内置的键盘映射来指定(如上面提到的<ESC>则是Escape键的映射,<CR>则是回车键的映射,<C-Esc>代表Ctrl-Esc和<S-F1>表示Shift-F1等)。具体的键盘映射信息可通过在命令模式下执行 :h key-notation 查看。

        

        <命令组>,按下<快捷键>后依次执行的命令组。其中%占位符用于表示当前操作的文件全称,而%<占位符表示当前操作的文件名称(不带扩展名)。

     查看已绑定的快捷键  :map 

      

         上图我们看到x,s,o,n,v等字母,这些是啥意思呢?

      还记得VIM的几个工作模式(Normal,Visual,Select,Command-line,Operator pending, Insert only)吗?而上面的x,s,o等就是指出所属行的快捷键仅作用于某模式下。

             标记                             模式

        <space>       常规模式,可视化模式,运算符模式

               n                             常规模式

               v                            可视化模式

               o                           运算符模式

               !                     插入模式,命令行模式

               i                              插入模式

               c                            命令行模式

         那么如何列出指定模式下的已有快捷键呢?

    :nmap - Display normal mode maps
    :imap - Display insert mode maps
    :vmap - Display visual and select mode maps
    :smap - Display select mode maps
    :xmap - Display visual mode maps
    :cmap - Display command-line mode maps
    :omap - Display operator pending mode maps

      也就是可通过 :nmap:map! 等来在指定的工作模式绑定快捷键。

     解除快捷键绑定  :unmap <快捷键> 

        :iunmap <快捷键> 仅解绑插入模式下的快捷键,如此类推

     解除所有快捷键绑定(用户定义的和系统默认的) :mapclear

    Thanks                          

    http://www.pythonclub.org/linux/vim/map

    http://www.pythonclub.org/linux/vim/map

    http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-_Tutorial_%28Part_1%29

  • 相关阅读:
    ORM和JDBC
    四种会话跟踪技术以及jstl介绍
    GC、进程和线程的定义
    数组和链表的理解,及各自的优缺点
    JSP和Servlet及浏览器与tomcat交互过程
    多线程、同步实现方法及Error和Exception的区别与联系
    Eclipse创建一个普通maven项目详细步骤
    Eclipse创建一个动态maven项目详细步骤
    Myeclipse项目出现红叉解决方案
    数据结构和算法 — 平衡二叉树的实现
  • 原文地址:https://www.cnblogs.com/fsjohnhuang/p/4778054.html
Copyright © 2011-2022 走看看