当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : vim中map一个函数时如何捕获快捷键之前输入的数字??
帖子发表于 : 2009-03-15 18:06 
头像

注册: 2008-04-25 23:45
帖子: 127
送出感谢: 0 次
接收感谢: 0 次
就像 7gg 这样的按键,可以跳转到第7行,如果我map一个函数,例如
map <c-t> :call afunction() <Cr>
按键x<c-t>时候,如何捕获这个数字x,并且作为函数的参数?
因我想实现类似重复操作的功能,并且是自定义重复次数的。
最近自己在写个插件时想到的问题。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: vim中map一个函数时如何捕获快捷键之前输入的数字??
帖子发表于 : 2009-03-15 18:30 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
这太没通用性了。
let w = expand("<cword>") " 在当前光标位置抓词
就知道这个。
其他,看vim的内部函数罗。


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 : Re: vim中map一个函数时如何捕获快捷键之前输入的数字??
帖子发表于 : 2009-03-15 19:01 
头像

注册: 2008-04-25 23:45
帖子: 127
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
这太没通用性了。
let w = expand("<cword>") " 在当前光标位置抓词
就知道这个。
其他,看vim的内部函数罗。


:em01

ee可能跟我想的不一样。
我指的是在normal模式下,按数字键然后再按我map了的快捷键调用一个函数的时候,取得这个数字键的值,然后作为函数的参数,方便函数做一些行为判断的,比如重复的次数。
还是gg为例,
gg是跳转到开始处,
1gg则是跳到第一行,ngg是跳到第n行这样
主要是取得那个n值


页首
 用户资料  
 
4 楼 
 文章标题 : Re: vim中map一个函数时如何捕获快捷键之前输入的数字??
帖子发表于 : 2009-03-15 19:03 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
%l %L 记得函数里面调用这个,就是当前行号/总行数。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: vim中map一个函数时如何捕获快捷键之前输入的数字??
帖子发表于 : 2009-03-15 19:23 
头像

注册: 2008-04-25 23:45
帖子: 127
送出感谢: 0 次
接收感谢: 0 次
我主要是想取得数字按键的值,比如我要调用一个函数在缓冲区自动加入文本行,这个函数map为<c-t>,
我希望能normal模式下按任意数字键 + <c-t> 就能打印这个数字对应的行数,所以想要取得这个数字键的值作为函数的参数。翻遍vim帮助文档的函数列表没发现有这个……呼……


页首
 用户资料  
 
6 楼 
 文章标题 : Re: vim中map一个函数时如何捕获快捷键之前输入的数字??
帖子发表于 : 2009-03-15 19:30 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
没去研究那些函数。你是不是只有0-9种可能呢?
可以试试<leader>0-9
lol


_________________
● 鸣学


页首
 用户资料  
 
7 楼 
 文章标题 : Re: vim中map一个函数时如何捕获快捷键之前输入的数字??
帖子发表于 : 2009-03-15 19:53 
头像

注册: 2008-04-25 23:45
帖子: 127
送出感谢: 0 次
接收感谢: 0 次
:em06
还是没能弄好……
但是发现了这段东西:
引用:
如果你在激活映射前输入计数,实际效果就像是该计数在 {lhs} (译者注: 疑为 {rhs})
之前输入一样。例如,对下面的映射: >
:map <F4> 3w
输入 2<F4> 会得到 "23w"。不是移动 2 * 3 个单词,而是 23 个单词。
如果你希望得到计数相乘的效果,可使用表达式寄存器: >
:map <F4> @='3w'<CR>
引号之间的部分是待执行的表达式。 |@=|


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译