Cómo cambiar al método de entrada fcitx en Ubuntu Sublime Text 2

  
                

Sublime Text 2 es un editor de código si desea introducir la necesidad de China para usar las palabras de entrada fcitx, los usuarios han encontrado recientemente dos casos no se pueden utilizar de entrada fcitx de Sublime Text, Xiao Bian le dio en el próximo Ubuntu Sublime Text 2 no puede cambiar la solución al método de entrada fcitx.

Guardar para guardar esta siguiente código ~ /sublime-imfix.c

/*

sublime-imfix.c

Uso LD_PRELOAD interponer alguna función para fijar el soporte de métodos de entrada sublime para Linux.

por Cjacker Huang "jianzhong.huang en i-soft.com.cn"

gcc -o -shared libsublime-imfix. por lo 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);

instalación de C /C ++ medio ambiente y GTK libgtk2.0-dev

sudo instalar build-essential

sudo apt-get apt-get install

Terminal-dev libgtk2.0 para entrar en el directorio donde lo sublime-imfix.c, ejecute el siguiente comando

gcc -o -shared libsublime-imfix.so sublime-imfix.c `pkg-config --libs --cflags GTK + -2.0` -fPIC

modificar /usr /share /editor de texto Aplicaciones /archivo sublime.desktop (esto es lo que construyó cuando instaló el texto sublime 2), que se encuentra al principio de " Exec = " filas (dos filas), para modificar el subl

fiesta -c y lsquo; LD_PRELOAD = ~ /libsublime-imfix.so subl y rsquo;

Aceptar, a partir Haga clic en el texto sublime 2 para entrar en chino! (Nota: el terminal no cambia el método de entrada de entrada de China subl abrir)

Ubuntu Sublime Text 2 anterior no se resuelve utilizando el método descrito en la entrada fcitx, modificado de acuerdo con los métodos descritos en el presente documento subl, desde El lanzador lanza Sublime Text 2.

Copyright © Conocimiento de Windows All Rights Reserved