Formatea JSON del portapapeles con jq y un alias
Using jq to format JSON on the clipboard
Un desarrollador comparte un alias para formatear JSON copiado en el portapapeles usando jq, con versiones para macOS (pbpaste/pbcopy) y Linux (xclip). Incluye una mejora clave: si el contenido no es JSON, el alias lo deja intacto en lugar de sobrescribirlo con una cadena vacía, gracias a un manejo de errores con jq y xclip.
Si ejecuto esto y el texto en mi portapapeles no es JSON, jq saldrá con un código de salida distinto de cero, generará algo como 'parse error: Invalid numeric literal at line 1, column 6' en stderr y nada en stdout. La tubería no se preocupa por el código de salida distinto de cero, así que sobrescribimos lo que había en el portapapeles con una cadena vacía.
- 1-more
Hago mucho de esto y `pbpaste | sed s/^ // | pbcopy` y cosas así. Simplemente se adapta mejor a mi forma de pensar. Lo bueno de raycast como gestor del portapapeles de macOS es que lo que sea que hayas seleccionado por última vez con Cmd-Shift-V es la salida de `pbpaste`. No estoy 100% seguro de cómo afecta eso a copiar imágenes.
- _flux
Utilizo un enfoque similar para arreglar el contenido del portapapeles con
tr '\n' ' ' | sed 's/\t/ /g; s/ */ /g'
Pero también cambié a xsel en un momento, ya que xclip no parece manejar tan bien el unicode. Aunque podría ser que xclip se haya arreglado desde entonces.
- bilkow
¡Me encantó! Hice esta versión para `fish` y `wl-clipboard`:
function clipboard-format-json
# Inspirado por https://chris48s.github.io/blogmarks/posts/2021/jsontidy/
if set -l formatted "$(wl-paste | jq '.')"
wl-copy $formatted
end
end
Al guardarlo en .config/fish/functions/clipboard-format-json.fish, debería funcionar de inmediato