问题标签 [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.
c - 我如何与 Cygwin 相处融洽?
我有一个 C/C++ 程序,为 Windows 编写,并用 Visual Studio 编译。它是一个命令行工具,这意味着它可以合理地在 Cygwin Bash 下运行,可能在 MinTTY 中,并且它的一些用户现在正在这样做。
我想改变我的程序,让它与 Cygwin 一起玩得更好。
我的程序目前使用Windows 控制台 API来输出漂亮的彩色文本并管理光标,并且通常是“交互式的”(或 1980 年代“交互式”定义的“交互式”),至少当它的输出不是管道传输到文件。
为了让我的程序更好地与 Cygwin 配合使用,我可以让它发出 ANSI\x1B[...
转义码而不是调用控制台 API,但真正的问题是知道何时这样做。
我认为有四种情况:
作为交互式 Windows 控制台程序调用。-->(使用控制台 API。)
作为普通的 Windows 控制台程序调用,但用户在某处通过管道传输其输出。-->(根本不发出任何样式或交互式调用。)
由 Bash 或在 MinTTY 下作为交互式程序调用。-->(使用 ANSI 转义码。)
由 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 分发一个可执行文件,而不是两个。)
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(使用以前的版本)成功,没有粘贴的副作用。
c - Ncurses,如果我在 C 中调整终端窗口的大小,则为空屏幕
这是代码:
一切都很好,但是如果我调整 cygwin 的窗口大小,屏幕就会变空。我有薄荷味的cygwin。
bash - 在 mintty 中运行 .bat 文件
我提供了一个 .bat 文件,我需要执行一些脚本。我有适用于 Windows 的 Git bash mintty 控制台,并希望从那里运行它。从普通的 Windows 控制台它可以正常工作,但在薄荷糖中我得到:
我该怎么做呢 ?
tmux - Tmux 窗格当前命令
我最近开始使用 tmux 。到目前为止,一切都很好 。
在探索该选项时,我发现了一个选项
我登录到启用了 tmux 的终端,然后登录到出租车服务器,然后登录到我的应用程序服务器。我的期望是当我在我的应用服务器上寻找路径时,我希望窗格窗口显示该路径。
有人能帮我吗 ?如果有任何其他命令你也会很棒。
想让你知道——
我也尝试过修改 .bashrc 。它工作正常,如果我使用腻子,但不是在 tmux 上。
我在 Windows 机器上使用 tmux,即 mintty(不在 ubuntu、mac x 上)
python - 如何将我的 msys2 终端设置为不缓冲输出?
当我运行 msys2.exe 并启动 Python 程序时,终端不会打印任何内容,除非打印了足够的文本以使缓冲区自动刷新,或者如果我运行sys.stdout.flush()
.
为了解决这个问题,我必须使用msys2_shell.cmd -defterm
.
Defterm 在所有方面都可以正常工作,除了它真的很丑。所以,我希望有一种方法可以修复 mintty 终端,这样它就不会缓冲我的程序的输出。
mintty - 如何在 Git for Windows 中升级 MinTTY
我很欣赏这是题外话,但它确实“直接涉及编程或编程工具”,所以我认为这还可以......
我刚刚安装了一个新下载的 Windows 版 Git,并注意到在“选项”对话框中,标题栏显示“mintty 2.8.5 is available”。根据关于对话框,我目前的版本是 2.8.4。
我假设它告诉我有一个新版本,因为我可以自己升级它,但我找不到任何有关如何升级的信息。我已经从mintty.github.io下载了 zip 文件,但如果可以避免的话,我真的不想手动构建它。
有什么方法可以做到这一点,还是最简单的选择只是等待包含新版本 MinTTY 的 Git For Windows 更新版本?
bash - 如何从 LabView 执行 Cygwin 命令
通常,我手动执行一些 Cygwin 命令来运行Makefile
. 它只是 2 个命令的链:
我想通过运行一个labview
为我执行此操作的程序来自动化此任务,但我不知道该怎么做。
我检查了这个网站:http ://www.labvolution.com/executing-perl-scripts-labview/ 。
在那个教程中,这个人使用 System Terminal Exec 从 LabView 运行一个 cygwin 命令vi
,并使用这个命令执行一个程序。但是,就我而言,它不起作用,因为我只是没有看到任何事情发生。此外,就我而言,我需要两个连续的命令(cd
然后make
),而不仅仅是一个。
关于如何做到这一点的任何想法?
fonts - 有没有办法在 windows 10 bash 下使用 mintty 获得电力线效果?
我知道我可以在 bash 下安装 zsh,但由于各种原因,我坚持使用 mingw。