You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Vim/Neovim中运行C程序无法接收用户输入该如何解决?

解决方案

问题原因

你当前使用的:!调用方式默认不为运行的程序分配完整交互终端,对于需要读取用户输入的程序会出现无响应、无法接收输入的问题,该现象在Neovim中尤为常见。

通用修复方案(适配Vim 8+、Neovim所有版本)

直接使用Vim/Neovim内置终端运行程序,原生支持完整交互能力,替换你配置中的F12映射即可:

nnoremap <F12> :w<CR>:terminal ./%<<CR>

额外说明

  • 按下F12后会自动打开终端缓冲区,你可以直接输入内容,按回车即可看到程序回显,按下Ctrl+D(Linux/macOS/WSL)或Ctrl+Z(Windows)即可发送EOF结束程序
  • 要在终端缓冲区输入内容,按i进入输入模式即可正常输入;要回到Vim普通模式操作缓冲区,按Ctrl+\ Ctrl+N即可
  • 如果你坚持使用:!方式运行,需要注意标准输入默认是行缓冲,输入内容后要先按回车才会将内容传给程序,结束输入同样按上述EOF快捷键即可

内容的提问来源于stack exchange,提问作者airismything

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:00:02