红联Linux门户
Linux帮助

Ubuntu 12.04修改键盘映射

发布时间:2016-06-27 15:04:15来源:linux网站作者:xianzhon

背景:

(1) 我的笔记本G450上,Page_up/Page_down键分别和Home/End在同一个键位上,需要同时按住Fn键才能敲出Home/End

(2) 习惯用Vim的同志都有这个感觉,Esc键太远了,因此,何不把Caps与Esc对掉一下呢


解决:
Page_up/Page_down与Home/End互换

1.需要知道四个键的keycode
$ xev | grep keycode
2.利用软件xmodmap,编写脚本文件(e.g. .swap_keys),将下面的内容复制到里面
!swap Page_up/Page_down with Home/End
keycode 112 = Home
keycode 117 = End
keycode 110 = Prior
keycode 115 = Next
3.添加到启动程序,两种方式(二者是等价的):
1> 利用图形菜单界面添加启动项
$ xmodmap ~/.swap_keys
2> 在~/.config/autostart下添加启动文件


CapsLock与Escape互换
Esc是Vim爱好者使用非常频繁的一个按键。但,你不觉得它离你的左手有点远吗?我已经有很长时间没有使用这个键了,取而代之的是组合键Ctrl + [。但,Ctrl + [ 是不是有些麻烦呢?CapsLock,你常用到吗?我几乎不用。相反,CapsLock键就待在Tab键下面,一不留神就会按下,这在Vim下经常会导致一些莫名奇怪的现象。那我们就把它挪走吧!怎么挪?把它和Esc交换啊,但这里不是硬件的交换,你不用把Esc和CapsLock键抠下来交换,而只需要让OS把这两个键的映射对换一下即可。使用命令xmodmap可以完成此操作,xmodmap的具体用法,参考manpage。为了完成CapsLock和Esc的映射交换,你需要建立文件~/.Xmodmap:

remove Lock = Caps_Lock
keysym Escape = Caps_Lock
keysym Caps_Lock = Escape
add Lock = Caps_Lock

然后,执行

xmodmap ~/.Xmodmap # 使映射生效

如果你使用ubuntu,在System -> Preferences -> KeyBoard -> Layout -> Options -> Capslock behavior中也可设置交换CapsLock和ESC。
最后,提供另一种策略,用Vim的insert模式下的键映射来实现ESC。即在vimrc中做映射imap jj 。当然你可以选择其它键来映射ESC,但地球人都用jj,你自己掂量着办!


本文永久更新地址:http://www.linuxdiyf.com/linux/21879.html