有没有一种方法来评估一个文字字符串在VIm中引用的字符串?
问题描述:
也就是说,我想建立在包含转义序列飞带引号的字符串(更确切的,转义字符)有没有一种方法来评估一个文字字符串在VIm中引用的字符串?
这里是我的代码:
let s:char = "x"
let s:combo = "\\<C-" . s:char . ">"
现在s:combo
包含"\\<C-x>"
,我怎么能评估它到"\<C-x>"
与:normal
执行组合?
答
请参阅:h eval()
。例如:
let s:char = "x"
let s:combo = eval('"\<C-' . s:char . '>"')
请注意单引号内的双引号。
答
做你想做什么是使用“EXE”的最佳方式:
exe "normal \<c-x>"
+0
这正是我所做的,但我想评估“\\
答
如果你知道什么是你可以改用以下控制顺序:
let s:char='x'
let s:combo=nr2char(char2nr(toupper(s:char))-0x40)
。这将适用于每一个拉丁字母字符。
顺便说一句,在你的例子s:combo
包含\<C-x>
,而不是\\<C-x>
。问题是,:normal
预计控制字符,而不是\<C-x>
,\<C-x>
在双引号被翻译成它。
它的工作原理,谢谢!非常聪明。我试过eval(“\\”),但它不会。 –
2012-03-02 12:43:23