Windows 下有什么 Terminal 的粘贴复制体验比较接近 macOS 的么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
241.57D
593.51D
V2EX    Windows

Windows 下有什么 Terminal 的粘贴复制体验比较接近 macOS 的么?

  •  
  •   Livid
    PRO
    2017-09-17 17:20:23 +08:00 11454 次点击
    这是一个创建于 3024 天前的主题,其中的信息可能已经有所发展或是发生改变。
    46 条回复    2017-09-27 21:39:04 +08:00
    fcj558
        1
    fcj558  
       2017-09-17 17:23:18 +08:00 via iPad
    同求。
    myliyifei
        2
    myliyifei  
       2017-09-17 17:35:53 +08:00 via Android
    先说一下 macos 是什么体验 并没有觉得很好用
    vardarling
        3
    vardarling  
       2017-09-17 17:37:34 +08:00 via iPhone
    没有
    geelaw
        4
    geelaw  
       2017-09-17 17:39:14 +08:00 via iPhone
    什么是复制粘贴体验……我想不出来这有什么花儿来
    ipwx
        5
    ipwx  
       2017-09-17 17:41:49 +08:00   1
    @fcj558 @myliyifei @vardarling @geelaw mac 终端“选择”文本比较符合正常人类的习惯,和文本编辑器一样有 I 型光标,跨行选择的时候是整行选中而不是像 CMD 一样按列选中。如果本身没有换行只是因为窗口给加上了换行,CMD 复制出来也会有奇妙的多余换行,但是 mac 终端并不会。

    当然说实在的这些优点 Linux 也有。只是 Windows 的终端实在是太反人类了。
    hljjhb
        6
    hljjhb  
       2017-09-17 17:51:46 +08:00 via Android
    cmder 就很好用了
    Livid
        7
    Livid  
    MOD
    OP
    PRO
       2017-09-17 17:57:06 +08:00
    @ipwx 及鼠标右键的行为。

    其实最反人类的设定就是这个鼠标右键的行为。
    kokutou
        8
    kokutou  
       2017-09-17 18:08:03 +08:00   1
    cmd 选项里开启快速复制后,
    如果在选中文字上右击=复制
    没选中文字的时候右击=粘贴

    习惯了就还好。。
    Livid
        9
    Livid  
    MOD
    OP
    PRO
       2017-09-17 18:10:45 +08:00
    @kokutou 如果是要从 Terminal 中复制一个多行的文本(比如配置文件之类),选中多行之后,在另外一个 Terminal 窗口的 vi 中 paste,然后就会发现把那些没有必要的空格也复制过来了。
    also24
        10
    also24  
       2017-09-17 18:18:26 +08:00
    @Livid #9 刚才测试了一下,XShell 在复制跨行内容的时候没有这个问题
    EricCartman
        11
    EricCartman  
       2017-09-17 18:20:56 +08:00 via Android
    ConEMU
    Livid
        12
    Livid  
    MOD
    OP
    PRO
       2017-09-17 18:21:12 +08:00
    @also24 Xshell 是只能用来管理远程服务器,还是也可以当作本地系统的 Terminal 使用呢?
    geelaw
        13
    geelaw  
       2017-09-17 18:27:26 +08:00
    @ipwx
    @Livid

    不明白你们什么意思……怀疑你们在用 n 年前的 Windows ?复制输出的时候不会有任何问题。

    如果你要复制配置文件,你可以

    > Get-Content 这个文件 | Set-Clipboard

    geelaw
        14
    geelaw  
       2017-09-17 18:30:43 +08:00
    @kokutou
    @Livid

    如果你要选择,直接用鼠标拖动或者用 Shift+方向。选择之后按 Enter (如果是鼠标选定或者 Command Prompt,因为进入了选择模式)或者 Ctrl+C (如果是 PowerShell Shift+方向,因为这是 PSReadline 处理的)即可复制。不在选择模式下 Ctrl+V 或者 右键 粘贴。
    Felldeadbird
        15
    Felldeadbird  
       2017-09-17 18:41:34 +08:00 via iPhone
    shift+ inster 按键。可以快速粘贴
    tracyone
        16
    tracyone  
       2017-09-17 18:43:45 +08:00 via iPhone
    gvim 的内嵌终端
    Felldeadbird
        17
    Felldeadbird  
       2017-09-17 18:46:45 +08:00 via iPhone
    忘记说复制了,ctrl+inster 是复制。不过需要右键选择文本
    crab
        18
    crab  
       2017-09-17 18:47:30 +08:00
    XShell 可以和 cmd 一样的,只是前段时间 XShell 出问题啊。
    also24
        19
    also24  
       2017-09-17 18:49:33 +08:00
    @geelaw #14
    不常用 PowerShell,不太明白为啥我这边只能拖出矩形的选择窗口……



    然后复制出来的文本就带上换行了



    @Livid #12
    似乎不能完全替代,不过默认打开就是 本地 Shell,除了自带的部分命令,也可以正常使用 PATH 内的程序,看了下有人通过 ssh 的方式来连接 Cygwin 使用。
    Livid
        20
    Livid  
    MOD
    OP
    PRO
       2017-09-17 18:51:00 +08:00
    @geelaw 复现方法:

    1. 安装 Git for Windows 或者任何其他可以获得 ssh 的软件
    2. 在 Terminal 窗口中用 ssh 连接一台远程的 Linux 服务器,这是窗口 A
    3. 在窗口 A 中用 cat 或者 vi 显示一个某一行可能会换行的文件(比如 NGINX 的 SSL cipher 配置那一行,或者 Sentry DSN 之类的超长 URL ),选择这一行
    4. 在另外一个窗口中连上另外一台服务器,这是窗口 B
    5. 把窗口 A 中的那个换行了的内容粘贴到窗口 B 的 vi 里

    在粘贴时,你可能会首先看到一个报警,类似这样的:



    然后在复制的结果里,那个换行的内容就真的变成两行了。在它的前一行的末尾,会多出来空格。

    以上操作步骤在这个系统上复现,虽然不是 Insider Program,不过这个版本不能算是特别旧吧?

    also24
        21
    also24  
       2017-09-17 18:52:07 +08:00
    @geelaw #13
    额,我找到了,原来在 PowerShell 的设置里可以修改
    gclove
        22
    gclove  
       2017-09-17 18:52:23 +08:00
    cmder 加 +1

    cmder 是最好用的 windows bash ~~ 字体和配色特别舒服

    不过 Ctrl+C 肯定不是用来复制操作的
    MacOS 一般使用 CMD+C, Windows 应该也可以用 WMD+C
    一般用 Ctrl+Insert 复制就好了, 粘贴用 Shift+Insert,用 5 遍就习惯
    also24
        23
    also24  
       2017-09-17 19:00:07 +08:00   1
    @Livid #20
    试试在标题栏上右键,“属性” 中勾选 “启用对选定的内容自动换行” ,我勾选了这个选项以后复制出的内容是正常的了。(虽然仍然能选中无字符的区域)

    Livid
        24
    Livid  
    MOD
    OP
    PRO
       2017-09-17 19:00:55 +08:00
    @also24 谢谢。
    bbsteel
        25
    bbsteel  
       2017-09-17 19:01:20 +08:00 via Android   1
    cygwin 自带的那个 mintty 就不错啊
    geelaw
        26
    geelaw  
       2017-09-17 22:01:49 +08:00
    @Livid #20

    安装 Git for Windows 的时候你可能会获得 Git bash,那里面似乎有前面帖子说的“竖线式光标”,但是那个 console 特别难用,比如我还没有自动发现如何用键盘选定,一般我在 git rebase 的时候随机选 PS / Git bash。

    我想使用 Git bash 应该可以实现你需要的功能。

    此外,我刚刚建立了一个新的用户,在新用户刚刚设置完毕的时候,Command Prompt 具有非矩形选定功能,所以你一直在使用 PowerShell 吗?如果如此,推荐 https://github.com/GeeLaw/psguy.me/blob/master/scripts/WinConsole/WinConsole.ps1 用于配置 PowerShell (你需要使用 YaHei Consolas Hybrid 字体,否则需要修改脚本)。
    geelaw
        27
    geelaw  
       2017-09-17 22:03:00 +08:00   1
    @also24 抄送 #26
    also24
        28
    also24  
       2017-09-17 22:26:41 +08:00
    @geelaw #27 感谢,配置已经使用,之前一直未有详细体验过 PowerShell,后面会详细了解下
    dixeran
        29
    dixeran  
       2017-09-17 22:28:43 +08:00 via Android
    camder
    dixeran
        30
    dixeran  
       2017-09-17 22:29:00 +08:00 via Android
    @dixeran cmder
    Owenjia
        31
    Owenjia  
       2017-09-17 22:30:34 +08:00
    msys2 不知道你们试过没?
    icedx
        32
    icedx  
       2017-09-17 22:37:37 +08:00
    不知道 macOS 是什么体验
    但是强烈推荐 cmder
    goreliu
        33
    goreliu  
       2017-09-17 23:44:56 +08:00 via Android
    Win 10 的话可以用 wsl-terminal,https://goreliu.github.io/wsl-terminal/
    kaifeii
        34
    kaifeii  
       2017-09-18 03:01:17 +08:00
    macOS 的 体验应该是 pbcopy 吧,确实不错
    skydiver
        35
    skydiver  
       2017-09-18 03:28:32 +08:00 via Android
    git bash 就挺好用的啊,用的是 msys2 里面的 mintty
    RqPS6rhmP3Nyn3Tm
        36
    RqPS6rhmP3Nyn3Tm  
       2017-09-18 04:31:01 +08:00 via iPad
    Windows 下我认为最好的命令行体验是 cmder 配合 bash For windows
    ipwx
        37
    ipwx  
       2017-09-18 09:51:58 +08:00
    @kaifeii @geelaw 话说为啥说道终端复制黏贴你们都会提出来基于命令的复制方法…… 我当时第一反应根本就没有 Set-Clipboard 或者 pbcopy 的存在啊。然后还有 vim,我当时看到这个帖子的第一反应就是在 Windows 下面敲了长长长的命令想要复制出来的这种情况,或者是程序输出了一大堆东西想要复制出来的情况,完全没有 vim 这个概念的存在啊。

    果然是代沟嘛?

    P.S. 话说 CMD 我映像中如果是长长长的输出,一开始没有重定向到文件,但是突然想要复制的话,很烦的。因为选中最后一行然后鼠标开始向上越过窗口范围、触发自动滚屏,那个和文本编辑器比简直太糟心了。而且似乎 CMD 会截断输出?那个就更恶心了。
    kaifeii
        38
    kaifeii  
       2017-09-18 10:55:15 +08:00
    @ipwx 因为有了一条 bash 命令,就有了很多组合脚本 /功能的可能,可以方便日常生产工作的一些不得不做的流程,缺点是 ssh 后直接输出不到本机剪切区拿下来比较麻烦。能用 pbcopy 一般不用鼠标 /触摸板,试了都说好。
    goreliu
        39
    goreliu  
       2017-09-18 10:57:13 +08:00
    @goreliu 补充一下,之前用的手机,没法发图片。

    wsl-terminal 用的是 mintty,复制粘贴相关的功能是比较全面的。



    支持选择时复制、复制富文本。可以配置鼠标右键或者中键粘贴,也可以配置右键菜单粘贴。

    我之前在 V2EX 发过一个介绍 wsl-terminal 的帖子:

    https://neue.v2ex.com/t/300618#reply54
    goreliu
        40
    goreliu  
       2017-09-18 11:02:09 +08:00
    @goreliu

    链接发错了,那个链接是去年的……

    v2ex Windows 区第二个帖子是昨天新发的,现在贴不了链接了。
    ipwx
        41
    ipwx  
       2017-09-18 11:03:46 +08:00
    @kaifeii 说起来我的大部分场景,都不是重复的工作流程。
    geelaw
        42
    geelaw  
       2017-09-18 11:48:04 +08:00
    @ipwx 我之前提出 Set-Clipboard 是因为前文有人提到复制文件的内容。

    此外我个人也会用 New-Password | Set-Clipboard 来快速创造一个密码,然后粘贴到记录的位置和输入密码的位置。
    Loyalsoldier
        43
    Loyalsoldier  
       2017-09-18 12:54:56 +08:00
    cmder …… Windows 下最好用的命令行工具
    zthxxx
        44
    zthxxx  
       2017-09-18 13:43:08 +08:00
    Cmder 用过感觉已经是 Win 下体验最好的了

    http://cmder.net/
    tpircsboy
        45
    tpircsboy  
       2017-09-21 20:17:47 +08:00
    yantze
        46
    yantze  
       2017-09-27 21:39:04 +08:00 via Android
    clink 首选 http://mridgers.github.io/clink/

    在原生 cmd MOD

    - 添加 ctrl +v ctrl+l

    - 历史记录持久层

    - 其它一些兼容问题修复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5457 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 43ms UTC 01:44 PVG 09:44 LAX 17:44 JFK 20:44
    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