分享
 
 
 

不是打 vi 的广告, vim 选择模式下的热键( Key mapping )

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

惯於使用所见即所得,或者说喜欢用滑鼠的朋友们,对於 vim 这种好像只能凭藉键盘的方式很不习惯。我们可能会说 vim 是不错,可是不能滑鼠选择一块区域,然后按一个键,或是一个地方,就可以完成某些事情。比方说有一些软体可以让你在编写网页的时候,你可以用滑鼠把文字区块选起来,然后点一个小图示或是用滑鼠点击选单就做到把那个区域的前后补上<small>…</small>这样的标籤。虽然 vim 有这麼多强大的功能,有取代、置换、帮你干嘛干嘛的,… 难道,就是这样了吗? vim 真的不行了吗?

怎麼可能?只不过这次,我们必须要把前面许多已经讨论过的方式综合在一起使用,而今天使用的就是其中之一的选择模式(visual mode),透过热键的设定 (Key mapping),就可以轻鬆做到用滑鼠选择然后按一次键就完成目标的事情。

一般来说,如果我们想要做到让 ABCDE 这串东西,变成 <small>ABCDE</small> 的话,照前面我们谈过的作法,你可能会想到用:

:%s/ABCDE/<small>ABCDE</small>/g

或者是:

:%s/ABCDE/<small>\1</small>/g

但是如果 ABCDE 这种东西变多了,就是说你有许多不一样的这些东西都要给上标籤(tag),这种%s的作法,别说你觉得累,我都觉得厌烦。

现在,就请你把 vim 打开,随意输入一些字,并且进入指令模式下。

(如果你还没有 vim ,可以到 vim 的网页 下载)

先把答案给你看:

:vmap <C-S> s<small><C-R>”</small><ESC>

当你输入这串指令后,试试看用滑鼠选择,或是和我一样用键盘以 v 加上游标,选取刚才你随意输入的那些字,然后按下CTRL+S (就是上面的<C-S>),你就会发现选择的那块文字的前后都被加上了<small> </small>。

基本的语法是这样: [mode(模式)] [热键] [执行指令]

所以回过头来看我们的「答案」:

:vmap <C-S> s<small><C-R>”</small><ESC>

「vmap」 用来告诉 vim 这样的按键设定只在选择模式下才使用,

「<C-S>」 就是代表我们的「热键」,意即 CTRL+S。如果你想要的是 ALT+S,那就是<A-S>。

至於后面那一串 s<small><C-R>”</small><ESC> 自然就是我们输入的指令:

* 「s」 代表取代;就是说现在选的这个区块将会被后面的东西所取代;

* 「<C-R>」代表 CTRL+R,这是呼叫 vim 裡面使用的 registers(暂存器),而它呼叫的就是「”」这个暂存器,这个暂存器会把在选择模式 (visual mode) 下用到的 d, c, s, x 等指令「抓取」到的文字区块,放到「”」这个暂存器裡面(如果你不清楚它们的用法或意义,可以使用 :help d , :help c , :help s, :help x 来查询)。前面既然我们才刚刚使用过「s」,很明显,就代表刚刚用滑鼠(或者你和我一样都用键盘)选取到的区域就是放在「”」暂存器裡面,然后把在编辑器上面选择的区域清除,并且进入输入的模式。

* 再看后面的指令:「<small><C-R>”</small>」这意思是说,先输入一个「<small>」然后用CTRL+R把「”」暂存器里面的东西拉出来(还记得「”」里面装什么吧?),然后补上「</small>」,最后为了要让输入模式转到指令模式下,用了「<ESC>」。

如果你不想再用这个设定了,可以用:

:vunmap

来取消。

好啦,所以同样的方式你一样可以用在其他的模式下,相关的详细使用你可以参考:

:h key-mapping

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有