Sublime Text es un editor de código con funciones potentes, pero Sublime Text no puede ingresar chino cuando se ejecuta bajo Linux. ¿Cómo resolver este problema? La siguiente pequeña serie le presentará la solución que Sublime Text no puede ingresar al chino en Linux.
1. Guarde el siguiente código sublime_imfix.c
código es el siguiente:
/*
sublime-imfix.c
.
uso LD_PRELOAD interponer alguna función para fijar sublime apoyo método de entrada para Linux
por Cjacker Huang "jianzhong.huang en i-soft.com.cn"
gcc -shared - O libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags GTK + -2.0` -fPIC
= LD_PRELOAD. /libsublime-imfix.so sublime_text
* /
# include "GTK /gtk.h"
# include "GDK /gdkx.h"
typedef GdkSegment GdkRegionBox;
struct _GdkRegion
{
tamaño de largo;
largos numRects;
* GdkRegionBox rectas;
extensiones GdkRegionBox;
};
* GtkIMContext local_context;
vacío
gdk_region_get_clipbox (const * GdkRegion región,
GdkRectangle * rectángulo)
{
g_return_if_fail (región = NULL); !!
g_return_if_fail (rectángulo = NULL);
rectangle- "x = "extents.x1;
rectangle-" de región y = de región "extents.y1;
rectangle-" width = de región "extents.x2 - de región" extents.x1;
rectangle- "height = de región" extents.y2 - de región "extents.y1;
GdkRectangle rect;
rect.x = rectangle-" x;
rect.y = Rectangle- "y;
rect.width = 0;
rect.height = rectangle-" altura;
//La anchura de intercalación es 2;
//Tal vez a veces se comete un error, pero para la mayoría de las veces, debe ser el símbolo de intercalación
Si (rectangle- "== ancho de 2 &>K_IS_IM_CONTEXT (local_context)). {
gtk_im_context_set_cursor_location (local_context, rectángulo);
}
}
//esto es necesario, por ejemplo, si introduce algo en diálogo de archivo y volver al área de edición
//se perdió contexto, por lo que aquí nos fijamos de nuevo.
event_filter GdkFilterReturn estática (GdkXEvent * XEvent, GdkEvent * evento, im_context gpointer)
{
* XEvent xev = (XEvent *) XEvent;
Si (tipo xev-" == KeyRelease &>K_IS_IM_CONTEXT (im_context)) {
GdkWindow * victoria = g_object_get_data (G_OBJECT (im_context), y " ventana y ");
Si (GDK_IS_WINDOW (ganar))
gtk_im_context_set_client_window (im_context, ganar);
}
GDK_FILTER_CONTINUE retorno;
}
vacío gtk_im_context_set_client_window (* GtkIMContext contexto, España
* GdkWindow ventana)
{
GtkIMContextClass * Klass;
g_return_if_fail (GTK_IS_IM_CONTEXT (contexto ));
klass = GTK_IM_CONTEXT_GET_CLASS (contexto);
si (klass- "set_client_window)
klass-" set_client_window (contexto, ventana);
si (! GDK_IS_WINDOW (ventana))
retorno;
g_object_set_data (G_OBJECT (contexto), y " ventana y ", ventana);
int width = gdk_window_get_width (ventana);
int height = gdk_window_get_height (ventana);
Si (ancho = 0 &! &height = 0) {
gtk_im_context_focus_in (contexto);
local_context = contexto;
}
gdk_window_add_filter (ventana, event_filter, contexto);
}
2. compilar biblioteca dinámica:
código es el siguiente:
gcc -o -shared libsublime-imfix.so sublime_imfix.c `pkg-config --libs --cflags GTK + -2.0` -fPIC
3. conjunto LD_PRELOAD E inicie Sublime Text:
El código es el siguiente:
LD_PRELOAD =. /libsublime-imfix.so sublime_text
Con el fin de hacer tan sublime texto están jugando una larga lista de cosas cada vez que se inicia, escribir sublime script de inicio:
código es el siguiente:
#! /Bin /bash
SUBLIME_HOME = " /opt /sublime_text y "
LD_LIB = $ SUBLIME_HOME /libsublime-imfix.so
sh -c y " LD_PRELOAD = $ LD_LIB $ SUBLIME_HOME /sublime_text $ @ "
la Sublime Text libsublime-imfix.so en el directorio y modificar el SUBLIME_HOME guión, así Sublime Text puede ser introducir caracteres chinos.
Lo anterior es la introducción de la solución que Sublime Text no puede ingresar al chino en Linux. Simplemente siga los pasos anteriores y puede ingresar el chino en el texto sublime. ¿Es muy simple? Pruébalo.
Entre muchos de los comandos de Linux, el comando netstat es un comando de consola para monitorear l
Cuando está operando el sistema Linux, a veces se encontrará con el problema de que los archivos se
La herramienta Ctags se usa principalmente para atravesar archivos de origen y enco
Como administrador del sistema Linux, debe administrar los permisos de los usuarios y grupos de Linu
¿Cómo utiliza Linux el mecanismo asesino de OOM?
Linux detecta y monta el segundo paso del disco duro
Linux cómo usar clam antivirus antivirus
Cómo Linux implementa el control remoto de los comandos de shell
Cómo administrar el io del disco de Linux usando cgroups
Linux usa el archivo /etc /group para administrar los métodos de los usuarios
Cómo configurar el sistema de archivos XFS para el sistema Linux
Linux comando chmod resumen de uso
Cómo instalar y usar NeoBundle con Linux
Pasos para configurar el escritorio compartido con vino-server bajo Linux Mint Cinnamon
¿Cómo deshabilitar la función de compartir automáticamente la contraseña de wifi de Win10?
Cómo resolver el problema de la fuente poco clara de Microsoft Yahoo en WinXP
Uso alternativo maravilloso de WinRAR para ocultar archivos confidenciales
Cómo cancelar la contraseña de encendido de Win8
¿Cómo lo usa el Consultor en línea Yangtian de Lenovo?
El material de PS donde encontrar el sitio web de material PS tiene
La información original del correo es fácil de verificar.
Sobre las razones de fallas en la red de Windows XP
¿Puede el sistema Win7 instalar Directx12? ¿Se puede usar Win7 después de instalar Directx12?