web-dev-qa-db-ja.com

bashコンソールで漢字を入力する方法は?

私のシステムはlubuntuで、すべての漢字を正しく表示でき、gedit、leaf、firefoxで正しく入力できます。
bashコンソールに入力できません。修正方法は?

locale
LANG=zh_CN.UTF-8
LANGUAGE=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

これが私の/etc/bash.bashrcファイルです。

[ -z "$PS1" ] && return
shopt -s checkwinsize
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
    function command_not_found_handle {
            # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
           /usr/lib/command-not-found -- "$1"
                   return $?
                Elif [ -x /usr/share/command-not-found/command-not-found ]; then
           /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
        else
           printf "%s: command not found\n" "$1" >&2
           return 127
        fi
    }
fi

これが私の/root/.bashrcファイルです。

export PYTHONPATH=%PYTHONPATH%:/usr/local/python3.4/lib/python3.4/site-packages
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

これが私の通常のbashrc設定ファイルです。

if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  Elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi
export PYTHONPATH=%PYTHONPATH%:/usr/local/python3.4/lib/python3.4/site-packages

漢字をクリップボードにコピーしてターミナルコンソールに貼り付けることができます。貼り付けから漢字を表示できます。
私の端末はlxterminalです。
入力方式はfcitxです。
XTermで漢字を入力できます。
今度はrootユーザー名でログインします。これが私のデスクトップです。 enter image description here

Ctrl + alt + F1を押してrootとそのpasswdを入力し、純粋なテキストインターフェイスにログインしてコマンドstartxを入力すると、別のデスクトップが表示されます。 enter image description here

Lxterminalに漢字を入力できます。質問:
同じユーザーのデスクトップ写真が2つあるのはなぜですかroot
次のlxterminalに漢字を入力できるのはなぜですか?
今度はctrl + alt + F7を押して、前のデスクトップに戻ります。
enter image description here
中国語の文字をそのlxターミナルに入力できません。

1

Linuxカーネルにはターミナルエミュレータプログラムが組み込まれています。フレームバッファーと入力イベントデバイスを介して内部的に構築され、アプリケーションモードシステムに一連のカーネル仮想端末デバイス、/dev/tty1として表示されます。など。厳密に言うと、これは必ずしもあなたのconsoleではなく、シリアルである可能性があります端末デバイス。ただし、その答えはシリアルリンクのもう一方の端にある端末ハードウェアを知ることになるため、スキップしてみましょう。

Linuxカーネルに組み込まれている端末エミュレータプログラムは、インプットメソッドをサポートしていません。

したがって、入力メソッドを備えた非X11端末を使用するには、フレームバッファーと入力イベントデバイスを使用するユーザー空間仮想端末を実行する必要があります。彼らはカーネル内のターミナルエミュレーターをそれらのデバイスから切断しますが、彼ら自身はそれらを使用しています。

入力方法をサポートするユーザー空間仮想端末エミュレータには、

参考文献

2
JdeBP

enter image description here 通常の名前でログインします。

enter image description here rootでログインします。

/ etc/profileおよび/etc/bash.bashrcと/root/.bashrcおよび〜/ .bashrcの3行を削除します。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

vim /etc/X11/Xsession.d/25xchinput

export LAGN=zh_CN.utf8
export LC_CTYPE=zh_CN.utf8
export XMODIFIERS=@im=fcitx
fcitx & 
0