问个关于map的问题
vim吧
全部回复
仅看楼主
level 3
sd_lurz 楼主
想定义个map,例如:
imap while while<CR>do<CR><CR>done
发觉不起作用,后来发现不是不起作用,而是map的检测太快了,改为
imap w while<CR>do<CR><CR>done
一按完w
while
do
done
就马上出来了,如果用while的话,根本不够时间按完,有什么办法让map的反应慢一点?
2014年10月14日 16点10分 1
level 11
笨方法:设置 timeoutlen ttimeoutlen 的值
**timeoutlen** **tm**
*timeoutlen* *tm* 数值型 (缺省为 1000)
全局
{仅有部分 Vi 版本支持}
**ttimeoutlen** **ttm**
*ttimeoutlen* *ttm* 数值型 (缺省为 -1)
全局
{Vi 无此功能}
毫秒计的等待键码或者映射的键序列完成的时间。也用于 CTRL-\ CTRL-N 和
CTRL-\ CTRL-G 命令的一部分已经输入的场合。
通常只使用 *timeoutlen*,而 *ttimeoutlen* 设为 -1 就可以。如果希望为键
码使用不同的超时的值,设置 *ttimeoutlen* 为非负数。
ttimeoutlen 映射延迟 键码延迟 ~
< 0 *timeoutlen* *timeoutlen*
>= 0 *timeoutlen* *ttimeoutlen*
只有 *timeout* 和 *ttimeout* 选项要求时,超时才会发生。可用的设置 >
:set timeout timeoutlen=3000 ttimeoutlen=100
< (映射上的超时在三秒以后发生,键码上的超时在十分之一秒后发生)。
2014年10月14日 18点10分 2
level 11
聪明方法:
用 snipMate 或者 neosnippet.vim 插件实现插入代码片段……
2014年10月14日 18点10分 3
谢谢,解决了。不过想了解一下,笨办法笨在哪?聪明的方法聪明在哪?用插件有什么优势吗?
2014年10月15日 15点10分
level 12
必须上插件
2014年10月16日 01点10分 4
1