如何在Vim内置终端中一次性执行多条命令?
解决Vim内置终端执行编译运行命令时的
&&报错问题 你遇到的错误是因为Vim的terminal命令会把后面的整个字符串当作单个程序的参数列表,而不是交给shell去解析&&这种shell逻辑运算符。所以gcc会把&&当成一个要编译的输入文件,自然提示找不到它。
正确的写法有两种:
直接让shell解析命令串
用sh -c(或bash -c,取决于你的默认shell)把编译运行的命令包起来,让shell处理&&的逻辑:command GccAndRun terminal sh -c "gcc main.c && ./a.out"如果想编译当前打开的文件(而非固定的
main.c),可以用Vim的%指代当前缓冲区文件:command GccAndRun terminal sh -c "gcc % && ./a.out"用
term_start()函数(更灵活)
若需要对终端窗口做更多控制(比如调整布局、设置隐藏属性),可以用Vim内置的term_start()函数:command GccAndRun call term_start('sh -c "gcc main.c && ./a.out"', {'hidden': 0}){'hidden': 0}参数会让终端直接显示出来,无需额外操作。
内容的提问来源于stack exchange,提问作者wangloo
相关产品推荐
相关产品推荐

