所以我不确定如何在我的映射中运行一些代码,例如:
nnoremap <Return> :execute "normal! if 1 echo('one') endif"<cr>
在没有&#39;正常情况下也尝试过。 - 尝试通过&#39; \&#39;分离命令的不同组合。和&#39; |&#39;但没有任何效果 - 继续变量未定义错误。
知道怎么做?
修改
所以,这就是我实际做的事情:
" Quickly toggle between insert/normal modes
nnoremap <A-e> i
inoremap <silent><A-e> <esc>:call GoRightIfNotBOL()<cr>
" Returns 1 if the cursor is at the beginning of a line "
function! IsBOL()
return col('.') == 1
endfu
function! GoRightIfNotBOL()
if !IsBOL()
execute "normal l"
endif
endfu
因此,我没有打电话给GoRightIfNotBOL
,而是认为我可以真正内联其代码,我无法想到我将使用此功能的另一个位置,而且它非常小。 / p>
答案 0 :(得分:1)
您正在寻找<expr> mapping
阅读:h <expr>
,您可以找到示例。
如果您的代码有点长,请将它们放在函数中,然后在映射中调用该函数。如果您以后想要对其进行一些更改,它会更具可读性。
inoremap <expr>
的示例:
inoremap <expr> <YourKeys> "<esc>".(col('.')>1?'l':'')