【问题标题】:Terminal for C++ in UbuntuUbuntu 中的 C++ 终端
【发布时间】:2021-03-01 16:46:59
【问题描述】:

我使用 gVim 作为我的文本编辑器,我用它来编写 C++ 并执行我的 C++ 文件我的 .vimrc 中有这个映射:

map <F9> :<C-U>!x-terminal-emulator -e ./%:r<CR>

但是当我运行它时,终端在我输入输入后立即关闭并且我看不到输出,有没有办法让它像这样工作:

显示输出然后让我知道我可以按回车然后退出终端,这是我在 Geany 中执行代码时的终端。

【问题讨论】:

  • 您可以在 shell 命令的末尾添加 read _read -p "press any key " _ 或类似命令。否则,请检查您正在使用的终端的文档(例如,xterm 有一个 -hold 选项可以满足您的需求,GNOME 终端有 this 等)

标签: c++ ubuntu vim terminal geany


【解决方案1】:

IMO 最适合使用集成终端:

:term ./%<

如果你真的想使用一个不支持 -hold 之类的选项的终端,xterm 有,你总是可以在你的 $PATH 中添加一个小帮助脚本,并从你的映射中使用它。

nnoremap <silent> <f9> :<c-u>!x-terminal-emulator -e start.sh ./%<<cr>
#!/bin/bash
# start.sh, to be dropped in $PATH
"$@"
echo "(program exited with code: $?)"
read -p "press return to exit"

【讨论】:

    【解决方案2】:

    只需在程序末尾添加cin 调用即可。这是在任何平台上处理此类问题的最简单方法。另一种方法是检查环境的文档并进行一些配置。据我所知,在Geany中通过F5运行程序需要在关闭前按Enter

    【讨论】:

    • 我不同意cin 的做法。一旦控制台程序按设计执行,即从控制台执行,它总是会被额外的不受欢迎的暂停所寄生。问题出在开发环境方面,这是应该修复的地方。正如 OP 和你所说的那样,geany 已经正确地做到了这一点,就像 (g)vim 中的 :!./%&lt;:term ./%&lt; 一样。当使用在关闭前不等待的终端时会出现问题。
    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 2019-06-03
    • 2017-03-20
    • 2019-06-11
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多