V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  Windows

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

  •  
  •   Livid · 2017-09-17 17:20:23 +08:00 · 10783 次点击
    这是一个创建于 2625 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
       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
       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
       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
       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
       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   ·   实用小工具   ·   6022 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:08 · PVG 10:08 · LAX 18:08 · JFK 21:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.