惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
雷峰网
雷峰网
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
量子位
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
博客园 - Franky
M
MIT News - Artificial intelligence
U
Unit 42
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
J
Java Code Geeks
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MyScale Blog
MyScale Blog
T
Tailwind CSS Blog
T
The Blog of Author Tim Ferriss
V
V2EX

风雪之隅

Yac 2.4.0发布 - 小值读取性能提升64% 用Yac给WordPress做缓存:比Memcached快19% Laruence Laruence Laruence Laruence Laruence 深入理解PHP7内核之OBJECT - 风雪之隅 PHP 8新特性之Attributes(注解) - 风雪之隅 博客迁移到腾讯云 - 风雪之隅 在Qcon 2015 北京上的演讲PPT - PHP7 Yar-2.1 新功能介绍 - 风雪之隅 Yaf and Phalcon, which is faster? HTTPOXY漏洞说明 - 风雪之隅 一个关于Zend O+的小分享 - 风雪之隅 在PHP中使用协程实现多任务调度 - 风雪之隅 Curl的毫秒超时的一个"Bug" - 风雪之隅 PHP8.0的Named Parameter - 风雪之隅 关于PHP,关于Realsee - 风雪之隅 PHP8新特性之match表达式 - 风雪之隅 PHP 8新特性之JIT简介 - 风雪之隅 使用SSE2指令高效实现strtolower - 风雪之隅 Yaf 3.2 发布 - 风雪之隅 使用PHP Socket开发Yar TCP服务 - 风雪之隅 Yac 2.1 升级说明 - 风雪之隅 Yaf-3.1 10%性能提升版 - 风雪之隅 Yaconf-1.1 40%速度提升版 - 风雪之隅 PHP FFI详解 - 一种全新的PHP扩展方式 - 风雪之隅 使用SSE2指令集加速字符替换 - 风雪之隅 Yaf_Loader重构测试 - 风雪之隅
使用OSC52实现iTerm2远程pbcopy - 风雪之隅
laruence · 2020-05-21 · via 风雪之隅

最高效的码字方式,一定有一个特点,那就是手指离开键盘的次数尽可能的少。 并且手指码字的时候的在键盘的跨度尽可能的短, 这也是我认识不少老牌程序员用Vim也不用ESC, 而是使用ctrl+[, 甚至还有这:

从而避免手指在键盘上的跨越幅度太大。

我一直用MacBook做工作用机,也一直用iTerm2来登陆远程服务器开发,因为PHP是一个比较巨大的工程,编译速度很慢,自己的笔记本再高配,也是做不到make -j不卡死的。

言归正传, 在mac上有一个很有用的命令pbcopy, 它能让我们避免去使用鼠标选择文本,复制到剪贴板。从而让我们的双手可以一直在键盘上,但很可惜的是,pbcopy只能在本机使用,而我大量的时间都是使用远程机。

最近发现了一个很有趣的OSC 52,也就是ANSI escape code中的 ESC ] (Operating System Command), 中的52, 它提供了访问访问本地剪贴板的能力。

它的形式为:

echo -e "\e]52;c;$(base64 <<< php)\a"

也就是,以\e]52;c;开头,然后是base64 encode后的内容,以\a结尾, 如果terminal支持,那么上面例子中的文字“php”就会进入到你的剪贴板了,你就可以使用command + V粘贴了。

对于我常用的iTerm2来说, 只要打开这个选项即可:

有了这个,那么我们就可以很容写出一个支持远程服务器的pbcopy了, 以PHP为例(
你也可以直接下载:OSC52.php):

#!/bin/env php
<?php
$data = trim(file_get_contents("php://stdin"));
echo "\033]52;c;", base64_encode($data), "\007";

然后给这个文件增加执行权限, 重命名成pbcopy,试试:

echo "osc52 codes" | ./pbcopy

然后command+v粘贴下试试?

这下就香很多了,避免了需要用鼠标来选择复制一些text。 让手可以一直在键盘上,极大提升生产力!
然而,我现在开始用iPad办公了, 目前为止还没有发现iPad下的terminal App有支持OSC 52的。 大家要是发现哪个App支持,一定留言告诉我哈。 :)