将字符串转换为vimscript中的keycode

时间:2013-04-15 01:17:35

标签: vim

是否有某种方法可以将字符串<C-a>转换为\<C-a>在Vimscript中动态显示的密钥代码?我想让<C-a>成为用户可以为绑定指定的选项,但是在运行时通过检查getchar()的结果来检测\<C-a>。这可能吗?

1 个答案:

答案 0 :(得分:2)

我不明白,getchar()有什么问题?如果你需要字符串,你通常会写一些像

let char=getchar()
if type(char)==type(0)
    let char=nr2char(char)
endif

并照常比较:

if char is# "\<C-a>"
    …
endif

。如果您需要比较的右侧是一些用户定义的变量,这不是问题,只需告诉用户使用let g:var="\<C-a>"代替let g:var="<C-a>"。虽然使用后者也是可能的:以下技巧会将"<C-a>"转换为"\<C-a>"

let string=eval('"'.escape(string, '\"<').'"')