Vim - 无法使用多个命令

时间:2014-03-04 20:49:08

标签: vi vim

我在Vim上有2个小插件。一个用于增加/减少Vim中字体的插件(适用于我在不同屏幕上工作时)。

一个插件可以在Vim中全屏显示(我在Gvim工作),所以没有窗口边框,任务栏等等。好的。当我放大或缩小字体时,我得到了奇怪的边框。我关闭全屏,然后将其切换回来,一切看起来都很好。

这是我切换缩放功能和全屏功能的键映射

noremap ' :ZoomIn<CR> 
noremap - :ZoomOut<CR> 

然后这是我切换全屏的映射。

map <A-1> :call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR> 

当我放大或缩小时,我需要关闭全屏并切换,以摆脱奇怪的边框。我认为在一个密钥中提供多个命令会很有用。所以我绘制了这个:

noremap ' :ZoomIn |:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0) |:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>

当我按下'键'时,我会收到有关尾随字符的警告。

我调查了:help:bar,似乎我需要使用,因为这会禁用尾随字符。所以我做了。

noremap ' :ZoomIn <bar>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0) <bar>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>

同样的消息,尾随字符。 好的,然后我尝试了另一种方式。

function ToggleZoom()
     :ZoomIn<CR> 
     :call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
     :call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
endfunction
noremap ' :ToggleZoom()<CR>

此解决方案也失败了,收到尾随字符的警告。即使我在这里找不到任何尾随的字符。有什么建议吗?我很感激!

1 个答案:

答案 0 :(得分:3)

最后一个

function ToggleZoom()
     :ZoomIn<CR> 
     :call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
     :call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>
endfunction
noremap ' :ToggleZoom()<CR>

您不需要函数内的:<CR>。要在映射中调用函数,您将使用call,因为ToggleZoom()是函数而不是命令。

function ToggleZoom()
     ZoomIn
     call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)
     call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)
endfunction
noremap ' :call ToggleZoom()<CR>

ZoomIn在命令之间不允许|的原因是该命令可能未使用-bar参数声明。看看:h command-bar