Linux 终端输入法

crella95 · December 07, 2025 · 90 hits

由于我的 linux 电脑 ibus 输入法经常消失

use strict; use warnings;#gb2312 simplified chinese input;Terminal  PERL perl
open(my $ri, "<bgb2.csv");
my @mkey = ();
my @mvar = ();
while (<$ri>) {
    my $ln = $_; chomp($ln);
    my @lnx = split(',',$ln);
    if ($lnx[scalar(@lnx)-1] eq ""){ pop(@lnx);}
    if (scalar(@lnx) > 0) {
        my $hkey = $lnx[0]; shift(@lnx);
        push(@mkey, $hkey); push(@mvar, \@lnx);
    }
}
close($ri);
if (scalar(@mkey) >= 1000){die("too many keys");} 
print "ready\n";

my $unum = "";
my @ms = (); my $w = 0; my $j = 0;
while (1){
    my $uip = <STDIN>; chomp($uip);
    $j = 0; 
    while ($j < scalar(@mkey)){
        if ($uip eq "x") { 
pop(@ms);print join("",@ms)."\n";$j = 1000;}
        elsif ($mkey[$j] eq $uip){ 
            my $cur = $mvar[$j];
            my @curvar = @$cur; 
            for ($w = 1; $w <= scalar(@curvar); $w += 1 ){
                print $w."'".$curvar[$w-1]." ";
            }
            print "\n";
            $unum = <STDIN>; chomp($unum); #print "[".$unum."]\n";
            if ($unum eq "n"){$j += 1;} elsif ($unum eq "q"){$j = 1000;}                
            elsif (index("012345678910111213141516", $unum) > -1) {         

                push(@ms, $curvar[int($unum)-1]); print join('', @ms)."\n"; 
                $j = 1000;
            } elsif ($unum eq "r") {$j -= 1;}
        } else {
            $j += 1;        
        }
    }
}

bgb2.csv =

aa,啊,阿,埃,挨,哎,唉,哀,皑,癌,蔼,矮,艾,碍,爱,隘
aa,鞍,氨,安,俺,按,暗,岸,胺,案,肮,昂,盎,凹,敖,熬,翱
aa,袄,傲,奥,懊,澳
ba,芭,捌,扒,叭,吧,笆,八,疤,巴,拔,跋
ba,靶,把,耙,坝,霸,罢,爸,白,柏,百,摆,佰,败,拜,稗,斑
ba,班,搬,扳,般,颁,板,版,扮,拌,伴,瓣,半,办,绊,邦,帮
ba,梆,榜,膀,绑,棒,磅,蚌,镑,傍,谤,苞,胞,包,褒,剥
ba,薄,雹,保,堡,饱,宝,抱,报,暴,豹,鲍,爆
be,杯,碑,悲,卑,北,辈,背,贝,钡,倍,狈,备,惫,焙
be,被,奔,苯,本,笨,崩,绷,甭,泵,蹦,迸
bi,逼,鼻,比,鄙,笔,彼,碧,蓖,蔽,毕
bi,毙,毖,币,庇,痹,闭,敝,弊,必,辟,壁,臂,避,陛,鞭,边
bi,编,贬,扁,便,变,卞,辨,辩,辫,遍,标,彪,膘,表,鳖,憋
bi,别,瘪,彬,斌,濒,滨,宾,摈,兵,冰,柄,丙,秉,饼,炳
bi,病,并
bo,玻,菠,播,拨,钵,波,博,勃,搏,铂,箔,伯,帛
bo,舶,脖,膊,渤,泊,驳
bu,捕,卜,哺,补,埠,不,布,步,簿,部,怖
ca,擦,猜,裁,材,才,财,睬,踩,采,彩,菜,蔡,餐,参,蚕
ca,残,惭,惨,灿,苍,舱,仓,沧,藏,操,糙,槽,曹,草,厕,策
ca,侧,册,测,层,蹭
cha,插,叉,茬,茶,查,碴,搽,察,岔,差,诧,拆,柴,豺
~~~~~~
No Reply at the moment.
You need to Sign in before reply, if you don't have an account, please Sign up first.