Siempre he pensado que sería inmensamente útil tener incluso 5 espacios en lugar de solo uno. ¿Es posible implementar múltiples portapapeles en el nivel del sistema operativo?

Sí. Fácilmente. No hay problema técnico que lo detenga, solo restricciones de la interfaz de usuario.

Pero incluso los problemas de la interfaz de usuario tienen solución; El verdadero problema es que hay legiones de usuarios no técnicos capacitados para copiar / pegar con el sistema actual que tendrían que ser capacitados para usar más de uno. Los diseñadores detrás de Windows y OS X, al menos, no creen que valga la pena.

Y para las personas no técnicas, la mayoría de sus clientes, podrían tener razón. No lo han intentado, por supuesto, por lo que realmente no lo sabemos, pero definitivamente es un riesgo. Un riesgo que no vale la pena correr: ¿por qué arriesgarse a confundir a sus clientes por la conveniencia limitada de copiar y pegar mejor? Estos productos prosperan gracias al atractivo masivo, y el atractivo masivo significa tomar el camino del medio y ser consistentemente conservador en sus cambios. ¡Solo mira la reacción a Windows 8!

Pero para los usuarios técnicos? Indudablemente útil. Especialmente para los programadores, que pasan mucho tiempo reorganizando el texto. Entonces, ¿por qué no existe? En realidad, lo hace! Linux puede admitir fácilmente una lógica de portapapeles más complicada, y algunos programas (especialmente Emacs) tienen su propia noción más rica de copiar / pegar internamente.

KDE tiene un programa llamado Klipper que administra su portapapeles de manera más inteligente. Entre otras cosas, mantiene un historial de las cosas recientes que ha copiado para facilitar el acceso:

Captura de pantalla de una introducción al portapapeles de KDE: utilice el portapapeles de KDE 4.5

Si bien uso KDE, no me encuentro usando las funciones más avanzadas de Klipper con demasiada frecuencia. La mayoría de las veces, quiero hacer cosas difíciles con el portapapeles cuando estoy programando, lo que significa que estoy en Emacs, lo que significa que puedo usar el “anillo de la muerte” de Emacs.

La idea es simple: cada vez que copia texto, lo agrega al “anillo de la muerte”. Cuando pegas, obtienes lo último que copiaste; sin embargo, puede presionar una tecla adicional para obtener lo siguiente en el anillo de eliminación: el penúltimo fragmento que copió. Y así sucesivamente, todo el camino a través de todo lo que ha copiado en toda la sesión.

No puede sobrescribir accidentalmente su portapapeles, un gran alivio. Es tan conveniente que desea copiar más. Que es exactamente lo que Emacs permite: cualquier comando que elimine una cantidad significativa de texto (más de un carácter a la vez) actúa automáticamente como un “corte” y agrega el texto eliminado al anillo de eliminación. Esto hace que editar texto y mover regiones sea mucho más conveniente, perfecto para editar programas y refactorizar.

Con un paquete externo, puede explorar todo en el anillo de eliminación, al igual que el menú de Klipper:

El último paquete beta de KDE 5 no funciona bien con Emacs :(.

Entonces: no hay ninguna razón por la cual un sistema no pueda implementar esto, y los sistemas orientados a los programadores han implementado una funcionalidad similar. Pero probablemente no valga la confusión potencial para sistemas como Windows y OS X destinados al mercado masivo.

¿Cómo diablos uno los usaría prácticamente? [puede hacer un servidor X en Linux para hacer eso, pero ¿cómo debería uno hacerlo y hacerlo práctico? No es posible, de verdad]