Saltar al contenido

Visualización del carácter de control [SOH] como espacio en blanco o en Notepad ++

Solución:

Introducción

Notepad ++ está usando Scintilla para el componente editor. Scintilla tiene una función SCI_SETCONTROLCHARSYMBOL(int symbol) donde puede establecer el carácter que se utilizará para los caracteres de control. De Scintilla Docs describen la funcionalidad:

SCI_SETCONTROLCHARSYMBOL (símbolo int)

SCI_GETCONTROLCHARSYMBOL

De forma predeterminada, Scintilla muestra los caracteres de control (caracteres con códigos inferiores a 32) en un rectángulo redondeado como nemotécnicos ASCII: “NUL”, “SOH”, “STX”, “ETX”, “EOT”, “ENQ”, “ACK” , “BEL”, “BS”, “HT”, “LF”, “VT”, “FF”, “CR”, “SO”, “SI”, “DLE”, “DC1”, “DC2″, ” DC3 “,” DC4 “,” NAK “,” SYN “,” ETB “,” CAN “,” EM “,” SUB “,” ESC “,” FS “,” GS “,” RS “,” US ” . Estos mnemónicos provienen de los primeros días de la señalización, aunque algunos todavía se usan (LF = Line Feed, BS = Back Space, CR = Carriage Return, por ejemplo).

Puede optar por reemplazar estos mnemónicos por un símbolo designado con un código ASCII en el rango de 32 a 255. Si establece un valor de símbolo menor que 32, todos los caracteres de control se muestran como mnemónicos. El símbolo que establezca se representa en la fuente del estilo establecido para el personaje. Puede volver a leer el símbolo actual con el mensaje SCI_GETCONTROLCHARSYMBOL. El valor del símbolo predeterminado es 0.

Probablemente haya una forma “correcta” de hacer esto, pero les voy a dar una forma muy hábil de lograrlo.

Técnica

Edita el archivo %APPDATA%Notepad++shortcuts.xml usando cualquier cosa EXCEPTO Notepad ++.

Agregue lo siguiente al <Macros> sección del archivo para agregar manualmente una macro:

<Macro name="RemoveControl" Ctrl="no" Alt="no" Shift="no" Key="0">
        <Action type="0" message="2388" wParam="32" lParam="0" sParam="" />
</Macro>

Tenga en cuenta que puede establecer un atajo con el Ctrl, Alt, Shift y Key atributos. los wParam establecerá el carácter que se utilizará en lugar de los códigos deletreados. En este caso, codifique 32 es un espacio en el estándar ASCII. Mensaje 2388 es la constante para el SCI_SETCONTROLCHARSYMBOL valor.

Guarda el archivo

Usar

Ahora puede cambiar el comportamiento de Notepad ++ en tiempo de ejecución. Para usar esto, haga lo siguiente

Abra el Bloc de notas ++
Simplemente abra el editor. Si abre un archivo directamente (es decir, edite con el menú contextual de Notepad ++) obtendrá un comportamiento extraño.

Active la macro desde el menú (o su atajo).
Si hay una forma de automatizar la ejecución de una macro al inicio, sería bueno agregarla aquí

Abra su archivo.
Nada nuevo aqui

Notas

  1. Las posiciones con el carácter de control seguirán estando invertidas (texto blanco sobre fondo negro por defecto).
  2. Si activa la macro cuando tiene un documento abierto, no tendrá efecto de inmediato. Tendrá que hacer algo para obligar a que la ventana se vuelva a dibujar.
  3. Una mirada al archivo Scintilla.h puede abrir otras opciones que podrían explotarse de manera similar.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *