Vimscript 更多Operator-Pending映射.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Vimscript 更多Operator-Pending映射

Vimscript 更多Operator-Pending映射 Operators和movements所包含的理念是Vim 中的⼀个⾮常重要的概念,也是Vim之所以 这么⾼效的最⼤原因所在。在这⼀章 们会在这⼀块做更多的实践,这会让Vim变得 更强⼤。 假设你现在在往Markdown 中写⼊⼀些⽂字。如果你没有⽤过Markdown ,不要紧,对 于 们现在要做的事情⽽⾔,它很简单。把下⾯的⽂字输⼊到⼀个⽂件中: Topic One ========= This is some text about topic one. It has multiple paragraphs. Topic Two ========= This is some text about topic two. It has only one paragraph. 使⽤=作为“下划线”的⾏会被Markdown当作标题。 们现在创建⼀些映射,这些映射 可以让 们通过movements定位到标题。运⾏下⾯的命令: :onoremap ih :c-uexecute normal! ^==\\+$\r:nohlsearch\rkvg_c 这个映射有些复杂。现在把你的光标放到⽂本中的某个位置 (不要放到标题上),然后 敲击cih。Vim会删除光标所在章节的标题,然后保持在插⼊模式,这可以称为修改 所在的标题(change inside heading)。 这⾥使⽤了⼀些 们之前从来没有见过的东西,所以 们有必要单独分析下每⼀部分 的含义。这个映射的第⼀部分,:onoremap ih是映射命令,这个 们很熟悉了,⽆ 需多⾔。c-u上⼀章讲过, 们现在也不深究。 接着看看剩下的部分: :execute normal! ^==\\+$\r:nohlsearch\rkvg_cr Normal :normal命令的后⾯会跟着⼀串字符,⽆论这些字符表⽰什么含义,:normal命令 都会执⾏它们,就像是在常⽤模式下敲击这些字符⼀样。 们会在后⾯的章节中谈论 关于:normal的更多细节,由于这个它已经出现多次,所以 觉得有必要现在做⼀个 简单的说明,算是浅尝辄⽌吧。执⾏下⾯的命令: :normal gg Vim会将光标跳转到⽂件的顶部。现在执⾏下⾯的命令: :normal Vim将缩进当前⾏。 那normal后⾯的!是⼲啥的呢?先别管,以后再说。 Execute execute命令后⾯会跟着⼀个Vim脚本字符串 (以后会深究它的细节),然后把这个 字符串当作⼀个命令执⾏。执⾏下⾯的命令: :execute write Vim会写⽂件,就像你已经输⼊了:writecr⼀样。现在执⾏下⾯的命令: :execute normal! gg Vim会执⾏:normal! gg,这个会将光标跳转到⽂件的顶部,跟之前⼀样。现在问 题来了, 们为什么要搞得这么蛋疼,又是execute,又是normal!,直接执 ⾏normal!不就可以搞定么? 看看下⾯的命令,猜猜它会⼲啥: :normal! gg/acr 这个命令似乎会做下⾯的⼀些事情: 将光标跳转到⽂件的顶部。 准备搜索。 把“a”当作⽬标字符串进⾏搜索。 按下return键执⾏搜索。 你⾃⼰执⾏⼀下,Vim会将光标跳转到了⽂件顶部,然后。。没有然后了 ! 之所以会这样是由于normal!的⼀个问题,这问题是normal!不能识别“特殊字符” , 例如这⾥的cr。这个问题有很多办法可以搞定,最简单的就是使⽤execute,另 外使⽤execute也会让脚本更易读。 当execute碰到任何你想让它执⾏的字符串的时候。它会先替换这个字符串中的所有 特殊字符。在这个⽰例中,\r是⼀个转义字符,它表⽰的是回车符 (carriage return )。两个反斜线也是⼀个转义字符,它会将⼀个反斜线当作⼀般字符放到字符 串中。 如果 们按照上⾯的分析替换这个映射中的特殊字符,然后就可以搞清楚这个映射会 怎么执⾏: :normal! ^==\+$cr:nohlsearchcrkvg_ ^^^^ ^^^^ || || 这⾥的cr实际上是⼀个回⻋符,⽽不是由4个字符——“左尖括号”,“c“,”r“和“右尖括 所以现在normal!会执⾏这些字符,如同 们是在常⽤模式下敲击了它们⼀样。 们 以回车符对这些字符进⾏拆分,然后看看它们

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档