• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Vimscript 更多的Mappings

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

迄今为止我们已经说了很多mappings的内容,但现在我们要再次实践一下。mappings是 使得Vim编辑更为高效的方便快捷途径之一,有必要多加用心。

有个概念在多个例子中出现过,但是我们都没有明确解释,那就是多字符mappings的连续性。

运行如下命令:

:nnoremap jk dd

确保你出于normal模式,快速输入jk。Vim会删除当前行。

现在试试先输入j,停顿一下。如果你输入j后没有快速输入k,Vim就会判定你不想 生效那个映射,而是将j按默认操作运行(下移一行)。

这个映射会给光标移动操作带来麻烦,我们先删除它。运行下面的命令:

:nunmap jk

现在normal模式下快速输入jk会像往常一样下移一行然后又上移一行。

一个更为复杂的Mapping

你已经见过很多简单的mappings了,是时候看看一些复杂的了。运行下面的命令:

:nnoremap <leader>" viw<esc>a"<esc>hbi"<esc>lel

那是一个有趣的mappings!你自己可以先试试。进入normal模式,移动光标至一个单词, 输入<leader>"。Vim将那个单词用双引号包围!

它是如何工作的呢?我们拆分这个映射并逐个解释:

viw<esc>a"<esc>hbi"<esc>lel
  • viw: 高亮选中单词
  • <esc>: 退出visual模式,此时光标会在单词的最后一个字符上
  • a: 移动光标至当前位置之  并进入insert模式
  • ": 插入一个"
  • <esc>: 返回到normal模式
  • h: 左移一个字符
  • b: 移动光标至单词头部
  • i: 移动光标至当前位置之  并进入insert模式
  • ": 插入一个"
  • <esc>: 返回到normal模式
  • l: 右移一个字符,光标置于单词的头部
  • e: 移动光标至单词尾部
  • l: 右移一个字符,置光标位置在第一个添加的引号上

记住:因为我们使用的是nnoremap而不是nmap,所以尽管你映射了字符序列中的字符 也不会有影响。Vim会将其中的字符按默认功能执行。

希望你能看出Vim mappings的潜能及随之引发的阅读困难。

Exercises

像刚才一样创建一个mapping,用单引号而不是双引号。

试试用vnoremap添加一个mapping,使其能够用引号将你 高亮选中 的文本包裹。 你可能会需要​​​<​``​ ​​和​​​​>​​命令,所以先执行​​:help `<``​看看帮助文档。

将normal模式下的H映射为移动到当前行的首部。h是左移,所以你可以认为H是 “加强版”的h

将normal模式下的L映射为移动到当前行的尾部。l是右移,所以你可以认为L是 “加强版”的l

读取帮助文档:help H:help L看看你覆盖了哪些命令。考虑考虑这会不会影响你。

将这些mappings添加到你的~/.vimrc文件中,确保用你的“编辑~/.vimrc”和“重读~/.vimrc” 映射操作~



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Vimscript 锻炼你的手指发布时间:2022-02-03
下一篇:
Vimscript Abbreviations发布时间:2022-02-03
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap