gpt4 book ai didi

vim - 如何在不打印 else 子句的情况下有条件地映射 vim 中的序列以运行外部程序

转载 作者:行者123 更新时间:2023-12-04 21:03:58 24 4
gpt4 key购买 nike

我如何在 vim 中有条件地映射一个序列以运行两个外部程序中的任何一个,从而清除屏幕以显示 else 子句?

例如:

:nmap <c-l> :if filereadable('Makefile')<CR>!make<CR>else<CR>!ls<CR>endif<CR>

ctrl+m 执行 make 但随后清除屏幕并在屏幕底部打印以下内容:

:  else
: !ls
: endif
Press ENTER or type command to continue

最佳答案

您可以使用表达式映射 ( :help map-expr )

:nnoremap <expr> <c-m> filereadable('Makefile') ? ':make<CR>' : ':!ls<CR>'

注意事项:

  • You should use :noremap ;它使映射不受重新映射和递归的影响。
  • <C-m><CR>相同;目前无法区分两者;最好使用不同的键。参见 this answer了解更多信息。

关于vim - 如何在不打印 else 子句的情况下有条件地映射 vim 中的序列以运行外部程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15781615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com