【发布时间】:2012-12-01 05:47:23
【问题描述】:
所以我有以下小测试用例
vnoremap <silent> d :<C-u>call Test()<cr>
vnoremap <silent> e :<C-u>call Test2()<cr>
fun! AskUser()
let v = input('is this really ok with you? (y/n) ')
redraw
return v
endfun
fun! Test() range
call AskUser()
if 1
echo 'hi hi hi'
echo 'hi hi hi'
endif
endfun
fun! Test2() range
call AskUser()
echo 'hi hi hi'
echo 'hi hi hi'
endfun
那么任何人都可以解释为什么视觉模式 d 键绑定无法显示任何消息,而 e键绑定没有问题
请注意,问题根本与键绑定无关,而是与以下事实有关 调用输入函数后有if语句
我已经在 MacVim 和 linux 上的终端 vim 上测试了它,在从 mercurial 源代码编译的最新 vim 版本上,都遇到了这个问题
更新:有些人不明白问题出在哪里。好详细解释 当您在可视模式下按 d 时,您会收到输入提示,当您回答它时,您不会在命令行中看到任何消息,而当您按 e 并回答提示时,您会看到消息 hi hi hi 连续两次并“按 ENTER”或键入命令继续'消息
【问题讨论】:
-
echo消息在 Linux 中都以VIM - Vi IMproved 7.3打印。 -
有些人说你可以,如果它对你有用,你可以通过运行 vim -N -u none 来重现问题
-
两者都使用 GVIM 7.3.000 为我打印
hi hi hi;请注明完整版本(包括补丁号)而不是最新;补丁几乎每天都会发布。 -
VIM - Vi IMproved 7.3(2010 年 8 月 15 日,2012 年 9 月 26 日 17:32:05 编译)包含的补丁:1-672
-
还有这个 MacVim VIM - Vi IMproved 7.3(2010 年 8 月 15 日,2012 年 1 月 2 日 17:38:47 编译)MacOS X (unix) 版本包含的补丁:1-390
标签: vim