问题标签 [mintty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
332 浏览

c - 我如何与 Cygwin 相处融洽?

我有一个 C/C++ 程序,为 Windows 编写,并用 Visual Studio 编译。它是一个命令行工具,这意味着它可以合理地在 Cygwin Bash 下运行,可能在 MinTTY 中,并且它的一些用户现在正在这样做。

我想改变我的程序,让它与 Cygwin 一起玩得更好。

我的程序目前使用Windows 控制台 API来输出漂亮的彩色文本并管理光标,并且通常是“交互式的”(或 1980 年代“交互式”定义的“交互式”),至少当它的输出不是管道传输到文件。

为了让我的程序更好地与 Cygwin 配合使用,我可以让它发出 ANSI\x1B[...转义码而不是调用控制台 API,但真正的问题是知道何时这样做


我认为有四种情况:

  1. 作为交互式 Windows 控制台程序调用。-->(使用控制台 API。

  2. 作为普通的 Windows 控制台程序调用,但用户在某处通过管道传输其输出。-->(根本不发出任何样式或交互式调用。

  3. 由 Bash 或在 MinTTY 下作为交互式程序调用。-->(使用 ANSI 转义码。

  4. 由 Bash 调用,但用户将其输出传送到某处。-->(根本不发出任何样式或交互式调用。

我可以通过测试句柄是否GetConsoleMode()成功来区分案例1 ;stdout如果成功,我肯定有一个 Windows 控制台,当我打开代码以使用控制台 API 时就是这种情况。

我想以不同的方式对待案例 3 并使用 ANSI 代码,但不幸的是,案例 2、3 和 4 似乎几乎无法区分:

  • 对于所有三种情况,stdout句柄似乎只是一个不透明的对象。FILE_TYPE_PIPE
  • 我可以使用OSTYPE环境变量,至少猜测我在 Cygwin 下,它将案例 2 与案例 3 和 4 区分开来。
  • 如果我可以链接到cygwin1.dll,我可能会以某种方式使用它isatty(),但我不能链接到它,因为我的许多用户没有(也不会)安装 Cygwin。(而且我根本不相信这会奏效,即使它是可能的。)
  • MSVC 的本地人_isatty()认为 Cygwin Bash 是一个管道,而不是一个交互式外壳,因为它只是在底层使用GetFileType()

简而言之,我看不出将案例 3 与案例 4 分开的明显方法。

现在,我将案例 3 与案例 2 和案例 4 完全相同,Cygwin 用户(包括我自己)得到了糟糕的玻璃电传打字机交互,而不是友好的交互式全屏显示,我真的很想解决这个问题。


那么有什么方法可以将交互式Cygwin 调用与其他调用区分开来,以便我的本机 Windows 程序在被 Cygwin Bash 或其他类似的 shell 调用时表现得很好?

重要提示:一个解决方案不在讨论范围内:该程序不会被编译为原生 Cygwin 程序。这是一个 Windows 程序,它是使用 Microsoft 工具链编译的,不会使用 GCC 编译。目标是更改/更新它以使其在 Cygwin 下表现得尽可能好——而不实际链接到任何 Cygwin DLL。我只能合理地为 Windows 分发一个可执行文件,而不是两个。)

0 投票
1 回答
324 浏览

windows - 用于 Windows 的 Git 将剪贴板粘贴到

为 Windows 2.14.1 安装了 Git。在 Git Bash 终端中按下“Enter”按钮会粘贴剪贴板。所有选项都是默认的。我还尝试了许多不同配置的选项。但我不知道如何在按“Enter”时停止粘贴。

可能是 Windows 设置(Windows 7)?

我的 Windows 主目录是共享驱动器。这在过去引起了问题,但这似乎并不相关。

请注意,我在另一台没有显示相同问题的计算机上尝试过。这似乎指向配置或 Windows 环境问题。我已经清理了我能找到的所有配置(.git*、.mintty*、旧安装位置)并重新安装,但仍然遇到同样的问题。

重新安装Git for Windows 2.10.1(使用以前的版本)成功,没有粘贴的副作用。

0 投票
2 回答
940 浏览

c - Ncurses,如果我在 C 中调整终端窗口的大小,则为空屏幕

这是代码:

一切都很好,但是如果我调整 cygwin 的窗口大小,屏幕就会变空。我有薄荷味的cygwin。

0 投票
0 回答
668 浏览

windows - Git Bash/mintty - 如何启用水平滚动条或设置屏幕缓冲区大小或关闭文本换行?

有谁知道如何在 Git Bash/Mintty shell 中启用水平滚动条?或者至少有一种方法可以关闭文本换行或设置屏幕缓冲区大小(就像我们在 Windows 命令提示符中设置的那样)?

在此处输入图像描述

0 投票
2 回答
319 浏览

bash - 在 mintty 中运行 .bat 文件

我提供了一个 .bat 文件,我需要执行一些脚本。我有适用于 Windows 的 Git bash mintty 控制台,并希望从那里运行它。从普通的 Windows 控制台它可以正常工作,但在薄荷糖中我得到:

我该怎么做呢 ?

0 投票
0 回答
804 浏览

tmux - Tmux 窗格当前命令

我最近开始使用 tmux 。到目前为止,一切都很好 。

在探索该选项时,我发现了一个选项

我登录到启用了 tmux 的终端,然后登录到出租车服务器,然后登录到我的应用程序服务器。我的期望是当我在我的应用服务器上寻找路径时,我希望窗格窗口显示该路径。

有人能帮我吗 ?如果有任何其他命令你也会很棒。

想让你知道——

我也尝试过修改 .bashrc 。它工作正常,如果我使用腻子,但不是在 tmux 上。

我在 Windows 机器上使用 tmux,即 mintty(不在 ubuntu、mac x 上)

0 投票
0 回答
417 浏览

python - 如何将我的 msys2 终端设置为不缓冲输出?

当我运行 msys2.exe 并启动 Python 程序时,终端不会打印任何内容,除非打印了足够的文本以使缓冲区自动刷新,或者如果我运行sys.stdout.flush().

为了解决这个问题,我必须使用msys2_shell.cmd -defterm.

Defterm 在所有方面都可以正常工作,除了它真的很丑。所以,我希望有一种方法可以修复 mintty 终端,这样它就不会缓冲我的程序的输出。

0 投票
2 回答
7732 浏览

mintty - 如何在 Git for Windows 中升级 MinTTY

我很欣赏这是题外话,但它确实“直接涉及编程或编程工具”,所以我认为这还可以......

我刚刚安装了一个新下载的 Windows 版 Git,并注意到在“选项”对话框中,标题栏显示“mintty 2.8.5 is available”。根据关于对话框,我目前的版本是 2.8.4。

我假设它告诉我有一个新版本,因为我可以自己升级它,但我找不到任何有关如何升级的信息。我已经从mintty.github.io下载了 zip 文件,但如果可以避免的话,我真的不想手动构建它。

有什么方法可以做到这一点,还是最简单的选择只是等待包含新版本 MinTTY 的 Git For Windows 更新版本?

0 投票
1 回答
212 浏览

bash - 如何从 LabView 执行 Cygwin 命令

通常,我手动执行一些 Cygwin 命令来运行Makefile. 它只是 2 个命令的链:

我想通过运行一个labview为我执行此操作的程序来自动化此任务,但我不知道该怎么做。

我检查了这个网站:http ://www.labvolution.com/executing-perl-scripts-labview/ 。

在那个教程中,这个人使用 System Terminal Exec 从 LabView 运行一个 cygwin 命令vi,并使用这个命令执行一个程序。但是,就我而言,它不起作用,因为我只是没有看到任何事情发生。此外,就我而言,我需要两个连续的命令(cd然后make),而不仅仅是一个。

关于如何做到这一点的任何想法?

0 投票
0 回答
613 浏览

fonts - 有没有办法在 windows 10 bash 下使用 mintty 获得电力线效果?

我知道我可以在 bash 下安装 zsh,但由于各种原因,我坚持使用 mingw。