• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

    Linux中Sublime Text無法輸入中文怎么辦

    時間: 孫勝龍652 分享

      Sublime Text是一個代碼編輯器,擁有強(qiáng)大的功能,但Sublime Text 在Linux下運(yùn)行的時候存在無法輸入中文的問題,遇到該問題該如何解決呢?下面學(xué)習(xí)啦小編就給大家介紹下Linux下Sublime Text 無法輸入中文的解決方法。

      1.保存下面的代碼為sublime_imfix.c

      代碼如下:

      /*

      sublime-imfix.c

      Use LD_PRELOAD to interpose some function to fix sublime input method support for linux.

      By Cjacker Huang 《jianzhong.huang at 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

      {

      long size;

      long numRects;

      GdkRegionBox *rects;

      GdkRegionBox extents;

      };

      GtkIMContext *local_context;

      void

      gdk_region_get_clipbox (const GdkRegion *region,

      GdkRectangle *rectangle)

      {

      g_return_if_fail (region != NULL);

      g_return_if_fail (rectangle != NULL);

      rectangle-》x = region-》extents.x1;

      rectangle-》y = region-》extents.y1;

      rectangle-》width = region-》extents.x2 - region-》extents.x1;

      rectangle-》height = region-》extents.y2 - region-》extents.y1;

      GdkRectangle rect;

      rect.x = rectangle-》x;

      rect.y = rectangle-》y;

      rect.width = 0;

      rect.height = rectangle-》height;

      //The caret width is 2;

      //Maybe sometimes we will make a mistake, but for most of the time, it should be the caret.

      if(rectangle-》width == 2 && GTK_IS_IM_CONTEXT(local_context)) {

      gtk_im_context_set_cursor_location(local_context, rectangle);

      }

      }

      //this is needed, for example, if you input something in file dialog and return back the edit area

      //context will lost, so here we set it again.

      static GdkFilterReturn event_filter (GdkXEvent *xevent, GdkEvent *event, gpointer im_context)

      {

      XEvent *xev = (XEvent *)xevent;

      if(xev-》type == KeyRelease && GTK_IS_IM_CONTEXT(im_context)) {

      GdkWindow * win = g_object_get_data(G_OBJECT(im_context),“window”);

      if(GDK_IS_WINDOW(win))

      gtk_im_context_set_client_window(im_context, win);

      }

      return GDK_FILTER_CONTINUE;

      }

      void gtk_im_context_set_client_window (GtkIMContext *context,

      GdkWindow *window)

      {

      GtkIMContextClass *klass;

      g_return_if_fail (GTK_IS_IM_CONTEXT (context));

      klass = GTK_IM_CONTEXT_GET_CLASS (context);

      if (klass-》set_client_window)

      klass-》set_client_window (context, window);

      if(!GDK_IS_WINDOW (window))

      return;

      g_object_set_data(G_OBJECT(context),“window”,window);

      int width = gdk_window_get_width(window);

      int height = gdk_window_get_height(window);

      if(width != 0 && height !=0) {

      gtk_im_context_focus_in(context);

      local_context = context;

      }

      gdk_window_add_filter (window, event_filter, context);

      }

      2.編譯動態(tài)庫:

      代碼如下:

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

      3. 設(shè)置 LD_PRELOAD 并啟動 Sublime Text:

      代碼如下:

      LD_PRELOAD=。/libsublime-imfix.so sublime_text

      為了不用每次啟動Sublime Text都打這么一長串東西,寫了個啟動Sublime的腳本:

      代碼如下:

      #!/bin/bash

      SUBLIME_HOME=“/opt/sublime_text”

      LD_LIB=$SUBLIME_HOME/libsublime-imfix.so

      sh -c “LD_PRELOAD=$LD_LIB $SUBLIME_HOME/sublime_text $@”

      把libsublime-imfix.so放到Sublime Text目錄下并修改腳本中的SUBLIME_HOME,這樣Sublime Text 就可以輸入中文了。

      上面就是Linux下Sublime Text 無法輸入中文的解決方法的介紹了,只要按照上面的步驟,就能在Sublime Text 中輸入中文了,是不是很簡單呢?趕緊試試看吧。

    307896 主站蜘蛛池模板: 国产男靠女免费视频网站| 18禁止午夜福利体验区| 中文字幕+乱码+中文乱码www| 九九影视理伦片| 五月婷婷色综合| 免费无遮挡无码永久视频| 国产在线视频色综合| 国产熟女一区二区三区五月婷| 国模吧双双大尺度炮交gogo| 天天摸天天看天天做天天爽| 小蝌蚪影院在线观看| 成人综合久久综合| 抬头见喜全集免费版| 无人视频在线观看免费播放影院| 日韩欧美国产电影| 最近中文字幕mv免费视频| 樱桃视频影院在线播放| 欧美a级完整在线观看| 末成年ASS浓精PICS| 日韩成人无码一区二区三区| 日韩欧美一区二区三区在线 | 免费在线观看a视频| 公和我在厨房猛烈进出视频| 国产亚洲婷婷香蕉久久精品 | 2一8一teesex| 草草影院www色欧美极品| 国产jizz在线观看| 韩国爱情电影妈妈的朋友 | 97sese电影| 一级一级女人真片| 麻豆AV一区二区三区久久| 蜜芽.768.忘忧草二区老狼| 老熟妇乱子伦牲交视频| 精品久久无码中文字幕| 波多野结衣新婚被邻居| 91福利小视频| 麻豆视频一区二区三区| 精品福利视频导航| 毛茸茸性XXXX毛茸茸毛茸茸| 欧美在线视频二区| 给我免费播放片黄色|