
tengo un problema conclave automática: No puedo copiar y pegar un carácter Unicode especial. Aquí hay un ejemplo:
Soy francés y en la escritura francesa se utiliza un espacio antes del punto y coma. Pero en tipografía formal, no se utiliza un espacio normal antes del punto y coma, sino un "espacio estrecho sin separación", que es el carácter Unicode U+202F.
Entonces, cuando escribo cosas formales en francés, en lugar de perder siempre el tiempo escribiendo CTRL+ Shift+ U+ 202F
+ ENTER+ ;+ space', me gustaría usar una nueva frase de Autokey. Usar la abreviatura Space+;;
(que significa, verbalmente, escribir espacio y luego punto y coma dos veces). Lo que significa que cuando escribo (en cualquier lugar) space+;;
, la clave automática lo transforma en ;
(que es un espacio estrecho sin interrupciones seguido de un punto y coma).
PERO el problema aquí es este: cuando creo una nueva frase en Autokey con ;
, cuando uso la abreviatura, Autokey la reemplaza solo con ;
, borrando el estrecho espacio sin interrupciones. Y parece que hace esto con cualquier otro carácter Unicode demasiado especial...
¿Alguien tiene una idea de cómo solucionar este problema?
¡Un millón de gracias!
Respuesta1
Dos opciones: (Vermi blogpara más detalles y capturas de pantalla para la opción 1)
Primera opción(mucho más simple)
Actualízate alPython 3 puerto de clave automática(porque Python 3 maneja caracteres Unicode mejor que Python 2)
Para mí, la instalación funcionó de la siguiente manera:
# Edit (April 2018). Autokey now uses python 3 by default. So try
pip3 install autokey
# Install the original autokey
sudo apt-get install autokey-gtk
# Update autokey to python 3 using pip3
pip3 install --user autokey-py3
Luego asegúrese de ejecutar la versión python3, que probablemente esté en
~/.local/bin/autokey-gtk
Con este método, puedes ingresar tus caracteres Unicode como frases.
Segunda opción(si no puedes hacer que autokey-py3 funcione)
Utilice un script de Python (Archivo -> Nuevo -> Script) junto con el portapapeles del sistema
Pegue lo siguiente en el script
import sys
reload(sys)
sys.setdefaultencoding('utf8')
from subprocess import Popen, PIPE
def paste_character(symbol):
c = Popen(['xclip', '-selection', 'clipboard'], stdin=PIPE)
c.communicate(symbol.encode('utf-8'))
keyboard.send_keys('<ctrl>+v')
paste_character('γ')
Esto funciona cambiando la configuración predeterminada de Python para que funcione correctamente con Unicode. Luego envía el carácter elegido al portapapeles (asegúrese de haberlo xclip
instalado). Aquí he usado γ como ejemplo). Luego envía control+v para pegar el carácter.
Extras para segunda opción
El segundo método se puede mejorar tomando toda la línea excepto la última del script y colocándola en un archivo (llamémoslo MyCopy.py
). Luego, en las preferencias de Autokey (Script Engine), indique a Autokey dónde está este archivo. Entonces el guión se vuelve
from MyCopy import paste_character
paste_character('γ')
Algunas aplicaciones no usan control+v para pegar (por ejemplo, la terminal usa control+shift+v). Pero el personaje seguirá estando en el portapapeles.
Respuesta2
Me funciona en Linuxmint 19.3, que ejecuta Python 3.6.8.
PERO no me funciona en Linuxmint 20.0, ya sea como Python 3.6.8 o 3.8.5. Recibe repetidamente este error de script:
Nombre del script 'amacron'
Rastreo (llamadas recientes más última);
Archivo "/usr/lib/python3/dist-packages/autokey/service.py" línea 485, en ejecutar exec(script.code, alcance) Archivo "", línea 2, en NameError: el nombre 'recargar' no está definido
===
escritura amacron:
sistema de importación recargar (sistema) sys.setdefaultencoding('utf8') de subproceso de importación Popen, PIPE def pegar_carácter(símbolo): c = Popen(['xclip', '-selection', 'portapapeles'], stdin=PIPE) c.comunicar(symbol.encode('utf-8')) teclado.send_keys('+v') pegar_carácter('ā')