Ubuntu下Rstudio中文输入问题的解决方案

时间:2023-01-31 07:07:05

Ubuntu下RStudio中文输入问题的解决方案

Linux(私以为)是一个对于科学,学术,码农类工作者更为友好的环境。但不容忽视的是哪怕是Ubuntu版本下,个别环境下的中文输入依旧得不到良好的官方支持:比如Anaconda下的Spyder,比如RStudio。

虽然英语写注释也是不错的选择,但是个别情况下,中文输入难以避免(比如博主就经常遇到字段是中文的数据源,读写数据里面编码的坑就更是懒得吐槽了)。所有经过搜索和测试之后,在此提供一个特定环境下的Rstudio中文输入的解决方案

环境

  • Ubuntu 16.04 LTS
  • RStudio >=1.0.153
  • Sogou linux 输入法 (fcitx)

RStudio 0.99 版本

已经有人给出过给出了方案,为了方便懒得点链接的朋友:

On Linux, RStudio uses a bundled version of Qt 5 that does not include support for Fctix by default. To resolve the problem, you can add Fctix’s Qt 5 plugin from your system’s Qt 5 installation to RStudio’s platform input plugin folder:

$ sudo ln -s /usr/lib/$(dpkg-architecture -qDEB_BUILD_MULTIARCH)/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /usr/lib/rstudio/bin/plugins/platforminputcontexts/

If your system doesn’t have /usr/lib/(architecture)/qt5, you may need to add a system installation of Qt 5 (look at your specific Linux distribution’s instructions). You can also find the source for the FCtix Qt 5 plugin on Github; an alternative method is to build the plugin yourself and copy it to /usr/lib/rstudio/bin/plugins/platforminputcontexts.

RStudio 1.0.136 版本

$ wget http://ikuya.info/tmp/fcitx-qt5-rstudio.tar.gz 
$ tar xf fcitx-qt5-rstudio.tar.gz
$ cd fcitx-qt5-rstudio
$ sudo apt install ./fcitx-frontend-qt5-rstudio_1.0.5-1_amd64.deb ./libfcitx-qt5-1-rstudio_1.0.5-1_amd64.deb

然后重启rstudio即可

RStudio 1.0.153 版本及以上

$ wget http://ikuya.info/tmp/fcitx-qt5-rstudio-qt542.tar.gz 
$ tar xf fcitx-qt5-rstudio-qt542.tar.gz
$ sudo apt install ./fcitx-frontend-qt5-rstudio_1.0.5-1ubuntu1~qt542_amd64.deb ./libfcitx-qt5-1-rstudio_1.0.5-1ubuntu1~qt542_amd64.deb

然后重启rstudio即可
Ubuntu下Rstudio中文输入问题的解决方案

多说两句,关于Spyder

如果你的spyder环境是直接通过pip安装的,那将没有中文输入的问题。相反,如果你的spyder是通过anaconda安装的,则不能输入中文,github上早已有人提出过issue,官方已经意识到这个问题,但是可能由于priority较小,目前暂时没有给出解决方案。

私以为,如果追求高效写python脚本,直接在文本环境下写代码,然后再在ipython下 %run -d your_script.py 调试即可。如果追求交互可是,jupyter-notebook也是一个非常友好的环境了。所有觉得不必太纠结spyder的问题

欢迎大家反馈