Ubuntu16.04下 ,使用sudo运行pycharm无法输入中文

以前也遇到过sudo运行pycharm时无法输入中文问题,依靠的是网上通用方法解决。大概如下:

编辑pycharm.sh,添加代码:

export CLASSPATH

LD_LIBRARY_PATH="$IDE_BIN_HOME:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
一开始这样是没问题的。但是某天由于要编译andorid源码,自己把jdk换成了openjdk,后面就发现pycharm中文又输入不了了,上面的方法也不管用了。执行的时候报错:export XMODIFIERS=@im=fcitx :not found。。。。

- -这个报错是什么鬼。。把这个指令放在.bashrc 还是 /etc/environment什么的都是报错。

于是开始各种寻找关于XMODIFIERS资料,由于自己ubuntu使用的是默认输入法框架fcitx,于是去看了wiki看了fcitx的文档,其中里面关于XMODIFIERS、QT_IM_MODULE等等参数的说明,其中有一个比较关键的点:fcitx-diagnose这条指令。

这个指令一般用于故障排查:“遇到任何 fcitx 有关的问题,比如 ctrl+space 在有的程序中不能工作,首先应该用 fcitx-diagnose 命令诊断问题的原因。 fcitx-diagnose 会列出所有 fcitx 正常运行所需的前提条件,从输出结果中通常可以找到问题的原因。 在网上(比如在 irc 或者论坛里)询问别人关于 fcitx 配置的问题时,也请首先提供你的 fcitx-diagnose 输出结果(比如贴到 pastebin 服务),这将加速别人帮你找到问题所在。”

于是自己本地执行了下这个指令,结果:

Ubuntu16.04下 ,使用sudo运行pycharm无法输入中文_第1张图片

看着没毛病。不过编辑pycharm.sh,把这个命令加到里面去,然后运行,就发现不对劲了:

Ubuntu16.04下 ,使用sudo运行pycharm无法输入中文_第2张图片

sudo ./pycharm.sh 后,结果就找不到了:

Ubuntu16.04下 ,使用sudo运行pycharm无法输入中文_第3张图片

所以这种情况下,即使原来的方法设定了也没有生效,具体为什么我也不知道,不过推测是root执行的原因,于是谷歌搜了下“sudo fcitx”这个关键字,找到了个一个觉得比较靠谱的说法:

Ubuntu16.04下 ,使用sudo运行pycharm无法输入中文_第4张图片

Ubuntu16.04下 ,使用sudo运行pycharm无法输入中文_第5张图片

不过用这位大佬的办法,同样还是没有成功,因为使用fcitx-diagnose报错提示的是我使用的xim而不是fcitx..不过,这说明了这位大佬的办法对于sudo下设定XMODIFIERS等参数是有效的!所以我修改了一下他的方法,最后成功解决了问题。

 

1.------创建 /etc/sudoers_env 加入以下代码:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
QT4_IM_MODULE=fcitx

2.------执行 sudo visudo 加入以下内容代码:

Defaults env_keep += "XMODIFIERS"
Defaults env_file="/etc/sudoers_env"

3.------执行 sudo pycharm.sh结果:

Ubuntu16.04下 ,使用sudo运行pycharm无法输入中文_第6张图片

恩解决。。又能输入中文了,

(献给遇到这个问题的同类,试一下我的办法万一解决了呢。。没帮助的话深表遗憾)

(对了,pycharm.sh 里面的diagnose记得删掉,不然每次都打印一堆东西)

 

 

你可能感兴趣的:(ubuntu)