精华内容
下载资源
问答
  • 按键映射

    2017-01-06 17:16:20
    这些属性按顺序被列出是有意义的,当一个按键映射到一个行为,系统按顺序扫描所以相关的属性,并且返回最后一个发现的应用行为。 因此,给定一个按键,晚指定的属性会覆盖早指定的属性。 (B) Behaviors ...
    

    转自http://blog.csdn.net/coldsnow33/article/details/16829737

    1 键扫描码Scancode是由Linux的Input驱动框架定义的整数类型。

    include/uapi/Linux/input.h中有定义:

    1. ......  
    2. #define KEY_VOLUMEDOWN 114  
    3. #define KEY_VOLUMEUP 115  
    4. #define KEY_POWER 116 /* SC System Power Down */  
    5. #define KEY_MENU 139 /* Menu (show menu) */  
    6. #define KEY_BACK 158 /* AC Back */  
    7. ......  
    ......
    #define KEY_VOLUMEDOWN 114
    #define KEY_VOLUMEUP 115
    #define KEY_POWER 116 /* SC System Power Down */
    #define KEY_MENU 139 /* Menu (show menu) */
    #define KEY_BACK 158 /* AC Back */
    ......
    


    2 键扫描码Scancode经过一次转化后,形成按键的标签KeycodeLabel->literal,是一个字符串的表示形式。

    2.1 KCM(KeyCharacterMap):按键字符映射文件,位于/system/usr/keychars/目录,由KeyCharacterMap.cpp解析。

    按键字符映射文件片段:

    1. type FULLkey A {  
    2.  label: 'A' base: 'a' shift,   
    3.  capslock: 'A'  
    4. }  
    5. key SPACE {  
    6.  label: ' '   
    7.  base: ' ' alt,  
    8.  meta: fallback SEARCH   
    9.  ctrl: fallback LANGUAGE_SWITCH  
    10. }  
    11.   
    12. Keyboard Type Declaration  
    type FULLkey A {
     label: 'A' base: 'a' shift, 
     capslock: 'A'
    }
    key SPACE {
     label: ' ' 
     base: ' ' alt,
     meta: fallback SEARCH 
     ctrl: fallback LANGUAGE_SWITCH
    }
    
    Keyboard Type Declaration
    
    

    一个键盘的type声明描述了键盘的总体行为。一个字符映射文件必须包含一个键盘type声明。为清楚起见,它通常被放在文件顶部。
    可识别的键盘type如下:
    (1) NUMERIC: 一个数字键盘(12个按键)。
    一个数字键盘支持多次单击形式的文本输入。这对重复点击一个按键来产生期望的字母或符合的情况可能是必需的。
    该键盘type通常是为了拇指输入设计的。
    (2) PREDICTIVE: 一个带有全字母的键盘,每个按键代表一个以上的字母。
    该键盘type通常是为了拇指输入设计的。
    (3) ALPHA: 一个带有全字母的键盘,也可能有一些数字。
    一个字母键盘支持直接的文本编辑,但也可能有一个小型化的浓缩布局。与FULL键盘相反,一些符号只能使用屏幕上特殊的字符选择器进行编辑。此外,为了提高输入速度和精确度,framework为字符键盘提供了特殊的支持,例如自动大写和切换/锁定SHIFT和ALT按键。该键盘type通常是为了拇指输入设计的。
    (4) FULL: 一个全PC样式的键盘。
    一个完整的键盘像一个PC键盘。所有符号都可以用键盘上的按键直接访问,不再有屏幕支持的字符选择器,也不再提供类似自动大写的支持。
    (5) SPECIAL_FUNCTION: 一个键盘只用于执行系统的控制函数,而不用于输入。
    一个特殊功能键盘只包括没有输入功能的按键,比如HOME和POWER并不是用来做输入的。
    The Generic.kcm and Virtual.kcm key character maps are both FULL keyboards.

    Key Declarations

    每个key声明包括一个关键字key,随后是一个Android key code name,一个{,设置 properties and behaviors,最后一个}。

    (A) Properties

    每个key属性建立一个从key到behavior的映射。为了更紧密地创建按键字符映射文件,一些属性可以被映射到同一behavior,用逗号分隔。
    可识别的属性如下:
    (1) label: 指定按键上物理打印的标签,它由单一字符组成,转换成为的显示内容。
    number: 指定数字文本视图获得焦点的行为(字符必须被输入),例如当用户输入一个电话号码。转换成为的显示数字。紧密结合的键盘常常在一个按键上合并多个符号,这样同一个按键可以被用作'1' and 'a' or '#' and 'q' 进行输入。可能,对于这些按键,如果需要的话,它们的数字属性被用来指明在数字上下文中输入的是哪个信号。
    一些典型的“数字”信号是数字'0' through '9', '#', '+', '(', ')', ',', and '.'。
    (2) base: 指定没有modifier 被按下的行为(字符必须被输入)。
    <modifier> or <modifier1>+<modifier2>+...: 指定按键被按下和所以的指定modifier 被激活的行为(字符必须被输入)。
    例如,modifier 属性shift指定了一个应用LEFT SHIFT or RIGHT SHIFT 修饰符被按下的行为。
    同样地,modifier 属性rshift+ralt指定了应用RIGHT SHIFT and RIGHT ALT modifiers 一起被按下的行为。
    (3) modifiers属性中可识别的modifiers如下:
    shift: Applies when either the LEFT SHIFT or RIGHT SHIFT modifier is pressed.
    lshift: Applies when the LEFT SHIFT modifier is pressed.
    rshift: Applies when the RIGHT SHIFT modifier is pressed.
    alt: Applies when either the LEFT ALT or RIGHT ALT modifier is pressed.
    lalt: Applies when the LEFT ALT modifier is pressed.
    ralt: Applies when the RIGHT ALT modifier is pressed.
    ctrl: Applies when either the LEFT CONTROL or RIGHT CONTROL modifier is pressed.
    lctrl: Applies when the LEFT CONTROL modifier is pressed.
    rctrl: Applies when the RIGHT CONTROL modifier is pressed.
    meta: Applies when either the LEFT META or RIGHT META modifier is pressed.
    lmeta: Applies when the LEFT META modifier is pressed.
    rmeta: Applies when the RIGHT META modifier is pressed.
    sym: Applies when the SYMBOL modifier is pressed.
    fn: Applies when the FUNCTION modifier is pressed.
    capslock: Applies when the CAPS LOCK modifier is locked.
    numlock: Applies when the NUM LOCK modifier is locked.
    scrolllock: Applies when the SCROLL LOCK modifier is locked.
    这些属性按顺序被列出是有意义的,当一个按键映射到一个行为,系统按顺序扫描所以相关的属性,并且返回最后一个发现的应用行为。
    因此,给定一个按键,晚指定的属性会覆盖早指定的属性。

    (B) Behaviors

    每一个属性映射一种行为,大多数的行为都是输入一个字符,但是也有其他的。一些其他的可识别行为如下:(1) none: 不输入一个字符。
    当没有字符指定的时候,这种行为是默认的。node是一个可选项,指定了none能提高清晰度。
    (2) 'X': 输入一个指定的文字字符。
    这种行为产生是由于一个指定的字符被输入到文本视图的焦点。这个文字字符可以是任何的ASCII字符或者是下列转义字符之一:
    '\\': Type a backslash character.反斜杠。
    '\n': Type a new line character (use this for ENTER / RETURN).换行。
    '\t': Type a TAB character.
    '\'': Type an apostrophe character.单引号。
    '\"': Type a quote character.引号。
    '\uXXXX': Type the Unicode character whose code point is given in hex by XXXX.unicode字符,XXXX'指向一个十六进制的数。
    (3) fallback <Android key code name>: Perform a default action if the key is not handled by the application.如果按键没有被应用程序处理,就执行一个默认的动作。
    该行为产生的原因是当应用程序本身不处理指定的按键时,系统模拟不同的按键按下。它是用来支持一个不是所有应用程序都知道怎么处理的新按键的默认行为,例如转义或者没有按下大小写锁定键的数字键盘按键。
    当一个fallback行为被执行,应用程序将会接收到2个按键:一个是原始的按键,一个是所选的 fallback按键。如果应用程序在按键抬起的时候处理原始按键,那么fallback按键时间将被取消。
    系统保留两个unicode编码执行特殊的函数:
    '\uef00': 当该行为被执行,文本视图取消并移除光标前的四个字符,将该编码当做十六进制数字,插入到相应的unicode编码点。
    '\uef01': 当该行为被执行,文本视图显示一个包含各种符号的字符选择对话框。
    系统可以识别下列unicode编码作为dead key(与相关字符组合使用的修饰符键)按键字符的组合字符:
    '\u0300': Grave accent.tab沉音符“`”,tab键上面的键。
    '\u0301': Acute accent.尖音符。
    '\u0302': Circumflex accent.长音符号。
    '\u0303': Tilde accent.波浪线。
    '\u0308': Umlaut accent.
    当一个dead key接着另一个字符被输入,那么dead key和它跟随的字符是组合的。例如,当用户跟着字母'a'输入grave accent dead key,结构是'à'。

    2.2 KL(Keycode Layout):按键布局文件,位于 /system/usr/keylayout/ 目录,由KeyLayoutMap.cpp解析。

    按键布局文件片段如下:

    1. key 158 BACK  
    2. key 139 MENU  
    3. key 108 DPAD_DOWN  
    4. key 103 DPAD_UP  
    5. key 102 HOME  
    6. key 115 VOLUME_UP WAKE  
    7. key 114 VOLUME_DOWN WAKE  
    8. key 116 POWER WAKE  
    key 158 BACK
    key 139 MENU
    key 108 DPAD_DOWN
    key 103 DPAD_UP
    key 102 HOME
    key 115 VOLUME_UP WAKE
    key 114 VOLUME_DOWN WAKE
    key 116 POWER WAKE

    第一列为按键的扫描码,是一个整数值;第2列为按键的标签,是一个字符串。第3列表示按键的Flag,经过*.kl即完成了按键信息的第1次转化,将整型的扫描码,转换成字符串类型的按键标签。
    base/include/androidfw/KeycodeLabels.h中第3列flag定义:

    1. static const KeycodeLabel FLAGS[] = {   
    2.  { "WAKE", 0x00000001 }, //可以唤醒休眠,并通知应用层   
    3.  { "WAKE_DROPPED", 0x00000002 }, //可以唤醒休眠,不通知应用层   
    4.  { "SHIFT", 0x00000004 }, //自动附加SHIFT   
    5.  { "CAPS_LOCK", 0x00000008 }, //自动附加CAPS_LOCK   
    6.  { "ALT", 0x00000010 }, //自动附加ALT   
    7.  { "ALT_GR", 0x00000020 },   
    8.  { "MENU", 0x00000040 },   
    9.  { "LAUNCHER", 0x00000080 },   
    10.  { "VIRTUAL", 0x00000100 },   
    11.  { "FUNCTION", 0x00000200 },   
    12.  { NULL, 0 }  
    13. };  
    static const KeycodeLabel FLAGS[] = { 
     { "WAKE", 0x00000001 }, //可以唤醒休眠,并通知应用层 
     { "WAKE_DROPPED", 0x00000002 }, //可以唤醒休眠,不通知应用层 
     { "SHIFT", 0x00000004 }, //自动附加SHIFT 
     { "CAPS_LOCK", 0x00000008 }, //自动附加CAPS_LOCK 
     { "ALT", 0x00000010 }, //自动附加ALT 
     { "ALT_GR", 0x00000020 }, 
     { "MENU", 0x00000040 }, 
     { "LAUNCHER", 0x00000080 }, 
     { "VIRTUAL", 0x00000100 }, 
     { "FUNCTION", 0x00000200 }, 
     { NULL, 0 }
    };
    
    
    

    2.3 转换按键码

    native/include/android/keycodes.h中的枚举值定义了整数格式的按键码。

    1. enum {  
    2.  AKEYCODE_UNKNOWN = 0,  
    3.  AKEYCODE_SOFT_LEFT = 1,  
    4.  AKEYCODE_SOFT_RIGHT = 2,    
    5.  ...... AKEYCODE_ASSIST = 219,   
    6.  AKEYCODE_BRIGHTNESS_DOWN = 220,  
    7.  AKEYCODE_BRIGHTNESS_UP = 221,   
    8. // NOTE: If you add a new keycode here you must also add it to several other files.   
    9. // Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.  
    10. };  
    enum {
     AKEYCODE_UNKNOWN = 0,
     AKEYCODE_SOFT_LEFT = 1,
     AKEYCODE_SOFT_RIGHT = 2,  
     ...... AKEYCODE_ASSIST = 219, 
     AKEYCODE_BRIGHTNESS_DOWN = 220,
     AKEYCODE_BRIGHTNESS_UP = 221, 
    // NOTE: If you add a new keycode here you must also add it to several other files. 
    // Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
    };
    
    

    base/include/androidfw/KeycodeLabels.h中KEYCODES[]数组定义了按键标签KeycodeLabel->literal和按键码KeycodeLabel->value的映射关系。

    1. static const KeycodeLabel KEYCODES[] = {   
    2.  { "SOFT_LEFT", 1 },    
    3.  { "SOFT_RIGHT", 2 },    
    4.  ......  
    5.  { NULL, 0 }  
    6. };  
    static const KeycodeLabel KEYCODES[] = { 
     { "SOFT_LEFT", 1 },  
     { "SOFT_RIGHT", 2 },  
     ......
     { NULL, 0 }
    };
    
    
    
    

    这些按键码与keycodes.h中枚举值的按键码是一致的。base/core/Java/android/view/KeyEvent.java 中定义了android.view.KeyEvent类,其中定义的key code整型常量与按键码也是一致的。

    1. public class KeyEvent extends InputEvent implements Parcelable   
    2. {  
    3. /** Key code constant: Unknown key code. */  
    4. public static final int KEYCODE_UNKNOWN = 0; /** Key code constant: Soft Left key. * Usually situated below the display on phones and used as a multi-function * feature key for selecting a software defined function shown on the bottom left * of the display. */  
    5. public static final int KEYCODE_SOFT_LEFT = 1; /** Key code constant: Soft Right key. * Usually situated below the display on phones and used as a multi-function * feature key for selecting a software defined function shown on the bottom right * of the display. */    
    6. public static final int KEYCODE_SOFT_RIGHT = 2;    
    7.  ......  
    8. }  
    public class KeyEvent extends InputEvent implements Parcelable 
    {
    /** Key code constant: Unknown key code. */
    public static final int KEYCODE_UNKNOWN = 0; /** Key code constant: Soft Left key. * Usually situated below the display on phones and used as a multi-function * feature key for selecting a software defined function shown on the bottom left * of the display. */
    public static final int KEYCODE_SOFT_LEFT = 1; /** Key code constant: Soft Right key. * Usually situated below the display on phones and used as a multi-function * feature key for selecting a software defined function shown on the bottom right * of the display. */  
    public static final int KEYCODE_SOFT_RIGHT = 2;  
     ......
    }
    
    
    
    
    

    经过按键布局文件*.kl转换后,形成按键的标签KeycodeLabel->literal。根据KEYCODES[]的定义,通过这个标签可以找到对应的按键码KeycodeLabel->value。
    按键的标签KeycodeLabel->literal经过转换后,再次形成整数型的按键码keycode。在Android应用程序层,主要使用按键码keycode来区分。

    3 按键的添加

    在系统需要增加按键的时候,一种简易的做法是使用Android中已经定义的“生僻”按键码作为这个新增按键的键码。使用这种方式Android的框架层不需要做任何改动。这种方式的潜在问题是当某些第三方的应用可能已经使用那些生僻按键时,将意外激发系统的这种新增的按键。
    (1) include/uapi/linux/input.h中添加自定义的扫描码。

    1. /* Code 255 is reserved for special needs of AT keyboard driver */  
    2. #define KEY_CUSTOM 249  
    /* Code 255 is reserved for special needs of AT keyboard driver */
    #define KEY_CUSTOM 249


    (2) *.kl按键布局文件中添加键值信息,不要与已有信息重复。

    1. key 249 CUSTOM  
    key 249 CUSTOM

    (3) native/include/android/keycodes.h中添加键值,这是给native空间用的。

    1. enum {  
    2.  AKEYCODE_UNKNOWN = 0,  
    3.  AKEYCODE_SOFT_LEFT = 1,   
    4.  AKEYCODE_SOFT_RIGHT = 2,    
    5.  ......    
    6.  AKEYCODE_CUSTOM = 222,  
    7. };  
    enum {
     AKEYCODE_UNKNOWN = 0,
     AKEYCODE_SOFT_LEFT = 1, 
     AKEYCODE_SOFT_RIGHT = 2,  
     ......  
     AKEYCODE_CUSTOM = 222,
    };
    
    

    (4) base/include/androidfw/KeycodeLabels.h中KEYCODES[]数组里添加按键标签和键值映射信息。

    1. static const KeycodeLabel KEYCODES[] = {  
    2.  { "SOFT_LEFT", 1 },   
    3.  { "SOFT_RIGHT", 2 },    
    4.  { "CUSTOM", 222 },  
    5.  { NULL, 0 }  
    6. };  
    static const KeycodeLabel KEYCODES[] = {
     { "SOFT_LEFT", 1 }, 
     { "SOFT_RIGHT", 2 },  
     { "CUSTOM", 222 },
     { NULL, 0 }
    };
    

    (5) base/core/java/android/view/KeyEvent.java中添加按键编码,这个给android空间用的。

    
    
    1. public class KeyEvent extends InputEvent implements Parcelable {   
    2.  public static final int KEYCODE_UNKNOWN = 0;   
    3.  public static final int KEYCODE_SOFT_LEFT = 1;    
    4.  public static final int KEYCODE_SOFT_RIGHT = 2;    
    5.  ......    
    6.  public static final int KEYCODE_CUSTOM = 222;  
    7. }  
    public class KeyEvent extends InputEvent implements Parcelable { 
     public static final int KEYCODE_UNKNOWN = 0; 
     public static final int KEYCODE_SOFT_LEFT = 1;  
     public static final int KEYCODE_SOFT_RIGHT = 2;  
     ......  
     public static final int KEYCODE_CUSTOM = 222;
    }
    
    

    一般需要修改private static final int LAST_KEYCODE = KEYCODE_CUSTOM;

    (6) base/core/res/res/values/attrs.xml配置文件,增加按键信息。

    1. <enum name="KEYCODE_CUSTOM" value="222" />  
    <enum name="KEYCODE_CUSTOM" value="222" />

    (7) 如果是系统按键base/core/java/android/view/KeyEvent.java中
    isSystem()->native_isSystemKey(mKeyCode)->
    base/core/jni/android_view_KeyEvent.cpp

    1. bool KeyEvent::isSystemKey(int32_t keyCode) {   
    2.  switch (keyCode)   
    3.  {   
    4.   case AKEYCODE_MENU:  
    5.   case AKEYCODE_SOFT_RIGHT:   
    6.   case AKEYCODE_HOME:   
    7.   case AKEYCODE_BACK:   
    8.   case AKEYCODE_CALL:   
    9.   case AKEYCODE_CUSTOM:   
    10.   return true;   
    11.  }   
    12.  return false;  
    13. }  
    bool KeyEvent::isSystemKey(int32_t keyCode) { 
     switch (keyCode) 
     { 
      case AKEYCODE_MENU:
      case AKEYCODE_SOFT_RIGHT: 
      case AKEYCODE_HOME: 
      case AKEYCODE_BACK: 
      case AKEYCODE_CALL: 
      case AKEYCODE_CUSTOM: 
      return true; 
     } 
     return false;
    }

    (8) 如果需要修改external/webkit/WebKit/android/plugins/ANPKeyCodes.h。

    展开全文
  • 易语言按键映射源码

    2020-07-22 22:04:38
    易语言按键映射源码,按键映射,回调函数,钩子函数,安装钩子,缷载钩子,CopyMemory,CallNextHookEx,SetWindowsHookEx,GetModuleHandleA,UnhookWindowsHookEx
  • 易语言按键映射源码
  • 易语言源码易语言按键映射源码.rar 易语言源码易语言按键映射源码.rar 易语言源码易语言按键映射源码.rar 易语言源码易语言按键映射源码.rar 易语言源码易语言按键映射源码.rar 易语言源码易语言按键映射源码....
  • vim按键映射

    千次阅读 2019-01-15 23:18:17
    按键映射,如 \ 代替dd 删除一行 :map \ dd 查看某个按键映射 verbose map xx 命令 正常模式 视图模式 操作运算模式 插入模式 命令行模式 :map y y y :nmap y :vmap y :omap y :...

    按键映射,如 \ 代替dd 删除一行

    :map \ dd

    查看某个按键映射

    verbose map xx

    命令 正常模式 视图模式 操作运算模式 插入模式 命令行模式
    :map y y y
    :nmap y
    :vmap y
    :omap y
    :map! y y
    :map y
    :cmap y

    组合按键映射
    将Ctrl+a 对应到 a

    :map <C-a> a

    将Ctrl+Alt+a对应到a

    :map <C-A-a> a

    常用的功能辅助键

    Tab键 <tab>
    Enter键 <CR>
    F5功能键 <F5>
    Esc键 <Esc>
    Backspace键 <BS>
    空格键 <Space>
    方向键 <LEFT>
    <RIGHT>
    <UP>
    <DOWN>
    删除键 <DELETE>
    展开全文
  • pc按键映射神器

    2014-01-18 14:57:58
    pc按键映射神器
  • 键盘按键映射

    2012-03-02 16:48:51
    如果有哪个键盘的按键坏了,那就使用这个软件可以把坏的按键映射到其他好的并且不常用的按键上。
  • 更改按键映射

    2011-10-04 10:29:52
    更改按键映射,非常好用,我用来设置实况足球PES2011、2012的假动作按键,自己用键盘就能使用,不必要用手柄,非常实用
  • 键盘按键映射工具.rar

    2019-05-25 13:37:26
    键盘 按键 映射 工具,解压密码 123456 ,呼出热键 Ctrl+Alt+K,软件采用 键盘Hook 技术实现,常驻内存, 部分杀毒软件可能会报不安全。 本软件绝不含毒,亦无需联网。 可实现映射键盘任意的最多三个组合键到另外三...
  • debian 修改按键映射

    2019-07-24 22:31:51
    debian 修改按键映射 使用 emacs 时,ctrl 键使用的频率很高,由于常见键盘上 ctrl 键出现在字母按键的左下 角与右下角,在使用 ctrl 按键时用小拇指去按,长时间会对手指造成不好的影响,因此可 以选择将 ctrl ...

    debian 修改按键映射

    为什么要修改按键映射

    使用 emacs 时,ctrl 键使用的频率很高。由于键盘上 ctrl 键出现在字母按键的左下角与右下角,在使用 ctrl 按键时需要用小拇指去按。长时间使用会对手指造成不好的影响。因此可以选择将 ctrl 键与其它键互换,以减轻小拇指的压力。当然最好的方式还是购买定制的键盘,不过却不是一种经济的解决方案。

    这个问题是我研究按键替换的初衷。

    怎么实现

    研究发现,要修改按键映射需要修改 X window 中的按键映射配置。相关的配置文件如下:

    /usr/share/X11/xkb/keycodes/evdev

    这个文件的部分内容截取如下:

    default xkb_keycodes "evdev" {
    	minimum = 8;
    	maximum = 255;
        ...
        <LFSH> = 50;
    	<LALT> = 64;
    	<LCTL> = 37;
    	<SPCE> = 65;
    	<RCTL> = 105;
    	<RALT> = 108;
        ...
    

    上述内容中尖括号中的内容是按键的名称缩写,等号右边的数字是对应的码值。修改
    按键映射只需要找到按键,修改按键的码值即可。

    这里只需要将 LFSH 与 LCTL 的码值交换即可。修改的内容如下:

    <LFSH> = 37;
    <LCTL> = 50;
    

    这样就完成了两个按键的交换,操作起来相当简单。

    展开全文
  • joytokey键盘按键映射

    2012-03-21 20:55:25
    设置键盘按键映射到手柄上。全部键都可以改。
  • vim 按键映射

    2016-10-08 17:16:17
    nmap, vmap, imap map分别对应... 按键映射 nmap:映射一个Normal模式下的键,只有在Normal模式这个命令才会生效。 例:nmap ,s :source $VIM/_vimrccr> 说明:绑定“,s”在No
    nmap, vmap, imap map分别对应Normal模式,Insert模式,Visual模式,所有模式的
    1. 按键映射
    2. nmap:映射一个Normal模式下的键,只有在Normal模式这个命令才会生效。
    3. 例:nmap ,s :source $VIM/_vimrc<cr>
    4. 说明:绑定“,s”在Normal模式下映射为“:source $VIM/_vimrc<cr>”命令,即重新读取配置文件_vimrc 。

    5. imap:映射一个Insert 模式下的键,只有在Insert 模式这个命令才会生效。
    6. 例:imap <F11> :r c:\boot.ini<cr>
    7. 说明:绑定F11在Insert 模式下的映射为“:r c:\boot.ini<cr>”命令,即读取c:\boot.ini文件到当前位置。

    8. vmap:映射一个Visual模式下的键,只有在Visual模式这个命令才会生效。
    9. 例:vmap sb "zbiz
    10. 说明:选中文字后按sb,选中文字的前后将分别加上

    11. 再例:vmap g/ y/"<cr>
    12. 说明:映射“g/”这个组合键匹配选中的字并给予高亮显示。

    13. map:用map绑定的键对Normal, Insert, Visual和Command-line模式均有效。
    14. 例:map <F5> :ls<cr>:e #
    15. 说明:映射F5键,使得按下F5会显示当前可编辑文件的buffer,然后提示你输入buffer的行号。

    <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
    阅读(405) | 评论(0) | 转发(0) |
    0

    上一篇:VPR XPDM XXDM

    下一篇:WINDOWS 驱动 PAGED_CODE

    给主人留下些什么吧!~~
    评论热议
    展开全文
  • 在linux下 将游戏手柄的按键 映射到 键盘 发送到系统消息中, 可以用游戏手柄玩本来只能键盘玩的游戏
  • vim - Leader 按键映射

    2020-02-03 17:34:16
    1 是一种按键映射 默认是“/” 2 查看的映射 :echo mapleader
  • KODI按键映射,看IPTV按键设置2020-04-09 18:10:1016点赞76收藏7评论KODI播放器功能丰富,其中自定义按键功能也是强大,可以让用户修改各个场景下各个按键的功能,网上好多文章没把事情说明白或太复杂,本教程教大家...
  • 按键映射工具 KeyTweak

    2008-07-17 22:28:30
    按键映射工具 KeyTweak
  • VScode设置vim自定义按键映射

    千次阅读 2020-02-12 13:22:30
    在vscode中下载vim插件后,如何设置vim按键映射? 方法 看Github项目官方vim使用文档,里面有详细的按键映射指南,代码在settings.json文件里添加即可 另外还有easy motion,easy sneak等功能都整合在这个插件里...
  • ppsspp 手柄按键映射 北通 BTP

    千次阅读 2019-09-12 18:19:11
    PPSSPP Joystick 按键映射 某天感兴趣买了一个北通蝙蝠D2(BTP-BD2F)手柄,安装了PPSSPP模拟器。满脸的期待打开PPSSPP准备体验一下游戏的感觉,结果游戏手柄按映射不对,欲哭无泪。开始各种爬文寻找解决办法,确定...
  • vim按键映射问题

    2018-04-02 12:34:50
    在修改 ~/.vimrc配置文件进行自动补全设置时,有如下记录https://www.cnblogs.com/songdechiu/p/5844073.html按键映射主要有map,noremap,unmap,mapclear四个 命令,并且有四个前缀i,c,n,v修饰nore表示非递归,见...
  • mtk平台调用的按键映射kl文件一般是mtk-kpd.kl、mtk-tpd-kpd.kl,其前缀就是驱动注册的name,一般input驱动编写者使用mtk平台的按键映射kl文件,就要驱动注册的...这样也方便统一更改按键映射kl文件。 ...
  • 可以将指定按键更改为另外的按键,也就是映射
  • 移花接木按键映射

    2018-08-26 02:59:58
    移花接木软件
  • Linux上Razer Tartarus的按键映射和灯光控制 按键 Tartarus包含21个键:键盘上的15个键,2个拇指按钮和4向方向键。 每个键或按钮都映射到典型键盘上的一个字符,并且操作系统将整个设备注册为大而全的键盘。 建造 ...
  • Vim按键映射

    2013-03-04 08:39:00
    学会了Vim的简单使用的后,往往是开始折腾Vim...vimrc 中的设置实在是太多了,待日后把我的vimrc 文件贴出来后再做更多的说明,这里先对我已知道的按键映射(好像有的也叫按键绑定)做个笔记,同时也记下几个比较...
  • 安卓系统按键映射修改

    万次阅读 2016-06-12 22:43:22
    安卓系统按键映射修改 谨记录下靠着自己摸索,安卓平板使用时一个bug的解决方案,及修改按钮功能的方法。这个bug目前搜不到解决方案,能独立解决还是很有成就感的 解决反复打开谷歌语音搜索的bug 手里一部驰为hi8...
  • vim按键映射设置

    千次阅读 2014-07-13 16:30:11
    vimrc 中的设置实在是太多了,待日后把我的vimrc 文件贴出来后再做更多的说明,这里先对我已知道的按键映射(好像有的也叫按键绑定)做个笔记,同时也记下几个比较有意思的命令。Vim的模式在设置按键映射之前有必要...
  • Scancode Map 注册表项来实现键盘按键映射。位于注册表的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\下新建一个二进制值项: "Scancode Map"这个项目可实现对键盘按键的映射。这里映射...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,560
精华内容 1,024
关键字:

按键映射