必须来吹一波自己移植的 Windows WSL 终端了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zealot0630
V2EX    程序员

必须来吹一波自己移植的 Windows WSL 终端了

  zealot0630 2018-12-05 17:16:47 +08:00 8469 次点击
这是一个创建于 2557 天前的主题,其中的信息可能已经有所发展或是发生改变。

看到隔壁在讨论 Windows 终端,吹一下自己移植的 Term:

https://github.com/kghost/qterminal

Linux 下 QTerminal 的移植,对 XTerm 支持比所有 windows 下终端都完善。

原生 Win32 程序,QT 实现,性能秒杀一群 js 实现( Hyper 之流,越用越卡,放置两天就没法用了)

完全跳过 CMD.ext/Console.exe ,用 qtermwidget 解析 XTerm 序列,对 linux 的 term 特性支持秒杀 ConEmu

25 条回复    2019-05-13 13:08:31 +08:00
beginor
    1
beginor  
   2018-12-05 18:47:21 +08:00 via Android
能配置成 vscode 的集成终端么?
atx
    2
atx  
   2018-12-05 19:01:35 +08:00
要安装 WSL? 还以为是个独立的软件
ShineSmile
    3
ShineSmile  
   2018-12-05 19:04:11 +08:00 via Android
可以用 gitbash 吗
wsl 不想装
Cooky
    4
Cooky  
   2018-12-05 19:07:54 +08:00 via Android
别吹了,Console.exe 这玩意根本不可能跳过
winglight2016
    5
winglight2016  
   2018-12-05 19:11:04 +08:00
给 lz 头像点赞
zealot0630
    6
zealot0630  
OP
   2018-12-05 21:06:18 +08:00
@Cooky 别把无知当牛逼,WSL 里面创建 pty,master 端走 tcp。通俗讲,就是类似 ssh 的实现。
huaxianyan
    7
huaxianyan  
   2018-12-05 22:11:11 +08:00
为什么打开之后窗口最小,调整大小很容易未响应
Cooky
    8
Cooky  
   2018-12-05 23:44:53 +08:00
@zealot0630 吹了半天就是个 putty,windows 原生终端你做个试试,你能绕过 Console.exe 才是牛逼,无知的小鬼
aheadlead
    9
aheadlead  
   2018-12-06 00:02:40 +08:00   1
@Cooky #8
https://i.loli.net/2018/12/06/5c07f66e47ce9.jpg
不知道这也为啥可以打嘴炮……

绕过 Console.exe 能带来什么价值?
Cooky
    10
Cooky  
   2018-12-06 00:05:17 +08:00
@aheadlead 你问我我问谁,我说句实话就招怼?
BOYPT
    11
BOYPT  
   2018-12-06 01:06:05 +08:00
qt 库看起来有点重量级
试试 wsltty,基于 mintty 和 wslbridge 的集成,实现原理和楼主的应该一样的。整体安装包 2M。
congeec
    12
congeec  
   2018-12-06 01:16:22 +08:00
@Cooky 能做个类似 putty 的对我来说就够了
FrankHB
    13
FrankHB  
   2018-12-06 01:33:53 +08:00
不走 con 跟 ConEmu 就没什么可比性了。Win32 下可没什么 pty,不走 con 要么就 mintty 之类自己模拟一个,特供 WSL 的这里自然弃疗咯。对同时要开 cmd 窗口又嫌多的有些鸡肋,而且现在还没实现多实例么……( ConEmu 管你是不是终端直接到处 attach 了。)
geelaw
    14
geelaw  
   2018-12-06 04:26:18 +08:00 via iPhone
Console.exe 是啥…你是想说 conhost.exe ?

不用 conhost 可以自己模拟一个吧,似乎 PowerShell ISE 就是那样的?
Cooky
    16
Cooky  
   2018-12-06 07:44:22 +08:00 via Android
@congeec conhost 总算有个稳定的 API 了?
hanxiV2EX
    17
hanxiV2EX  
   2018-12-06 07:59:23 +08:00 via Android
赞一个,多一个选择了
jsfaint
    18
jsfaint  
   2018-12-06 09:41:46 +08:00   2
@geelaw #11 这货感觉就是杠精附体,你看他发帖子没有一个好好说话的
jsfaint
    19
jsfaint  
   2018-12-06 09:42:59 +08:00
@hanxiV2EX #13 那个 pr 你咋关了,我早上抽出空刚准备看,发现 close 了
zealot0630
    20
zealot0630  
OP
   2018-12-06 10:09:28 +08:00
@congeec conpty 这玩意就是垃圾,这东西 xterm 序列还是用 conhost 翻译,然后把翻译完的再转换回成 xterm seq 发给你,前几天我还因为这个去喷了微软那个开发者。
zealot0630
    21
zealot0630  
OP
&nbs;  2018-12-06 10:11:10 +08:00   2
@aheadlead 很多 xterm 特性 conhost 不支持,只能绕过这东西去搞
zealot0630
    22
zealot0630  
OP
   2018-12-06 10:17:24 +08:00
@congeec conpty 补充一下,这东西设计出来为了强行支持多后端,WSL,Win32 Console API 都想支持,所有后端先由它翻译成中间通用内部结构,然后这个内部结构再翻译成 XTerm Seq 发给前段。

用了这玩意,它首先把它不支持的 xterm 特性过滤掉了,然后又强行在两次翻译时候引入一陀又一陀 bug,简直渣到不能更渣。
ShineSmile
    23
ShineSmile  
   2018-12-06 17:32:46 +08:00
仰望楼上大佬们

希望能给科普一下
多甩两篇文档也是好的
hanxiV2EX
    24
hanxiV2EX  
   2018-12-06 18:35:21 +08:00 via Android
@jsfaint 歪楼了,我看了 leaderf 也只支持搜索最近的目录,我就觉得搜索最远的目录应该只是我个人的需求而已。如果都支持从外面传 root 目录的话就可以由用户决定了。
enoz
    25
enoz  
   2019-05-13 13:08:31 +08:00 via Android
仰望楼上大佬们

希望能给科普一下
多甩两篇文档也是好的
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2799 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 29ms UTC 02:30 PVG 10:30 LAX 18:30 JFK 21:30
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86