1 votos

Sustituciones de texto para el superíndice y el subíndice

Hay una manera de crear individualmente sustituciones de texto en Mac para la mayoría de las aplicaciones, yendo a Preferencias del SistemaTecladoTexto y luego creando sustituciones de texto. Por ejemplo, he hecho las siguientes para , , × y ²³. Text

Si quisiera, podría crear más y más atajos de este tipo, pero eso lleva mucho tiempo. ¿Existe alguna manera de utilizar Automator y/o Applescript y/o Terminal para hacer estas sustituciones para todos estos casos? Por ejemplo, si escribo _5002 Debería salir como

3voto

Rexxars Puntos 636

Aquí está un solución utilizando la línea de comandos:

  1. Conversión de números en super/subíndice

El sed le permite utilizar una tabla de traducción para convertir caracteres en otros:

$ echo "abc513" | sed -e 'y|0123456789|¹²³|'
abc¹³

$ echo "abc513" | sed -e 'y|0123456789||'
abc

A partir de ahí, podemos escribir un tsubst script:

$ cat ./tsubst
#!/bin/bash

function superscript { echo "$1" | sed -e 'y|0123456789|¹²³|'; }
function subscript   { echo "$1" | sed -e 'y|0123456789||'; }

function phrase_from_shortcut_pattern {
  if [[ "$1" =~ ^\^(.+)$ ]]
  then
    # ^ -> superscript
    echo "$(superscript "${BASH_REMATCH[1]}")"
  elif [[ "$1" =~ ^_(.+)$ ]]
  then
    # _ -> subscript
    echo "$(subscript "${BASH_REMATCH[1]}")"
  else
    echo "$1"
  fi
}

phrase_from_shortcut_pattern "${@}"

Ese script toma un argumento, un Reemplazo de Texto patrón de acceso directo con un ^ o _ para indicar una transformación de super o subíndice, y devuelve el correspondiente frase :

$ ./tsubst _answer42
answer

$ ./tsubst ^answer42
answer²
  1. Generar frases a partir de listas o rangos de patrones de atajos

Con ese script, podemos utilizar bash bucles y sustituciones para generar frases a partir de un lista de patrones de acceso directo:

$ for p in _42 ^42; do echo "${p} -> $(./tsubst "${p}")"; done
_42 -> 
^42 -> ²

O un gama de patrones de acceso directo:

$ for p in _{6..8} ^{9..11}; do echo "${p} -> $(./tsubst "${p}")"; done
_6 -> 
_7 -> 
_8 -> 
^9 -> 
^10 -> ¹
^11 -> ¹¹
  1. Añadir sustituciones de texto desde la línea de comandos

Esta es la parte complicada... He encontrado un utilidad de línea de comandos que hace bien su trabajo: accesos directos .

$ shortcuts read
0: "jrv" —> "J’arrive !"
1: "omw" —> "On my way!"

$ shortcuts create "xyz" "XYZ"

$ shortcuts read
0: "xyz" —> "XYZ"
1: "jrv" —> "J’arrive !"
2: "omw" —> "On my way!"

$ shortcuts delete xyz

$ shortcuts read
0: "jrv" —> "J’arrive !"
1: "omw" —> "On my way!"
  1. Añadir automáticamente entradas de reemplazo de texto...

Ahora podemos componer las dos utilidades para añadir a las preferencias de Reemplazos de Texto:

$ for p in _42 ^42 _{6..8} ^{9..11}; do
>   ./shortcuts create "${p}" "$(./tsubst "${p}")"
> done

$ ./shortcuts read
0: "^11" —> "¹¹"
1: "^10" —> "¹"
2: "^9" —> ""
3: "_8" —> ""
4: "_7" —> ""
5: "_6" —> ""
6: "^42" —> "²"
7: "_42" —> ""
8: "jrv" —> "J’arrive !"
9: "omw" —> "On my way!"

Y el resultado en las preferencias de Reemplazos de Texto:

enter image description here

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X