wordpress idown主题,快照关键词优化,广州建设局网站首页,网站后缀org在macOS上#xff0c;将命令的输出结果复制到剪贴板
在日常的工作中, 经常使用命令的小伙伴可能会遇到一个场景, 就是把命令执行的结果复制出来另作它用.
每次都需要通过鼠标进行选择然后复制, 虽然 macOS 的命令行的复制快捷键和普通的复制是一样的, 非常友好, 但是还要选择…在macOS上将命令的输出结果复制到剪贴板
在日常的工作中, 经常使用命令的小伙伴可能会遇到一个场景, 就是把命令执行的结果复制出来另作它用.
每次都需要通过鼠标进行选择然后复制, 虽然 macOS 的命令行的复制快捷键和普通的复制是一样的, 非常友好, 但是还要选择, 还是有些复杂.
当然, 也可以使用 tmux, 然后使用类似 vi 的方式进行选择和复制, 但是操作还是非常多的. 虽然操作多, 但是是可以抛弃鼠标, 也是一个不错的选择.
如果有一种方式只在输入命令的时候假如几个字母就可以做到就更好了.
在 tmux 中对命令窗口的内容进行复制
旧版本的配置:
# use vi mode
set-window-option -g mode-keys vi
list-keys -t vi-copy
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-selection新版本的配置:
# use vi mode
set-window-option -g mode-keys vi
list-keys -T copy-mode-vi
bind-key -T copy-mode-vi v send -X begin-selection
bind-key -T copy-mode-vi y send -X copy-selection-and-cancel进入 copy-mode-vi在 tmux 中使用默认的快捷键 Ctrl-b [ 或 Ctrl-b PageUp 来进入 copy-mode-vi。使用 vi 风格的按键操作选择文本。通常情况下您可以使用 v 键来启动选择模式然后使用移动键如 h、j、k、l来选择文本。确保您正确选择了文本。选中的文本将会显示为反白。如果选择不正确您可以继续使用 vi 风格的按键进行调整。一旦您选择了所需的文本按下 y 键这将触发 bind-key -T copy-mode-vi y send -X copy-selection-and-cancel 命令。
对于第 3 点要特别说明一下, 不一定按下 y 键, 就可以复制. 和系统里面 vi 设置有关. 例如在 vi 中禁止了 cmd c 复制, 使用 \y 复制到剪贴板, 那么在这里就要使用 \y.
总结:
优点: 这种方式的好处是可能复制命令行里面的任何内容, 而且可以结合 vi 操作, 可以得到自己想要的部分.Linux, macOS 都可以用 缺点: 操作略微多了一些
如果有一个方式可以类似管道一样的操作那点方便很多. 其实 macOS 已经再带了这种命令.
macOS 使用pbcopy命令
macOS自带了 pbcopy 和 pbpaste 命令用于与剪贴板进行交互。要将命令的输出复制到剪贴板可以使用管道 | 将命令的输出传递给 pbcopy。例如
your-command | pbcopy这将把命令的输出复制到剪贴板您可以随后使用粘贴操作通常是Command V将其粘贴到其他地方。
使用echo和重定向
echo Hello, World | pbcopy这将 “Hello, World” 复制到剪贴板。
使用Shell函数
您可以将以下Shell函数添加到您的.bashrc或.zshrc文件中以便更方便地将命令的输出复制到剪贴板
# Function to copy command output to clipboard
copy_to_clipboard() {$ | pbcopyecho Command output copied to clipboard.
}然后您可以使用 copy_to_clipboard 函数来执行命令并将其输出复制到剪贴板。例如
copy_to_clipboard your-command这会将 your-command 的输出复制到剪贴板。
这些方法可在macOS上方便地将命令的输出复制到剪贴板以便稍后粘贴到其他应用程序中。
这个方式可以用, 但是不可以使用 alias 的命令, 例如 zsh 下常用的 l (lls -lah)
改进
修改一个简单的名字, 便于输入结果照样输出支持使用了 alias 的命令
copy() {if [[ -n $1 ]]; thenif alias $1 /dev/null; thenc$(alias $1)c${c#*}c${c#*\}c${c%*\}c${c#*\}c${c%*\}nc$c for arg in ${:2}; donc${nc}${arg} donenc${nc% }eval $nc | pbcopyelse$ | pbcopyfipbpasteecho echo Command output copied to clipboard.elseecho Usage: copyto commandfi
}