initial commit
This commit is contained in:
commit
8c23525cfa
17
.gitignore
vendored
Normal file
17
.gitignore
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
.DS_Store
|
||||
**/.idea/
|
||||
.vscode/
|
||||
|
||||
build/
|
||||
*.userdb/
|
||||
installation.yaml
|
||||
user.yaml
|
||||
|
||||
Tool/scel2txt/out/*
|
||||
Tool/scel2txt/scel/*
|
||||
|
||||
*private*
|
||||
|
||||
rime_console
|
||||
rime_deployer
|
||||
rime_patch
|
674
LICENSE
Normal file
674
LICENSE
Normal file
@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
65
README.md
Normal file
65
README.md
Normal file
@ -0,0 +1,65 @@
|
||||
# 雾凇拼音
|
||||
|
||||
![demo](./others/demo.webp)
|
||||
|
||||
功能齐全,词库体验良好,长期更新修订。
|
||||
|
||||
## 基本套路
|
||||
|
||||
- 简体全拼
|
||||
- 鼠须管 Squirrel 0.15.2
|
||||
- 小狼毫 Weasel 0.14.3
|
||||
- 主要功能
|
||||
- [melt_eng](https://github.com/tumuyan/rime-melt) 英文输入
|
||||
- [两分输入法](http://cheonhyeong.com/Simplified/download.html) 拼字
|
||||
- 简繁切换
|
||||
- 日期、时间、星期
|
||||
- 自整理的 Emoji
|
||||
- [以词定字](https://github.com/BlindingDark/rime-lua-select-character)
|
||||
- [长词优先](https://github.com/tumuyan/rime-melt/blob/master/lua/melt.lua)
|
||||
- 所有标点符号直接上屏,「/」模式改为「v」模式,「/」直接上屏
|
||||
- 增加了许多拼音纠错
|
||||
- 简体字表、词库
|
||||
- [《通用规范汉字表》的 8105 字字表](https://github.com/iDvel/The-Table-of-General-Standard-Chinese-Characters)
|
||||
- [华宇野风系统词库](http://bbs.pinyin.thunisoft.com/forum.php?mod=viewthread&tid=30049)
|
||||
- [清华大学开源词库](https://github.com/thunlp/THUOCL)
|
||||
- [《现代汉语常用词表》](https://gist.github.com/indiejoseph/eae09c673460aa0b56db)
|
||||
- [《现代汉语词典》](https://forum.freemdict.com/t/topic/12102)
|
||||
- [《同义词词林》](https://forum.freemdict.com/t/topic/1211)
|
||||
- [《新华成语大词典》](https://forum.freemdict.com/t/topic/11407)
|
||||
- [腾讯词向量](https://ai.tencent.com/ailab/nlp/zh/download.html)
|
||||
- 词库更新
|
||||
- 校对了大量异形词、错别字、错误注音
|
||||
- 长期对词库进行更新修订
|
||||
|
||||
<br>
|
||||
|
||||
## 使用说明
|
||||
|
||||
备份后删除配置目录下原有的配置文件,再将仓库所有文件复制粘贴进去就好了。
|
||||
|
||||
请先将 `pinyin_simp.dict.yaml` 中的 `- cn_dicts/private` 这行删除,这是我自己的私人词库(联系人之类的),否则鼠须管无法部署,小狼毫只能输入英文。
|
||||
|
||||
<br>
|
||||
|
||||
## 长期维护词库
|
||||
|
||||
基本所有时间都花在词库上了,精心调教了很多。既然找不到一份比较满意的简体词库,主流输入法又不公开自己的系统词库,干脆自己搞一个。
|
||||
|
||||
主要维护的词库:
|
||||
|
||||
- `8105` 字表。
|
||||
- `base` 基础词库。
|
||||
- `sogou` 搜狗流行词。
|
||||
- `ext` 扩展词库,小词库。
|
||||
- `tencent` 扩展词库,大词库。
|
||||
|
||||
维护内容主要是异形词、错别字的校对,错误注音的修正,缺失的常用词汇的增添,词频的调整。
|
||||
|
||||
欢迎在词库方面提 issue,我会及时更新修正。
|
||||
|
||||
<br>
|
||||
|
||||
---
|
||||
|
||||
详细介绍:[雾凇拼音,我的 Rime 配置及新手指引](https://dvel.me/posts/my-rime/)
|
8557
cn_dicts/8105.dict.yaml
Normal file
8557
cn_dicts/8105.dict.yaml
Normal file
File diff suppressed because it is too large
Load Diff
467084
cn_dicts/base.dict.yaml
Normal file
467084
cn_dicts/base.dict.yaml
Normal file
File diff suppressed because it is too large
Load Diff
143008
cn_dicts/ext.dict.yaml
Normal file
143008
cn_dicts/ext.dict.yaml
Normal file
File diff suppressed because it is too large
Load Diff
280
cn_dicts/others.dict.yaml
Normal file
280
cn_dicts/others.dict.yaml
Normal file
@ -0,0 +1,280 @@
|
||||
# Rime dictionary
|
||||
# encoding: utf-8
|
||||
#
|
||||
#
|
||||
# https://github.com/iDvel/rime-ice
|
||||
# ------- 一些杂项,按需选择 -------
|
||||
#
|
||||
#
|
||||
---
|
||||
name: others
|
||||
version: "2022-10-03"
|
||||
sort: by_weight
|
||||
...
|
||||
##### 容错词
|
||||
# 「血xue、xie」「谁shui、shei」「露lu、lou」「熟shu、shou」「密钥yao、yue」已在 main 中实现
|
||||
# ---
|
||||
# 「馄饨」,正确是 tun,北方口语是 dun
|
||||
馄饨 hun tun
|
||||
馄饨 hun dun
|
||||
# 「主角」,正确是 jue,港台是 jiao
|
||||
主角 zhu jue
|
||||
主角 zhu jiao
|
||||
角色 jue se
|
||||
角色 jiao se
|
||||
# 「比萨」,正确是 bi,Pizza 发音为 pi
|
||||
比萨 bi sa
|
||||
比萨 pi sa
|
||||
比萨饼 bi sa bing
|
||||
比萨饼 pi sa bing
|
||||
吃比萨 chi bi sa
|
||||
吃比萨 chi pi sa
|
||||
超级至尊比萨 chao ji zhi zun bi sa
|
||||
超级至尊比萨 chao ji zhi zun pi sa
|
||||
至尊比萨 zhi zun bi sa
|
||||
至尊比萨 zhi zun pi sa
|
||||
大西洋珍鲑比萨 da xi yang zhen gui bi sa
|
||||
大西洋珍鲑比萨 da xi yang zhen gui pi sa
|
||||
海鲜比萨 hai xian bi sa
|
||||
海鲜比萨 hai xian pi sa
|
||||
蔬菜比萨 shu cai bi sa
|
||||
蔬菜比萨 shu cai pi sa
|
||||
做比萨 zuo bi sa
|
||||
做比萨 zuo pi sa
|
||||
可口的比萨 ke kou de bi sa
|
||||
可口的比萨 ke kou de pi sa
|
||||
烤比萨 kao bi sa
|
||||
烤比萨 kao pi sa
|
||||
美味的比萨 mei wei de bi sa
|
||||
美味的比萨 mei wei de pi sa
|
||||
# 「扑街」,正确是 jie,口语是 gai
|
||||
扑街 pu jie
|
||||
扑街 pu gai
|
||||
街溜子 jie liu zi
|
||||
街溜子 gai liu zi
|
||||
扑街仔 pu jie zai
|
||||
扑街仔 pu gai zai
|
||||
# 「说服」,正确是 shuo,但「游说」「说客」仍然保留着 shui 的读音
|
||||
说服 shuo fu
|
||||
说服 shui fu
|
||||
# 「坐骑」,正确是 qi,《现汉7》只保留了 qi,《现汉6》一些词组中是念 ji
|
||||
坐骑 zuo qi
|
||||
坐骑 zuo ji
|
||||
一骑绝尘 yi qi jue chen
|
||||
一骑绝尘 yi ji jue chen
|
||||
一骑红尘妃子笑 yi qi hong chen fei zi xiao
|
||||
一骑红尘妃子笑 yi ji hong chen fei zi xiao
|
||||
千里走单骑 qian li zou dan qi
|
||||
千里走单骑 qian li zou dan ji
|
||||
# 「道行」,正确是 heng,但「道行hang」比较流行
|
||||
道行 dao heng
|
||||
道行 dao hang
|
||||
# 「模样」,正确是 mu,口语常念 mo
|
||||
模样 mu yang
|
||||
模样 mo yang
|
||||
有模有样 you mu you yang
|
||||
有模有样 you mo you yang
|
||||
一模一样 yi mu yi yang
|
||||
一模一样 yi mo yi yang
|
||||
装模作样 zhuang mu zuo yang
|
||||
装模作样 zhuang mo zuo yang
|
||||
# 「阿房宫」的注音争议比较大
|
||||
阿房宫 e pang gong
|
||||
阿房宫 a pang gong
|
||||
阿房宫 e fang gong
|
||||
阿房宫 a fang gong
|
||||
阿房宫赋 e pang gong fu
|
||||
阿房宫赋 a pang gong fu
|
||||
阿房宫赋 e fang gong fu
|
||||
阿房宫赋 a fang gong fu
|
||||
# 「伯伯」方言
|
||||
伯伯 bo bo
|
||||
伯伯 bai bai
|
||||
|
||||
|
||||
##### 叠字
|
||||
# 数据来源:https://zh.wikipedia.org/wiki/%E4%B8%89%E5%8F%A0%E5%AD%97 https://zh.wikipedia.org/wiki/%E5%9B%9B%E5%8F%A0%E5%AD%97
|
||||
# 三叠字
|
||||
三个生
|
||||
三个秦
|
||||
三个若
|
||||
三个雲 san ge yun
|
||||
三个人
|
||||
三个刀
|
||||
三个十
|
||||
三个力
|
||||
三个原
|
||||
三个厶 san ge si
|
||||
三个厶 san ge mou
|
||||
三个又
|
||||
三个口
|
||||
三个七
|
||||
三个吉
|
||||
三个土
|
||||
三个士
|
||||
三个女
|
||||
三个子
|
||||
三个小
|
||||
三个心
|
||||
三个手
|
||||
三个日
|
||||
三个木
|
||||
三个止
|
||||
三个毛
|
||||
三个水
|
||||
三个泉
|
||||
三个火
|
||||
三个牛
|
||||
三个犬
|
||||
三个田
|
||||
三个白
|
||||
三个目
|
||||
三个直
|
||||
三个石
|
||||
三个羊
|
||||
三个耳
|
||||
三个舌
|
||||
三个屮 san ge che
|
||||
三个屮 san ge cao
|
||||
三个虫
|
||||
三个言
|
||||
三个贝
|
||||
三个車 san ge che
|
||||
三个金
|
||||
三个隹 san ge zhui
|
||||
三个雷
|
||||
三个風 san ge feng
|
||||
三个飛 san ge fei
|
||||
三个香
|
||||
三个马
|
||||
三个魚 san ge yu
|
||||
三个鹿
|
||||
三个龍 san ge long
|
||||
三个个
|
||||
三个丶 san ge zhu
|
||||
三个丶 san ge dian
|
||||
三个了
|
||||
三个介
|
||||
三个企
|
||||
三个舍
|
||||
三个圥 san ge lu
|
||||
三个光
|
||||
三个兔
|
||||
三个全
|
||||
三个𠙽 san ge kuai
|
||||
三个𠧪 san ge tiao
|
||||
三个𠧪 san ge you
|
||||
三个㔾 san ge jie
|
||||
三个厡 san ge yuan
|
||||
三个可
|
||||
三个因
|
||||
三个夏
|
||||
三个大
|
||||
三个天
|
||||
三个太
|
||||
三个𦉼 san ge ku
|
||||
三个宝
|
||||
三个宜
|
||||
三个客
|
||||
三个寒
|
||||
三个少
|
||||
三个山
|
||||
三个市
|
||||
三个文
|
||||
三个斗
|
||||
三个朿 san ge ci
|
||||
三个束
|
||||
三个林
|
||||
三个果
|
||||
三个欠
|
||||
三个𣥚 san ge zou
|
||||
三个爪
|
||||
三个妥
|
||||
三个用
|
||||
三个甲
|
||||
三个百
|
||||
三个盖
|
||||
三个県 san ge xian
|
||||
三个空
|
||||
三个亇 san ge ge
|
||||
三个竹
|
||||
三个罒 san ge mu
|
||||
三个羗 san ge qiang
|
||||
三个老
|
||||
三个月
|
||||
三个至
|
||||
三个興 san ge xing
|
||||
三个足
|
||||
三个㖖 san ge nie
|
||||
三个門 san ge men
|
||||
三个面
|
||||
三个頁 san ge ye
|
||||
三个鳥 san ge niao
|
||||
三个男
|
||||
三个立
|
||||
三个九
|
||||
三个也
|
||||
三个加
|
||||
三个動 san ge dong
|
||||
三个千
|
||||
三个方
|
||||
三个朔
|
||||
三个玉
|
||||
三个申
|
||||
三个𡿨 san ge quan
|
||||
三个去
|
||||
三个弓
|
||||
三个䖝 san ge chong
|
||||
三个丿 san ge pie
|
||||
三个户
|
||||
三个日
|
||||
三个瓜
|
||||
三个鸟
|
||||
三个米
|
||||
# 四叠字
|
||||
四个乂 si ge yi
|
||||
四个人
|
||||
四个厶 si ge si
|
||||
四个厶 si ge mou
|
||||
四个又
|
||||
四个匕
|
||||
四个工
|
||||
四个口
|
||||
四个天
|
||||
四个小
|
||||
四个屮 si ge che
|
||||
四个屮 si ge cao
|
||||
四个火
|
||||
四个牛
|
||||
四个魚 si ge yu
|
||||
四个月
|
||||
四个日
|
||||
四个曰
|
||||
四个林
|
||||
四个水
|
||||
四个石
|
||||
四个田
|
||||
四个甲
|
||||
四个且
|
||||
四个囚
|
||||
四个困
|
||||
四个竹
|
||||
四个老
|
||||
四个朿 si ge ci
|
||||
四个先
|
||||
四个金
|
||||
四个泉
|
||||
四个言
|
||||
四个門 si ge men
|
||||
四个果
|
||||
四个春
|
||||
四个車 si ge che
|
||||
四个風 si ge feng
|
||||
四个雷
|
||||
四个雲 si ge yun
|
||||
四个興 si ge xing
|
||||
四个龍 si ge long
|
||||
四个土
|
||||
# 其他。。。
|
||||
男女男
|
||||
女男女
|
34558
cn_dicts/sogou.dict.yaml
Normal file
34558
cn_dicts/sogou.dict.yaml
Normal file
File diff suppressed because it is too large
Load Diff
1136961
cn_dicts/tencent.dict.yaml
Executable file
1136961
cn_dicts/tencent.dict.yaml
Executable file
File diff suppressed because it is too large
Load Diff
231
custom_phrase.txt
Executable file
231
custom_phrase.txt
Executable file
@ -0,0 +1,231 @@
|
||||
# Rime table
|
||||
# coding: utf-8
|
||||
#@/db_name custom_phrase.txt
|
||||
#@/db_type tabledb
|
||||
#
|
||||
# 用於【朙月拼音】系列輸入方案
|
||||
# 【小狼毫】0.9.21 以上
|
||||
#
|
||||
# 請將該文件以UTF-8編碼保存爲
|
||||
# Rime用戶文件夾/custom_phrase.txt
|
||||
#
|
||||
# 碼表各字段以製表符(Tab)分隔
|
||||
# 順序爲:文字、編碼、權重(決定重碼的次序、可選)
|
||||
#
|
||||
# 雖然文本碼表編輯較爲方便,但不適合導入大量條目
|
||||
#
|
||||
#
|
||||
#
|
||||
#
|
||||
# 这个文件内的字词会占据最高权重(排在候选项的最前面)。
|
||||
# 但不与其他翻译器互相造词,如果使用了完整编码,那么这个字或词将无法参与造词,即自造词无法被记住。
|
||||
# 所以建议只固定非完整编码的字词,「的de」应为「的d」,「是shi」应为「是s」,「仙剑xianjian」应为「仙剑xj」。
|
||||
#
|
||||
# 最下面的英文是因为一些常用单词的第一候选项被纠错覆盖了,
|
||||
# 比如 Amazon 被纠错为「a ma zong 阿妈粽」,
|
||||
# 期望的 Amazon 跑到第二个候选项了,所以这里给它固定死喽。
|
||||
#
|
||||
# version: "2022-10-31"
|
||||
#
|
||||
# 此行之后不能写注释
|
||||
|
||||
|
||||
欻 chua
|
||||
噷 hm
|
||||
哼 hng
|
||||
|
||||
|
||||
去 q 2
|
||||
千 q 1
|
||||
|
||||
我 w 3
|
||||
万 w 2
|
||||
往 w 1
|
||||
|
||||
儿 r
|
||||
|
||||
他 t 4
|
||||
她 t 3
|
||||
它 t 2
|
||||
祂 t 1
|
||||
|
||||
与 y 2
|
||||
于 y 1
|
||||
|
||||
有 u 3
|
||||
又 u 2
|
||||
由 u 1
|
||||
|
||||
一 i 4
|
||||
以 i 3
|
||||
已 i 2
|
||||
亦 i 1
|
||||
|
||||
哦 o 3
|
||||
噢 o 2
|
||||
喔 o 1
|
||||
|
||||
片 p 2
|
||||
篇 p 1
|
||||
|
||||
是 s 4
|
||||
时 s 3
|
||||
使 s 2
|
||||
式 s 1
|
||||
|
||||
的 d 3
|
||||
地 d 2
|
||||
得 d 1
|
||||
|
||||
发 f 2
|
||||
分 f 1
|
||||
|
||||
个 g
|
||||
|
||||
和 h 2
|
||||
或 h 1
|
||||
|
||||
及 j 5
|
||||
将 j 4
|
||||
即 j 3
|
||||
既 j 2
|
||||
继 j 1
|
||||
|
||||
可 k
|
||||
|
||||
了 l 3
|
||||
啦 l 2
|
||||
嘞 l 1
|
||||
|
||||
在 z 3
|
||||
再 z 2
|
||||
自 z 1
|
||||
|
||||
想 x 3
|
||||
像 x 2
|
||||
向 x 1
|
||||
|
||||
才 c 2
|
||||
从 c 1
|
||||
|
||||
吧 b 3
|
||||
百 b 2
|
||||
呗 b 1
|
||||
|
||||
那 n 4
|
||||
哪 n 3
|
||||
拿 n 2
|
||||
呐 n 1
|
||||
|
||||
吗 m 3
|
||||
嘛 m 2
|
||||
呣 m 1
|
||||
|
||||
|
||||
我们 wm
|
||||
我们 wom
|
||||
我们 wmen
|
||||
你们 nm
|
||||
你们 nim
|
||||
你们 nmen
|
||||
人们 rm
|
||||
人们 renm
|
||||
人们 rmen
|
||||
|
||||
|
||||
他的 td 3
|
||||
她的 td 2
|
||||
它的 td 1
|
||||
他的 tad 3
|
||||
她的 tad 2
|
||||
它的 tad 1
|
||||
他的 tde 3
|
||||
她的 tde 2
|
||||
它的 tde 1
|
||||
他们 tm 3
|
||||
她们 tm 2
|
||||
它们 tm 1
|
||||
他们 tam 3
|
||||
她们 tam 2
|
||||
它们 tam 1
|
||||
他们 tmen 3
|
||||
她们 tmen 2
|
||||
它们 tmen 1
|
||||
|
||||
|
||||
那儿 nr 2
|
||||
哪儿 nr 1
|
||||
那儿 nar 2
|
||||
哪儿 nar 1
|
||||
那个 ng 2
|
||||
哪个 ng 1
|
||||
那个 nag 2
|
||||
哪个 nag 1
|
||||
那些 nx 2
|
||||
哪些 nx 1
|
||||
那些 nax 2
|
||||
哪些 nax 1
|
||||
那里 nl 2
|
||||
哪里 nl 1
|
||||
那里 nal 2
|
||||
哪里 nal 1
|
||||
那边 nb 2
|
||||
哪边 nb 1
|
||||
那边 nab 2
|
||||
哪边 nab 1
|
||||
那位 nw 2
|
||||
哪位 nw 1
|
||||
那位 naw 2
|
||||
哪位 naw 1
|
||||
|
||||
|
||||
这 zh
|
||||
一个 ig
|
||||
有个 ug
|
||||
是一个 sig
|
||||
有一个 uig
|
||||
有一个 uyig
|
||||
有一个 uyige
|
||||
有没有 umu
|
||||
有没有 umeiu
|
||||
又有 uu
|
||||
又又又 uuu
|
||||
又双叒叕 uuuu
|
||||
|
||||
|
||||
等等 dd
|
||||
的地得 ddd
|
||||
等等等等 dddd
|
||||
刚刚 gg
|
||||
才刚刚 cgg
|
||||
知道 zd
|
||||
不知道 bzd
|
||||
往往 ww
|
||||
哈哈 hh
|
||||
看看 kk
|
||||
常常 cc
|
||||
想想 xx 2
|
||||
想象 xx 1
|
||||
隐约 yy
|
||||
因为 yw
|
||||
什么 sm
|
||||
所以 sy
|
||||
为什么 wsm
|
||||
是不是 sbs
|
||||
没什么 msm
|
||||
有时候 ysh
|
||||
有时候 yshh
|
||||
有时候 yshou
|
||||
什么的 smd
|
||||
什么是 sms
|
||||
|
||||
|
||||
Go go
|
||||
Golang golang
|
||||
Hugo hugo
|
||||
goto goto
|
||||
domain domain
|
||||
TODO todo
|
||||
Dota dota
|
||||
main main
|
||||
Amazon amazon
|
232
default.custom.yaml
Normal file
232
default.custom.yaml
Normal file
@ -0,0 +1,232 @@
|
||||
# Rime default settings
|
||||
# encoding: utf-8
|
||||
|
||||
patch:
|
||||
|
||||
# 方案列表
|
||||
schema_list:
|
||||
- schema: rime_ice
|
||||
# - schema: double_pinyin
|
||||
# - schema: double_pinyin_flypy
|
||||
|
||||
|
||||
# 候选词个数
|
||||
menu/page_size: 5
|
||||
|
||||
|
||||
# 方案选单相关
|
||||
switcher:
|
||||
caption: 「方案选单」
|
||||
hotkeys: # 呼出方案选单的快捷键
|
||||
# - Control+grave
|
||||
- Control+Shift+grave
|
||||
# - F4
|
||||
# - Alt+grave
|
||||
save_options: # 开关记忆,从方案选单(而非快捷键)切换时会记住的选项,需要记忆的开关不能设定 reset。
|
||||
- full_shape
|
||||
- ascii_punct
|
||||
- traditionalization
|
||||
- emoji
|
||||
fold_options: false # 呼出时是否折叠,多方案时建议折叠,一个方案建议展开
|
||||
abbreviate_options: true # 折叠时是否缩写选项
|
||||
option_list_separator: ' / ' # 折叠时的选项分隔符
|
||||
|
||||
|
||||
# 按键行为
|
||||
# good_old_caps_lock: Caps 切换大小写或切换中英,macOS 偏好设置的优先级更高:偏好设置 - 键盘 - 输入法 - 使用“中/英”键切换“ABC”输入模式。
|
||||
# 打字打到一半时按下了 Caps 或 Shift 后:
|
||||
# commit_code 上屏原始的编码,然后切换到英文
|
||||
# commit_text 上屏拼出的词句,然后切换到英文
|
||||
# clear 清除输入的内容,然后切换到英文
|
||||
# noop 屏蔽快捷键,啥也不干,但不要屏蔽 Caps
|
||||
ascii_composer/good_old_caps_lock: true # true | false
|
||||
ascii_composer/switch_key:
|
||||
Caps_Lock: commit_text # commit_code | commit_text | clear
|
||||
Shift_L: noop # commit_code | commit_text | clear | noop
|
||||
Shift_R: noop # macOS 不会区分左右 Shift,只需要设置 Shift_L
|
||||
Control_L: noop
|
||||
Control_R: noop
|
||||
Eisu_toggle: clear
|
||||
|
||||
|
||||
# 以词定字(上屏当前词组的第一个或最后一个字)
|
||||
key_binder/select_first_character:
|
||||
key_binder/select_last_character: "grave"
|
||||
# 快捷键
|
||||
key_binder/bindings:
|
||||
# 简繁切换
|
||||
- {when: always, accept: "Control+Shift+4", toggle: traditionalization}
|
||||
- {when: always, accept: "Control+Shift+F", toggle: traditionalization}
|
||||
- {when: always, accept: "Control+slash", toggle: traditionalization}
|
||||
# 切换中英文标点
|
||||
- {when: always, accept: "Control+Shift+A", toggle: ascii_punct}
|
||||
|
||||
# emacs_editing:
|
||||
# - { when: composing, accept: Control+p, send: Up }
|
||||
# - { when: composing, accept: Control+n, send: Down }
|
||||
# - { when: composing, accept: Control+b, send: Left }
|
||||
# - { when: composing, accept: Control+f, send: Right }
|
||||
- { when: composing, accept: Control+a, send: Home } # 光标跳转至行首
|
||||
- { when: composing, accept: Control+e, send: End } # 光标跳转至行尾
|
||||
# - { when: composing, accept: Control+d, send: Delete }
|
||||
# - { when: composing, accept: Control+k, send: Shift+Delete }
|
||||
# - { when: composing, accept: Control+h, send: BackSpace }
|
||||
# - { when: composing, accept: Control+g, send: Escape }
|
||||
# - { when: composing, accept: Control+bracketleft, send: Escape }
|
||||
# - { when: composing, accept: Control+y, send: Page_Up }
|
||||
# - { when: composing, accept: Alt+v, send: Page_Up }
|
||||
# - { when: composing, accept: Control+v, send: Page_Down }
|
||||
|
||||
# move_by_word_with_tab: Tab/Shift+Tab 切换光标至下/上一个拼音
|
||||
- { when: composing, accept: ISO_Left_Tab, send: Shift+Left }
|
||||
- { when: composing, accept: Shift+Tab, send: Shift+Left }
|
||||
- { when: composing, accept: Tab, send: Shift+Right }
|
||||
|
||||
# paging_with_minus_equal: 翻页:- =
|
||||
- { when: has_menu, accept: minus, send: Page_Up }
|
||||
- { when: has_menu, accept: equal, send: Page_Down }
|
||||
|
||||
# paging_with_comma_period: 翻页:, .
|
||||
# - { when: paging, accept: comma, send: Page_Up }
|
||||
# - { when: has_menu, accept: period, send: Page_Down }
|
||||
|
||||
# paging_with_brackets: 翻页:[ ]
|
||||
# - { when: paging, accept: bracketleft, send: Page_Up }
|
||||
# - { when: has_menu, accept: bracketright, send: Page_Down }
|
||||
|
||||
# numbered_mode_switch:
|
||||
# - { when: always, accept: Control+Shift+1, select: .next }
|
||||
# - { when: always, accept: Control+Shift+2, toggle: ascii_mode }
|
||||
# - { when: always, accept: Control+Shift+3, toggle: full_shape }
|
||||
# - { when: always, accept: Control+Shift+4, toggle: simplification }
|
||||
# - { when: always, accept: Control+Shift+5, toggle: extended_charset }
|
||||
# - { when: always, accept: Control+Shift+exclam, select: .next }
|
||||
# - { when: always, accept: Control+Shift+at, toggle: ascii_mode }
|
||||
# - { when: always, accept: Control+Shift+numbersign, toggle: full_shape }
|
||||
# - { when: always, accept: Control+Shift+dollar, toggle: simplification }
|
||||
# - { when: always, accept: Control+Shift+percent, toggle: extended_charset }
|
||||
|
||||
# windows_compatible_mode_switch:
|
||||
# - { when: always, accept: Shift+space, toggle: full_shape }
|
||||
# - { when: always, accept: Control+period, toggle: ascii_punct }
|
||||
|
||||
# optimized_mode_switch:
|
||||
# - { when: always, accept: Control+Shift+space, select: .next }
|
||||
# - { when: always, accept: Shift+space, toggle: ascii_mode }
|
||||
# - { when: always, accept: Control+comma, toggle: full_shape }
|
||||
# - { when: always, accept: Control+period, toggle: ascii_punct }
|
||||
# - { when: always, accept: Control+slash, toggle: simplification }
|
||||
# - { when: always, accept: Control+backslash, toggle: extended_charset }
|
||||
|
||||
|
||||
# key_binder 按键速查 https://github.com/LEOYoon-Tsaw/Rime_collections/blob/master/Rime_description.md
|
||||
# (没有 Command 键,不支持)
|
||||
# accept 和 send 可用字段除 A-Za-z0-9 外,还包含以下键盘上实际有的键:
|
||||
# BackSpace 退格
|
||||
# Tab 水平定位符
|
||||
# Linefeed 换行
|
||||
# Clear 清除
|
||||
# Return 回车
|
||||
# Pause 暂停
|
||||
# Sys_Req 印屏
|
||||
# Escape 退出
|
||||
# Delete 删除
|
||||
# Home 原位
|
||||
# Left 左箭头
|
||||
# Up 上箭头
|
||||
# Right 右箭头
|
||||
# Down 下箭头
|
||||
# Prior、Page_Up 上翻
|
||||
# Next、Page_Down 下翻
|
||||
# End 末位
|
||||
# Begin 始位
|
||||
# Shift_L 左Shift
|
||||
# Shift_R 右Shift
|
||||
# Control_L 左Ctrl
|
||||
# Control_R 右Ctrl
|
||||
# Meta_L 左Meta
|
||||
# Meta_R 右Meta
|
||||
# Alt_L 左Alt
|
||||
# Alt_R 右Alt
|
||||
# Super_L 左Super
|
||||
# Super_R 右Super
|
||||
# Hyper_L 左Hyper
|
||||
# Hyper_R 右Hyper
|
||||
# Caps_Lock 大写锁
|
||||
# Shift_Lock 上档锁
|
||||
# Scroll_Lock 滚动锁
|
||||
# Num_Lock 小键板锁
|
||||
# Select 选定
|
||||
# Print 打印
|
||||
# Execute 运行
|
||||
# Insert 插入
|
||||
# Undo 还原
|
||||
# Redo 重做
|
||||
# Menu 菜单
|
||||
# Find 搜寻
|
||||
# Cancel 取消
|
||||
# Help 帮助
|
||||
# Break 中断
|
||||
# space
|
||||
# exclam !
|
||||
# quotedbl "
|
||||
# numbersign #
|
||||
# dollar $
|
||||
# percent %
|
||||
# ampersand &
|
||||
# apostrophe '
|
||||
# parenleft (
|
||||
# parenright )
|
||||
# asterisk *
|
||||
# plus +
|
||||
# comma ,
|
||||
# minus -
|
||||
# period .
|
||||
# slash /
|
||||
# colon :
|
||||
# semicolon ;
|
||||
# less <
|
||||
# equal =
|
||||
# greater >
|
||||
# question ?
|
||||
# at @
|
||||
# bracketleft [
|
||||
# backslash
|
||||
# bracketright ]
|
||||
# asciicircum ^
|
||||
# underscore _
|
||||
# grave `
|
||||
# braceleft {
|
||||
# bar |
|
||||
# braceright }
|
||||
# asciitilde ~
|
||||
# KP_Space 小键板空格
|
||||
# KP_Tab 小键板水平定位符
|
||||
# KP_Enter 小键板回车
|
||||
# KP_Delete 小键板删除
|
||||
# KP_Home 小键板原位
|
||||
# KP_Left 小键板左箭头
|
||||
# KP_Up 小键板上箭头
|
||||
# KP_Right 小键板右箭头
|
||||
# KP_Down 小键板下箭头
|
||||
# KP_Prior、KP_Page_Up 小键板上翻
|
||||
# KP_Next、KP_Page_Down 小键板下翻
|
||||
# KP_End 小键板末位
|
||||
# KP_Begin 小键板始位
|
||||
# KP_Insert 小键板插入
|
||||
# KP_Equal 小键板等于
|
||||
# KP_Multiply 小键板乘号
|
||||
# KP_Add 小键板加号
|
||||
# KP_Subtract 小键板减号
|
||||
# KP_Divide 小键板除号
|
||||
# KP_Decimal 小键板小数点
|
||||
# KP_0 小键板0
|
||||
# KP_1 小键板1
|
||||
# KP_2 小键板2
|
||||
# KP_3 小键板3
|
||||
# KP_4 小键板4
|
||||
# KP_5 小键板5
|
||||
# KP_6 小键板6
|
||||
# KP_7 小键板7
|
||||
# KP_8 小键板8
|
||||
# KP_9 小键板9
|
320
en_dicts/cn_en.dict.yaml
Executable file
320
en_dicts/cn_en.dict.yaml
Executable file
@ -0,0 +1,320 @@
|
||||
# Rime dictionary
|
||||
# encoding: utf-8
|
||||
#
|
||||
#
|
||||
# https://github.com/iDvel/rime-ice
|
||||
# ------- 中英混输词库 -------
|
||||
#
|
||||
#
|
||||
# 因书写习惯,中英文之间都加了空格
|
||||
#
|
||||
---
|
||||
name: cn_en
|
||||
version: "2022-10-27"
|
||||
sort: by_weight
|
||||
...
|
||||
# 没有空格的(为了Emoji映射。Emoji 里空格是分割符,没法映射,不知道怎么解决)
|
||||
X光 xguang
|
||||
X光片 xguangpian
|
||||
X射线 xshexian
|
||||
T恤 txu
|
||||
T恤衫 txushan
|
||||
# 有空格的
|
||||
AD 钙奶 adgainai
|
||||
UU 加速器 uujiasuqi
|
||||
Cinity 厅 Cinity
|
||||
Cinity 厅 Cinityting
|
||||
Eul 的神圣法杖 eul
|
||||
Eul 的神圣法杖 euldeshenshengfazhang
|
||||
A 杖 azhang
|
||||
红 Buff hongbuff
|
||||
蓝 Buff lanbuff
|
||||
老 Baby laobaby
|
||||
小 Baby xiaobaby
|
||||
艾 AA aiaa
|
||||
炒 CP chaocp
|
||||
嗑 CP kecp
|
||||
U 盘 youpan
|
||||
U 盘 upan
|
||||
B 站 bzhan
|
||||
B 站 bizhan
|
||||
V 站 vzhan
|
||||
P 站 pzhan
|
||||
大 V dav
|
||||
QQ 音乐 qqyinyue
|
||||
QQ 拼音 qqpinyin
|
||||
QQ 会员 qqhuiyuan
|
||||
QQ 输入法 qqshurufa
|
||||
Dock 栏 docklan
|
||||
阿 Q 精神 aqjingshen
|
||||
Win 版 winban
|
||||
Win 版本 winbanben
|
||||
Windows 版 windowsban
|
||||
Windows 版本 windowsbanben
|
||||
Mac 版 macban
|
||||
Mac 版本 macbanben
|
||||
macOS 版 macosban
|
||||
macOS 版本 macosbanben
|
||||
iOS 版 iosban
|
||||
iOS 版本 iosbanben
|
||||
Android 版 androidban
|
||||
Android 版本 androidbanben
|
||||
Web 版 webban
|
||||
Web 版本 webbanben
|
||||
PC 端 pcduan
|
||||
Win 端 winduan
|
||||
Windows 端 windowsduan
|
||||
Mac 端 macduan
|
||||
macOS 端 macosduan
|
||||
Web 端 webduan
|
||||
iOS 端 iosduan
|
||||
Android 端 androidduan
|
||||
e 招贷 ezhaodai
|
||||
G 胖 gpang
|
||||
Up 主 upzhu
|
||||
BOSS 直聘 bosszhipin
|
||||
P 社 pshe
|
||||
V 社 vshe
|
||||
Go 语言 goyuyan
|
||||
维生素 A weishengsua
|
||||
维生素 B weishengsub
|
||||
维生素 C weishengsuc
|
||||
维生素 D weishengsud
|
||||
维生素 E weishengsue
|
||||
维生素 K weishengsuk
|
||||
维 E 乳 weieru
|
||||
维生素 E 乳 weishengsueru
|
||||
阿 Q aq
|
||||
阿 Q 正传 aqzhengzhuan
|
||||
单边 z 变换 danbianzbianhuan
|
||||
逗 B doub
|
||||
逗 B doubi
|
||||
哆啦 A 梦 duolaameng
|
||||
二 B erb
|
||||
二 B erbi
|
||||
卡拉 OK kalaok
|
||||
牛 B niub
|
||||
牛 B niubi
|
||||
三 K 党 sankdang
|
||||
三 K 党 sankeidang
|
||||
傻 B shab
|
||||
傻 B shabi
|
||||
傻 X shax
|
||||
智能 ABC zhinengabc
|
||||
智能 ABC 输入法 zhinengabcshurufa
|
||||
装 B zhuangb
|
||||
装 B zhuangbi
|
||||
A 股 agu
|
||||
A 盘 apan
|
||||
A 片 apian
|
||||
AA 制 aazhi
|
||||
ATM 机 atmji
|
||||
B 超 bchao
|
||||
B 股 bgu
|
||||
B 淋巴细胞 blinbaxibao
|
||||
B 盘 bpan
|
||||
B 细胞 bxibao
|
||||
C 盘 cpan
|
||||
C 语言 cyuyan
|
||||
D 盘 dpan
|
||||
E 盘 epan
|
||||
F 盘 fpan
|
||||
G 点 gdian
|
||||
G 盘 gpan
|
||||
H 股 hgu
|
||||
H 盘 hpan
|
||||
I 盘 ipan
|
||||
IP 地址 ipdizhi
|
||||
IP 电话 ipdianhua
|
||||
IP 卡 ipka
|
||||
IP 地址 ipweizhi
|
||||
J 盘 jpan
|
||||
K 宝 kbao
|
||||
K 宝 keibao
|
||||
K 粉 kfen
|
||||
K 粉 keifen
|
||||
K 歌 kge
|
||||
K 歌 keige
|
||||
POS 机 posji
|
||||
Q 币 qbi
|
||||
QQ qq
|
||||
QQ 号 qqhao
|
||||
QQ 号码 qqhaoma
|
||||
QQ 空间 qqkongjian
|
||||
QQ 群 qqqun
|
||||
QQ 邮箱 qqyouxiang
|
||||
SIM 卡 simka
|
||||
T 淋巴细胞 tlinbaxibao
|
||||
T 细胞 txibao
|
||||
T 型台 txingtai
|
||||
U 盾 udun
|
||||
U 形管 uxingguan
|
||||
UIM 卡 uimka
|
||||
USIM 卡 usimka
|
||||
X 刀 xdao
|
||||
X 染色体 xranseti
|
||||
Y 染色体 yranseti
|
||||
z 变换 zbianhuan
|
||||
z 逆变换 znibianhuan
|
||||
α 粒子 aerfalizi
|
||||
α 射线 aerfashexian
|
||||
β 粒子 beitalizi
|
||||
β 射线 beitashexian
|
||||
γ 刀 gamadao
|
||||
γ 射线 gamashexian
|
||||
D 之国 dzhiguo
|
||||
D 之一族 dzhiyizu
|
||||
Beta 版 betaban
|
||||
Beta 版本 betabanben
|
||||
AV 女优 avnvyou
|
||||
X 战警 xzhanjing
|
||||
A4 asi
|
||||
A4 纸 asizhi
|
||||
A4 纸 aszhi
|
||||
A4 纸 aszh
|
||||
A4 纸 asz
|
||||
A4 腰 asiyao
|
||||
A4 腰 asyao
|
||||
A4 腰 asya
|
||||
A4 腰 asy
|
||||
N 多 nduo
|
||||
N 多个 nduoge
|
||||
N 次 nci
|
||||
N 遍 nbian
|
||||
蒙奇·D·路飞 mengqidlufei
|
||||
蒙奇·D·龙 mengqidlong
|
||||
乔治·R·R·马丁 qiaozhirrmading
|
||||
哥尔·D·罗杰 geerdluojie
|
||||
马歇尔·D·蒂奇 maxieerddiqi
|
||||
X·德雷克 xdeleike
|
||||
蒙奇·D·卡普 mengqidkapu
|
||||
波特卡斯·D·艾斯 potekasidaisi
|
||||
VIP 中 P vipzhongp
|
||||
QQ 秀 qqxiu
|
||||
Big 胆 bigdan
|
||||
我叫 MT wojiaomt
|
||||
谜拟 Q miniq
|
||||
多边兽 Z duobianshouz
|
||||
藤子·F·不二雄 tengzifbuerxiong
|
||||
PC 版 pcban
|
||||
PC 版本 pcbanben
|
||||
A 塔 ata
|
||||
平 A pinga
|
||||
立 Flag liflag
|
||||
C 罗 cluo
|
||||
IE 浏览器 ieliulanqi
|
||||
A 壳 ake
|
||||
B 壳 bke
|
||||
C 壳 cke
|
||||
D 壳 dke
|
||||
A 面 amian
|
||||
B 面 bmian
|
||||
C 面 cmian
|
||||
D 面 dmian
|
||||
Server 酱 serverjiang
|
||||
P 图 ptu
|
||||
P 个图 pgetu
|
||||
P 一下 pyixia
|
||||
芭比 Q babiq
|
||||
芭比 Q 了 babiqle
|
||||
S 级 sji
|
||||
QQ 堂 qqtang
|
||||
PIN 码 pinma
|
||||
PUK 码 pukma
|
||||
关底 BOSS guandiboss
|
||||
AA 吧 aaba
|
||||
喊 cut hancut
|
||||
ASCII 码 asciima
|
||||
Go 圣经 goshengjing
|
||||
江南 Style jiangnanstyle
|
||||
头文字 D touwenzid
|
||||
三无 Marblue sanwumarblue
|
||||
A 罩杯 azhaobei
|
||||
B 罩杯 bzhaobei
|
||||
C 罩杯 czhaobei
|
||||
D 罩杯 dzhaobei
|
||||
E 罩杯 ezhaobei
|
||||
F 罩杯 fzhaobei
|
||||
G 罩杯 gzhaobei
|
||||
H 罩杯 hzhaobei
|
||||
A 罩 azhao
|
||||
B 罩 bzhao
|
||||
C 罩 czhao
|
||||
D 罩 dzhao
|
||||
E 罩 ezhao
|
||||
F 罩 fzhao
|
||||
G 罩 gzhao
|
||||
H 罩 hzhao
|
||||
TV 版 tvban
|
||||
TV 版本 tvbanben
|
||||
芒果 TV mangguotv
|
||||
V 字仇杀队 vzichoushadui
|
||||
V 怪客 vguaike
|
||||
V 煞 vsha
|
||||
Q 弹 qtan
|
||||
Steam 云 steamyun
|
||||
M 系列 mxilie
|
||||
阿 Sir asir
|
||||
Pro 版 proban
|
||||
Pro 版本 probanben
|
||||
Lite 版 liteban
|
||||
Lite 版本 litebanben
|
||||
X 教授 xjiaoshou
|
||||
Papi 酱 papijiang
|
||||
MAC 地址 macdizhi
|
||||
DNS 劫持 dnsjiechi
|
||||
DNS 污染 dnswuran
|
||||
OK 了 okle
|
||||
OK 了吗 oklema
|
||||
腾讯 QQ tengxunqq
|
||||
公网 IP gongwangip
|
||||
Web 开发 webkaifa
|
||||
圈 X quanx
|
||||
Switch 版 switchban
|
||||
Switch 版本 switchbanben
|
||||
A 型 axing
|
||||
A 型血 axingxue
|
||||
B 型 bxing
|
||||
B 型血 bxingxue
|
||||
AB 型 abxing
|
||||
AB 型血 abxingxue
|
||||
O 型 oxing
|
||||
O 型血 oxingxue
|
||||
IT 界 itjie
|
||||
Fn 键 fnjian
|
||||
Cmd 键 cmdjian
|
||||
Command 键 commandjian
|
||||
Ctrl 键 ctrljian
|
||||
Control 键 controljian
|
||||
Opt 键 optjian
|
||||
Option 键 optionjian
|
||||
Shift 键 shiftjian
|
||||
Tab 键 tabjian
|
||||
Caps 键 capsjian
|
||||
CapsLock 键 capslockjian
|
||||
Return 键 returnjian
|
||||
Enter 键 enterjian
|
||||
Space 键 spacejian
|
||||
Backspace 键 backspacejian
|
||||
Del 键 deljian
|
||||
Delete 键 deletejian
|
||||
Esc 键 escjian
|
||||
Eject 键 ejectjian
|
||||
J·K·罗琳 jkluolin
|
||||
周刊少年 Jump zhoukanshaonianjump
|
||||
ICP 备案 icpbeian
|
||||
啥 Bug shabug
|
||||
有 Bug youbug
|
||||
没 Bug meibug
|
||||
没有 Bug meiyoubug
|
||||
卡 Bug kabug
|
||||
J·R·R·托尔金 jrrtuoerjin
|
||||
异维 A 酸 weiyiasuan
|
||||
互 fo hufo
|
||||
减 CD jiancd
|
||||
随身 WiFi suishenwifi
|
||||
U 型锁 uxingsuo
|
||||
查 IP chaip
|
||||
Go 程 gocheng
|
||||
TG 群 tgqun
|
||||
Telegram 群 telegramqun
|
6369
en_dicts/en.dict.yaml
Executable file
6369
en_dicts/en.dict.yaml
Executable file
File diff suppressed because it is too large
Load Diff
1691
en_dicts/en_ext.dict.yaml
Executable file
1691
en_dicts/en_ext.dict.yaml
Executable file
File diff suppressed because it is too large
Load Diff
98811
liangfen.dict.yaml
Normal file
98811
liangfen.dict.yaml
Normal file
File diff suppressed because it is too large
Load Diff
84
liangfen.schema.yaml
Normal file
84
liangfen.schema.yaml
Normal file
@ -0,0 +1,84 @@
|
||||
# Rime schema
|
||||
# vim: set sw=2 sts=2 et:
|
||||
# encoding: utf-8
|
||||
|
||||
schema:
|
||||
schema_id: liangfen
|
||||
name: LiangFen
|
||||
version: "5.0"
|
||||
author:
|
||||
- TianHeng <2417647441@qq.com>
|
||||
description: |
|
||||
Use《http://yedict.com/》
|
||||
http://yedict.com/
|
||||
Dict is from http://yedict.com/
|
||||
|
||||
switches:
|
||||
- name: ascii_mode
|
||||
reset: 0
|
||||
states: [ Chi, Eng ]
|
||||
- name: full_shape
|
||||
states: [ Half, Full ]
|
||||
- name: simplification
|
||||
states: [ Trad, Simp ]
|
||||
|
||||
engine:
|
||||
processors:
|
||||
- ascii_composer
|
||||
- recognizer
|
||||
- key_binder
|
||||
- speller
|
||||
- punctuator
|
||||
- selector
|
||||
- navigator
|
||||
- express_editor
|
||||
segmentors:
|
||||
- ascii_segmentor
|
||||
- matcher
|
||||
- abc_segmentor
|
||||
- punct_segmentor
|
||||
- fallback_segmentor
|
||||
translators:
|
||||
- punct_translator
|
||||
- r10n_translator
|
||||
- reverse_lookup_translator
|
||||
filters:
|
||||
- simplifier
|
||||
- uniquifier
|
||||
|
||||
speller:
|
||||
alphabet: zyxwvutsrqponmlkjihgfedcba
|
||||
delimiter: " '"
|
||||
algebra:
|
||||
- abbrev/^([a-z]).+$/$1/
|
||||
|
||||
translator:
|
||||
dictionary: liangfen
|
||||
spelling_hints: 4
|
||||
preedit_format:
|
||||
- "xlit|v|ü|"
|
||||
- xform/iü/iv/
|
||||
comment_format:
|
||||
- "xlit|v|ü|"
|
||||
- xform/iü/iv/
|
||||
|
||||
reverse_lookup:
|
||||
dictionary: luna_pinyin
|
||||
prefix: "`"
|
||||
tips: 〔PinYin〕
|
||||
preedit_format:
|
||||
- xform/([nljqxy])v/$1ü/
|
||||
|
||||
punctuator:
|
||||
import_preset: default
|
||||
|
||||
menu:
|
||||
page_size: 6
|
||||
|
||||
key_binder:
|
||||
import_preset: default
|
||||
|
||||
recognizer:
|
||||
import_preset: default
|
||||
patterns:
|
||||
reverse_lookup: "`[a-z]*$"
|
14
melt_eng.dict.yaml
Executable file
14
melt_eng.dict.yaml
Executable file
@ -0,0 +1,14 @@
|
||||
# Rime dictionary
|
||||
# encoding: utf-8
|
||||
#
|
||||
# 挂载英文输入方案的词库
|
||||
#
|
||||
|
||||
---
|
||||
name: melt_eng
|
||||
version: "1"
|
||||
import_tables:
|
||||
- en_dicts/en # 原装词库
|
||||
- en_dicts/en_ext # 自己补充的词库
|
||||
- en_dicts/cn_en # 中英混输词库
|
||||
...
|
67
melt_eng.schema.yaml
Executable file
67
melt_eng.schema.yaml
Executable file
@ -0,0 +1,67 @@
|
||||
# Rime schema
|
||||
# vim: set sw=2 sts=2 et:
|
||||
# encoding: utf-8
|
||||
|
||||
schema:
|
||||
schema_id: melt_eng
|
||||
name: Easy English Nano
|
||||
version: "0.2.2"
|
||||
author:
|
||||
- Patrick <ipatrickmac@gmail.com>
|
||||
- tumuyan <tumuyan@21cn.com>
|
||||
description:
|
||||
Easy English Nano,只包含少量常用词汇,方便中英文混合输入度方案调用。
|
||||
|
||||
switches:
|
||||
- name: ascii_mode
|
||||
reset: 0
|
||||
states: [ ASCII-OFF, ASCII-ON ]
|
||||
|
||||
engine:
|
||||
processors:
|
||||
- ascii_composer
|
||||
- key_binder
|
||||
- speller
|
||||
- recognizer
|
||||
#關閉標點符號轉換(對應symbols.yaml) - punctuator
|
||||
- selector
|
||||
- navigator
|
||||
- express_editor
|
||||
segmentors:
|
||||
- matcher
|
||||
- ascii_segmentor
|
||||
- abc_segmentor
|
||||
- punct_segmentor
|
||||
- fallback_segmentor
|
||||
translators:
|
||||
- table_translator
|
||||
- punct_translator
|
||||
filters:
|
||||
- uniquifier
|
||||
|
||||
speller:
|
||||
alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA-_
|
||||
delimiter: " '"
|
||||
algebra:
|
||||
# 拼写规则的本质,是把字典按照规则改写,而不是把输入的按键码转写。
|
||||
- derive/['\-_+,.]+//
|
||||
# 把大小写混写的单词转写为全小写
|
||||
- derive/^(.+)$/\L$1/
|
||||
# 把小写的单词转写为全大写写
|
||||
- derive/^([a-z].+)$/\U$1/
|
||||
# 把单词转写为首字母大写
|
||||
- derive/^([a-zA-Z])/\U$1/
|
||||
# 把小写的单词转写为前2字母大写
|
||||
- derive/^([a-z][a-z])/\U$1/
|
||||
translator:
|
||||
dictionary: melt_eng
|
||||
spelling_hints: 9
|
||||
|
||||
key_binder:
|
||||
import_preset: default
|
||||
|
||||
punctuator:
|
||||
import_preset: default
|
||||
|
||||
recognizer:
|
||||
import_preset: default
|
2009
opencc/emoji-map.txt
Normal file
2009
opencc/emoji-map.txt
Normal file
File diff suppressed because it is too large
Load Diff
27
opencc/emoji.json
Normal file
27
opencc/emoji.json
Normal file
@ -0,0 +1,27 @@
|
||||
{
|
||||
"name": "Chinese to Emoji",
|
||||
"segmentation": {
|
||||
"type": "mmseg",
|
||||
"dict": {
|
||||
"type": "text",
|
||||
"file": "emoji.txt"
|
||||
}
|
||||
},
|
||||
"conversion_chain": [
|
||||
{
|
||||
"dict": {
|
||||
"type": "group",
|
||||
"dicts": [
|
||||
{
|
||||
"type": "text",
|
||||
"file": "emoji.txt"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"file": "others.txt"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
3947
opencc/emoji.txt
Normal file
3947
opencc/emoji.txt
Normal file
File diff suppressed because it is too large
Load Diff
570
opencc/others.txt
Normal file
570
opencc/others.txt
Normal file
@ -0,0 +1,570 @@
|
||||
一一一一一一一 version: "2022-10-30" 一一一一一一一
|
||||
一一一一一一一 此文件中间不能有空行 一一一一一一一
|
||||
一一一一一一一 格式为:输入内容<Tab>响应内容1<Space>响应内容2<Space>响应内容3。。。 一一一一一一一
|
||||
一一一一一一一 最左侧的输入内容应该写入词库中 一一一一一一一
|
||||
一一一一一一一 一一一一一一一 一一一一一一一
|
||||
一一一一一一一 偏旁部首 一一一一一一一
|
||||
厂部 厂部 厂 ⺁
|
||||
偏厂 偏厂 厂
|
||||
偏厂儿 偏厂儿 厂
|
||||
厂字头 厂字头 厂
|
||||
反字框 反字框 ⺁
|
||||
匚部 匚部
|
||||
区字框 区字框 匚
|
||||
三框 三框 匚
|
||||
三框儿 三框儿 匚
|
||||
刀部 刀部 刂
|
||||
立刀旁 立刀旁 刂
|
||||
立刀 立刀 刂
|
||||
冂部 冂部 冂 ⺆
|
||||
同字框 同字框 冂 ⺆
|
||||
单人旁 单人旁 亻
|
||||
人字旁 人字旁 亻
|
||||
单立人 单立人 亻
|
||||
斜刀头 斜刀头 ⺈
|
||||
负字头 负字头 ⺈
|
||||
包字头 包字头 勹
|
||||
风字头 风字头 𠘨
|
||||
凤字框 凤字框 𠘨
|
||||
几字头 几字头 𠘨
|
||||
几字底 几字底 𠘨
|
||||
亠部 亠部 亠
|
||||
京字头 京字头 亠
|
||||
冫部 冫部 冫
|
||||
两点水 两点水 冫
|
||||
冰字旁 冰字旁 冫
|
||||
八部 八部 丷
|
||||
倒八 倒八 丷
|
||||
兰字头 兰字头 丷
|
||||
八字头 八字头 丷
|
||||
八字底 八字底 丷
|
||||
倒八字 倒八字 丷
|
||||
冖部 冖部 冖
|
||||
秃宝盖 秃宝盖 冖
|
||||
言部 言部 讠 訁
|
||||
言字旁 言字旁 讠 訁
|
||||
凶字框 凶字框 凵
|
||||
凵部 凵部 凵
|
||||
卩部 卩部 卩
|
||||
耳刀旁 耳刀旁 卩 阝
|
||||
单耳旁 单耳旁 卩
|
||||
单耳刀 单耳刀 卩
|
||||
单耳朵 单耳朵 卩
|
||||
邑部 邑部 阝
|
||||
阜部 阜部 阝
|
||||
双耳旁 双耳旁 阝
|
||||
双耳刀 双耳刀 阝
|
||||
左耳刀 左耳刀 阝
|
||||
右耳刀 右耳刀 阝
|
||||
厶部 厶部 厶
|
||||
私字旁 私字旁 厶
|
||||
廴部 廴部 廴
|
||||
建之旁 建之旁 廴
|
||||
㔾部 㔾部 㔾
|
||||
仓字底 仓字底 㔾
|
||||
土部 土部 土
|
||||
提土旁 提土旁 土
|
||||
土字底 土字底 土
|
||||
土字旁 土字旁 土
|
||||
手部 手部 扌
|
||||
提手旁 提手旁 扌
|
||||
艸部 艸部 艹
|
||||
草头 草头 艹
|
||||
草字头 草字头 艹
|
||||
廾部 廾部 廾
|
||||
弄字底 弄字底 廾
|
||||
尢部 尢部 尢
|
||||
尤字旁 尤字旁 尢
|
||||
国字框 国字框 囗
|
||||
大口框 大口框 囗
|
||||
方框 方框 囗
|
||||
双人旁 双人旁 彳
|
||||
双立人 双立人 彳
|
||||
彳部 彳部 彳
|
||||
彡部 彡部 彡
|
||||
三撇 三撇 彡
|
||||
三撇儿 三撇儿 彡
|
||||
犬部 犬部 犭
|
||||
反犬旁 反犬旁 犭
|
||||
夂部 夂部 夂
|
||||
折文 折文 夂
|
||||
折文儿 折文儿 夂
|
||||
折文旁 折文旁 夂
|
||||
冬字头 冬字头 夂
|
||||
食部 食部 饣
|
||||
食字旁 食字旁 饣
|
||||
爿部 爿部 丬 爿
|
||||
将字旁 将字旁 丬 爿
|
||||
广部 广部 广
|
||||
广字旁 广字旁 广
|
||||
水部 水部 氵
|
||||
三点水 三点水 氵
|
||||
心部 心部 忄
|
||||
竖心 竖心 忄
|
||||
竖心旁 竖心旁 忄
|
||||
宀部 宀部 宀
|
||||
宝盖 宝盖 宀
|
||||
宝盖儿 宝盖儿 宀
|
||||
宝盖头 宝盖头 宀
|
||||
宝盖儿头 宝盖儿头 宀
|
||||
辵部 辵部 辶
|
||||
走之 走之 辶
|
||||
走之旁 走之旁 辶
|
||||
彐部 彐部 彐
|
||||
雪字底 雪字底 彐
|
||||
横山 横山 彐
|
||||
子部 子部 子 孑
|
||||
子字旁 子字旁 子 孑
|
||||
糸部 糸部 纟 糹 糸
|
||||
绞丝 绞丝 纟 糹 糸
|
||||
绞丝旁 绞丝旁 纟 糹 糸
|
||||
绞丝儿旁 绞丝儿旁 纟 糹 糸
|
||||
乱绞丝 乱绞丝 纟 糹 糸
|
||||
乱绞丝儿 乱绞丝儿 纟 糹 糸
|
||||
绞丝底 绞丝底 纟 糹 糸
|
||||
幺部 幺部 幺
|
||||
幼字旁 幼字旁 幺
|
||||
巛部 巛部 巛
|
||||
三拐 三拐 巛
|
||||
三拐儿 三拐儿 巛
|
||||
玉部 玉部 王
|
||||
王字旁 王字旁 王
|
||||
斜玉旁 斜玉旁 王
|
||||
老字头 老字头 耂
|
||||
木字旁 木字旁 木
|
||||
牛字旁 牛字旁 牜 ⺧
|
||||
车字旁 车字旁 车
|
||||
反文 反文 攵
|
||||
反文旁 反文旁 攵
|
||||
爪字头 爪字头 爫
|
||||
火字旁 火字旁 火
|
||||
四点底 四点底 灬
|
||||
四点水 四点水 灬
|
||||
示字旁 示字旁 礻
|
||||
示补 示补 礻
|
||||
示补儿 示补儿 礻
|
||||
春字头 春字头 春
|
||||
四字头 四字头 罒
|
||||
扁四头 扁四头 罒
|
||||
皿字底 皿字底 皿
|
||||
皿墩 皿墩 皿
|
||||
皿墩儿 皿墩儿 皿
|
||||
金字旁 金字旁 钅
|
||||
禾木旁 禾木旁 禾
|
||||
病字头 病字头 疒
|
||||
病字旁 病字旁 疒
|
||||
病旁 病旁 疒
|
||||
衣字旁 衣字旁 衤
|
||||
衣补 衣补 衤
|
||||
衣补儿 衣补儿 衤
|
||||
登字头 登字头 癶
|
||||
西字头 西字头 覀
|
||||
虎字头 虎字头 虍
|
||||
竹字头 竹字头 ⺮
|
||||
羊字旁 羊字旁 ⺶ ⺷
|
||||
羊字头 羊字头 ⺷ ⺶
|
||||
卷字头 卷字头 龹
|
||||
米字旁 米字旁 米
|
||||
足字旁 足字旁 ⻊
|
||||
髦字头 髦字头 髟
|
||||
石字头 石字头 丆
|
||||
一一一一一一一 著名表演艺术家 一一一一一一一
|
||||
爱田飞鸟 爱田飞鸟 あいだ飛鳥
|
||||
爱乃娜美 爱乃娜美 愛乃なみ
|
||||
安斋拉拉 安斋拉拉 安齋拉拉
|
||||
苍井空 苍井空 蒼井そら
|
||||
长谷川理穗 长谷川理穗 長谷川リホ
|
||||
彩美旬果 彩美旬果 あやみ旬果
|
||||
春咲凉 春咲凉 春咲りょう
|
||||
蒂亚 蒂亚 蒂亞
|
||||
楪可怜 楪可怜 楪カレン
|
||||
妃悠爱 妃悠爱 妃悠愛 长泽杏奈 長澤杏奈
|
||||
长泽杏奈 长泽杏奈 長澤杏奈 妃悠爱 妃悠愛
|
||||
枫可怜 枫可怜 楓カレン
|
||||
枫花恋 枫花恋 楓カレン
|
||||
宫下华奈 宫下华奈 宮下華奈
|
||||
古川伊织 古川伊织 古川いおり
|
||||
广濑里绪菜 广濑里绪菜 広瀬りおな
|
||||
河北春菜 河北春菜 河北はるな
|
||||
吉川莲 吉川莲 吉川蓮
|
||||
吉泽明步 吉泽明步 吉沢明歩
|
||||
铃村爱里 铃村爱里 鈴村あいり
|
||||
凉森玲梦 凉森玲梦 涼森れむ
|
||||
林由奈 林由奈 林ゆな
|
||||
凛音桃花 凛音桃花 凛音とうか
|
||||
里美尤利娅 里美尤利娅 里美ゆりあ
|
||||
芦名尤莉亚 芦名尤莉亚 芦名ユリア
|
||||
美雪爱莉丝 美雪爱莉丝 美雪ありす
|
||||
目黑惠 目黑惠 目黒めぐみ
|
||||
明里䌷 明里䌷 明里つむぎ
|
||||
七海蒂娜 七海蒂娜 七海ティナ
|
||||
天海翼 天海翼 天海つばさ
|
||||
桃谷绘里香 桃谷绘里香 桃谷エリカ
|
||||
辻井穗乃果 辻井穗乃果 辻井ほのか
|
||||
桥本有菜 桥本有菜 橋本ありな
|
||||
深田咏美 深田咏美 深田えいみ
|
||||
三上悠亚 三上悠亚 三上悠亜
|
||||
桃乃木香奈 桃乃木香奈 桃乃木かな
|
||||
武藤绫香 武藤绫香 武藤あやか
|
||||
希岛爱理 希岛爱理 希岛あいり
|
||||
夏希栗 夏希栗 夏希まろん
|
||||
希崎杰西卡 希崎杰西卡 希崎ジェシカ
|
||||
小泽玛利亚 小泽玛利亚 小澤マリア
|
||||
小岛南 小岛南 小島みなみ
|
||||
相泽南 相泽南 相沢みなみ
|
||||
星宫一花 星宫一花 星宮一花
|
||||
星野景子 星野景子 ほしの景子
|
||||
星野娜美 星野娜美 星野ナミ
|
||||
篠田步美 篠田步美 篠田あゆみ
|
||||
柚木蒂娜 柚木蒂娜 柚木ティナ
|
||||
有贺由爱 有贺由爱 有賀ゆあ
|
||||
乙白沙也加 乙白沙也加 乙白さやか
|
||||
樱井步 樱井步 桜井あゆ
|
||||
樱井彩 樱井彩 桜井彩
|
||||
樱空桃 樱空桃 桜空もも
|
||||
宇都宫紫苑 宇都宫紫苑 宇都宮しをん
|
||||
一之濑亚美莉 一之濑亚美莉 一ノ瀬アメリ
|
||||
樱木凛 樱木凛 桜木凛
|
||||
园田美樱 园田美樱 園田みおん
|
||||
永野司 永野司 永野つかさ
|
||||
早川濑里奈 早川濑里奈 早川瀬里奈
|
||||
椎名由奈 椎名由奈 椎名ゆな
|
||||
竹内有纪 竹内有纪 竹内有紀
|
||||
三宫椿 三宫椿 三宮つばき
|
||||
蓝芽水月 蓝芽水月 藍芽みずき
|
||||
星野明 星野明 星野あかり
|
||||
莲实克蕾儿 莲实克蕾儿 蓮実クレア
|
||||
香苗玲音 香苗玲音 香苗レノン
|
||||
有原步美 有原步美 有原あゆみ
|
||||
美谷朱里 美谷朱里 美谷あかり
|
||||
水川堇 水川堇 水川スミレ
|
||||
小宵虎南 小宵虎南 小宵こなん
|
||||
新村晶 新村晶 新村あかり
|
||||
森泽佳奈 森泽佳奈 森沢かな
|
||||
朝日奈花恋 朝日奈花恋 朝日奈かれん
|
||||
高桥圣子 高桥圣子 高橋しょう子
|
||||
西宫梦 西宫梦 西宮ゆめ
|
||||
藤森里穗 藤森里穗 藤森里穂
|
||||
木村穗乃香 木村穗乃香 木村穂乃香
|
||||
神宫寺奈绪 神宫寺奈绪 神宮寺ナオ
|
||||
水卜樱 水卜樱 水卜櫻
|
||||
爱音麻里亚 爱音麻里亚 愛音まりあ
|
||||
良音荠 良音荠 良音なずな
|
||||
本庄铃 本庄铃 本庄鈴
|
||||
明日花绮罗 明日花绮罗 明日花キララ
|
||||
大桥未久 大桥未久 大橋未久
|
||||
濑名光莉 濑名光莉 瀬名きらり
|
||||
栗山莉绪 栗山莉绪 栗山莉緒
|
||||
纱纱原百合 纱纱原百合 紗々原ゆり
|
||||
堀北湾 堀北湾 堀北わん
|
||||
冲田杏梨 冲田杏梨 沖田杏梨
|
||||
天使萌 天使萌 天使もえ
|
||||
西条琉璃 西条琉璃 西條るり
|
||||
君岛美绪 君岛美绪 君島みお
|
||||
波多野结衣 波多野结衣 波多野結衣
|
||||
松下纱荣子 松下纱荣子 松下紗栄子
|
||||
山手梨爱 山手梨爱 山手梨愛
|
||||
濑亚美莉 濑亚美莉 瀬アメリ
|
||||
望月理沙 望月理沙 望月りさ
|
||||
上原瑞穗 上原瑞穗 上原瑞穂
|
||||
岬奈奈美 岬奈奈美 岬ななみ
|
||||
神菜美舞 神菜美舞 神菜美まい
|
||||
白桃花 白桃花 白桃はな
|
||||
栗宫双叶 栗宫双叶 栗宮ふたば
|
||||
飞鸟里伊奈 飞鸟里伊奈 飛鳥りいな
|
||||
天音真比奈 天音真比奈 天音まひな
|
||||
凰香奈芽 凰香奈芽 凰かなめ
|
||||
一一一一一一一 生活大爆炸&老友记 一一一一一一一
|
||||
谢耳朵 谢耳朵 Sheldon
|
||||
谢尔顿 谢尔顿 Sheldon
|
||||
Sheldon Sheldon 谢尔顿 谢耳朵
|
||||
莱纳德 莱纳德 Leonard
|
||||
Leonard Leonard 莱纳德
|
||||
佩妮 佩妮 Penny
|
||||
Penny Penny 佩妮
|
||||
霍华德 霍华德 Howard
|
||||
Howard Howard 霍华德
|
||||
拉杰什 拉杰什 Rajesh
|
||||
Rajesh Rajesh 拉杰什
|
||||
瑞秋 瑞秋 Rachel
|
||||
Rachel Rachel 瑞秋
|
||||
莫妮卡 莫妮卡 Monica
|
||||
Monica Monica 莫妮卡
|
||||
乔伊 乔伊 Joey
|
||||
Joey Joey 乔伊
|
||||
罗斯 罗斯 Ross
|
||||
Ross Ross 罗斯
|
||||
钱德勒 钱德勒 Chandler
|
||||
Chandler Chandler 钱德勒
|
||||
菲比 菲比 Phoebe
|
||||
Phoebe Phoebe 菲比
|
||||
一一一一一一一 键盘符号 一一一一一一一
|
||||
Cmd Cmd Command ⌘
|
||||
Command Command ⌘
|
||||
Ctrl Ctrl Control ⌃
|
||||
Control Control ⌃
|
||||
Opt Opt Option ⌥
|
||||
Option Option ⌥
|
||||
Shift Shift ⇧
|
||||
Tab Tab ⇥
|
||||
Caps Caps CapsLock ⇪
|
||||
CapsLock CapsLock ⇪
|
||||
Return Return ⏎
|
||||
Enter Enter ⏎
|
||||
Space Space ␣
|
||||
Backspace Backspace ⌫
|
||||
Del Del Delete ⌫
|
||||
Delete Delete ⌫
|
||||
Esc Esc Escape ⎋
|
||||
Eject Eject ⏏
|
||||
一一一一一一一 三叠字 一一一一一一一
|
||||
三个生 三个生 㽓
|
||||
三个秦 三个秦 䆐
|
||||
三个若 三个若 䖃
|
||||
三个雲 三个雲 䨺
|
||||
三个人 三个人 众 㐺
|
||||
三个刀 三个刀 刕
|
||||
三个十 三个十 卉 𠦄
|
||||
三个力 三个力 劦
|
||||
三个原 三个原 厵
|
||||
三个厶 三个厶 厽
|
||||
三个又 三个又 叒
|
||||
三个口 三个口 品 𠱠
|
||||
三个七 三个七 㐂
|
||||
三个吉 三个吉 嚞 𡕇
|
||||
三个土 三个土 垚
|
||||
三个士 三个士 壵
|
||||
三个女 三个女 姦
|
||||
三个子 三个子 孨 𡥦
|
||||
三个小 三个小 尛 𡭯
|
||||
三个心 三个心 惢
|
||||
三个手 三个手 掱
|
||||
三个日 三个日 晶 晿
|
||||
三个木 三个木 森 𣓏
|
||||
三个止 三个止 歮
|
||||
三个毛 三个毛 毳
|
||||
三个水 三个水 淼 㴇
|
||||
三个泉 三个泉 灥
|
||||
三个火 三个火 焱 㷋
|
||||
三个牛 三个牛 犇
|
||||
三个犬 三个犬 猋
|
||||
三个田 三个田 畾
|
||||
三个白 三个白 皛
|
||||
三个目 三个目 瞐
|
||||
三个直 三个直 矗
|
||||
三个石 三个石 磊
|
||||
三个羊 三个羊 羴
|
||||
三个耳 三个耳 聶
|
||||
三个舌 三个舌 舙 𦧵
|
||||
三个屮 三个屮 芔
|
||||
三个虫 三个虫 蟲
|
||||
三个言 三个言 譶 𧭛
|
||||
三个贝 三个贝 赑
|
||||
三个車 三个車 轟
|
||||
三个金 三个金 鑫
|
||||
三个隹 三个隹 雥 雦
|
||||
三个雷 三个雷 靐
|
||||
三个風 三个風 飍
|
||||
三个飛 三个飛 飝
|
||||
三个香 三个香 馫
|
||||
三个马 三个马 骉 𩧢
|
||||
三个魚 三个魚 鱻
|
||||
三个鹿 三个鹿 麤
|
||||
三个龍 三个龍 龘
|
||||
三个个 三个个 𠁭
|
||||
三个丶 三个丶 𠁼
|
||||
三个了 三个了 𠄕
|
||||
三个介 三个介 𠌕
|
||||
三个企 三个企 𠐰
|
||||
三个舍 三个舍 𠑰
|
||||
三个圥 三个圥 𠒶
|
||||
三个光 三个光 𠓉
|
||||
三个兔 三个兔 𠓗
|
||||
三个全 三个全 𠓾
|
||||
三个𠙽 三个𠙽 𠚛
|
||||
三个𠧪 三个𠧪 𠨋
|
||||
三个㔾 三个㔾 𠨕
|
||||
三个厡 三个厡 𠫒
|
||||
三个可 三个可 𠾳
|
||||
三个因 三个因 𡈲
|
||||
三个夏 三个夏 𡖃
|
||||
三个大 三个大 𡘙
|
||||
三个天 三个天 𡙎
|
||||
三个太 三个太 𡙒
|
||||
三个𦉼 三个𦉼 𡚤
|
||||
三个宝 三个宝 𡬏
|
||||
三个宜 三个宜 𡬐
|
||||
三个客 三个客 𡬚
|
||||
三个寒 三个寒 𡬜
|
||||
三个少 三个少 𡮏
|
||||
三个山 三个山 𡷈
|
||||
三个市 三个市 𢅈
|
||||
三个文 三个文 𣁕
|
||||
三个斗 三个斗 𣁾
|
||||
三个朿 三个朿 𣝯
|
||||
三个束 三个束 𣠆
|
||||
三个林 三个林 𣡕
|
||||
三个果 三个果 𣡗
|
||||
三个欠 三个欠 𣣓
|
||||
三个𣥚 三个𣥚 𣦴
|
||||
三个爪 三个爪 𤔙
|
||||
三个妥 三个妥 𤕇
|
||||
三个用 三个用 𤰌
|
||||
三个甲 三个甲 𤳅
|
||||
三个百 三个百 𤾩
|
||||
三个盖 三个盖 𥃣
|
||||
三个県 三个県 𥍙
|
||||
三个空 三个空 𥩌
|
||||
三个亇 三个亇 𥫮 𥫧
|
||||
三个竹 三个竹 𥴒
|
||||
三个罒 三个罒 𦋹
|
||||
三个羗 三个羗 𦏱
|
||||
三个老 三个老 𦓈
|
||||
三个月 三个月 𦜳
|
||||
三个至 三个至 𦥏
|
||||
三个興 三个興 𦧅
|
||||
三个足 三个足 𨆬
|
||||
三个㖖 三个㖖 𨑂
|
||||
三个門 三个門 𨷮
|
||||
三个面 三个面 𩉖
|
||||
三个頁 三个頁 𩖏
|
||||
三个鳥 三个鳥 𪈼
|
||||
三个男 三个男 𪟧
|
||||
三个立 三个立 𫁪
|
||||
三个九 三个九 𫡤
|
||||
三个也 三个也 𫡩
|
||||
三个加 三个加 𫦹
|
||||
三个動 三个動 𫦿
|
||||
三个千 三个千 𫧢
|
||||
三个方 三个方 𬀉
|
||||
三个朔 三个朔 𬂚
|
||||
三个玉 三个玉 𬍼
|
||||
三个申 三个申 𬏍
|
||||
三个𡿨 三个𡿨 巛
|
||||
三个去 三个去 𠬑
|
||||
三个弓 三个弓 𢏝
|
||||
三个䖝 三个䖝 𧔗
|
||||
三个丿 三个丿 彡
|
||||
三个户 三个户 𢩕
|
||||
三个瓜 三个瓜 𤬑
|
||||
三个鸟 三个鸟 𪉓
|
||||
三个米 三个米 𥼬
|
||||
一一一一一一一 四叠字 一一一一一一一
|
||||
四个乂 四个乂 㸚
|
||||
四个人 四个人 𠈌
|
||||
四个厶 四个厶 𠫬
|
||||
四个又 四个又 叕
|
||||
四个匕 四个匕 𣬅
|
||||
四个工 四个工 㠭
|
||||
四个口 四个口 㗊
|
||||
四个天 四个天 𡚌
|
||||
四个小 四个小 𡮐
|
||||
四个屮 四个屮 茻
|
||||
四个火 四个火 燚
|
||||
四个牛 四个牛 𤛭
|
||||
四个魚 四个魚 䲜
|
||||
四个月 四个月 朤
|
||||
四个日 四个日 𣊫
|
||||
四个曰 四个曰 𣊭
|
||||
四个林 四个林 𣡽
|
||||
四个水 四个水 㵘
|
||||
四个石 四个石 𥗉
|
||||
四个田 四个田 𤳳
|
||||
四个甲 四个甲 𤳵
|
||||
四个且 四个且 𠁠
|
||||
四个囚 四个囚 𡈶
|
||||
四个困 四个困 𡈹
|
||||
四个竹 四个竹 𥷹
|
||||
四个老 四个老 𦓋
|
||||
四个朿 四个朿 𣡍
|
||||
四个先 四个先 𠓙
|
||||
四个金 四个金 𨰻
|
||||
四个泉 四个泉 𤆁
|
||||
四个言 四个言 𧮦
|
||||
四个門 四个門 𨷾
|
||||
四个果 四个果 𣡾
|
||||
四个春 四个春 𣌠
|
||||
四个車 四个車 𨏿
|
||||
四个風 四个風 𩙡
|
||||
四个雷 四个雷 䨻
|
||||
四个雲 四个雲 𩇔
|
||||
四个興 四个興 𠔻
|
||||
四个龍 四个龍 𪚥
|
||||
四个土 四个土 㙓
|
||||
男女男 男女男 嬲
|
||||
女男女 女男女 嫐
|
||||
一一一一一一一 其他 一一一一一一一
|
||||
Rime Rime 㞢
|
||||
中州韵 中州韵 Rime
|
||||
鼠须管 鼠须管 Squirrel
|
||||
小狼毫 小狼毫 Weasel
|
||||
平方 平方 ²
|
||||
立方 立方 ³
|
||||
平方米 平方米 m²
|
||||
平方厘米 平方厘米 cm²
|
||||
度 度 °
|
||||
摄氏度 摄氏度 °C
|
||||
华氏度 华氏度 °F
|
||||
点 点 ·
|
||||
间隔号 间隔号 ·
|
||||
连接号 连接号 —
|
||||
连接符 连接符 —
|
||||
连字符 连字符 -
|
||||
Apple Apple
|
||||
反问号 反问号 ¿
|
||||
约等于 约等于 ≈
|
||||
约等 约等 ≈
|
||||
约等号 约等号 ≈
|
||||
不等于 不等于 ≠
|
||||
不等号 不等号 ≠
|
||||
大于 大于 >
|
||||
大于号 大于号 >
|
||||
小于 小于 <
|
||||
小于号 小于号 <
|
||||
小于等于 小于等于 ≤
|
||||
小于等于号 小于等于号 ≤
|
||||
大于等于 大于等于 ≥
|
||||
大于等于号 大于等于号 ≥
|
||||
根号 根号 √
|
||||
正负号 正负号 ±
|
||||
正负 正负 ±
|
||||
百分号 百分号 %
|
||||
百分之 百分之 %
|
||||
千分号 千分号 ‰
|
||||
千分之 千分之 ‰
|
||||
万分号 万分号 ‱
|
||||
万分之 万分之 ‱
|
||||
纳粹 纳粹 卐
|
||||
无穷大 无穷大 ∞
|
||||
无穷大符号 无穷大符号 ∞
|
||||
正无穷 正无穷 +∞
|
||||
负无穷 负无穷 -∞
|
||||
圆周率 圆周率 π
|
||||
进击的巨人 进击的巨人 進撃の巨人
|
||||
中央电视台 中央电视台 装垫儿台
|
||||
Geralt Geralt 杰洛特
|
||||
杰洛特 杰洛特 Geralt
|
||||
灭霸 灭霸 Thanos
|
||||
Thanos Thanos 灭霸
|
||||
皮卡丘 皮卡丘 Pikachu
|
||||
Pikachu Pikachu 皮卡丘
|
||||
Pokemon Pokemon Pokémon
|
||||
德尔塔 德尔塔 Delta
|
||||
Delta Delta 德尔塔
|
||||
奥密克戎 奥密克戎 Omicron
|
||||
Omicron Omicron 奥密克戎
|
||||
恭喜发财 恭喜发财 恭喜發財
|
||||
人上人 人上人 仌
|
||||
二百 二百 皕
|
||||
两百 两百 皕
|
||||
英寸 英寸 吋
|
||||
星巴克 星巴克 Starbucks
|
||||
毫秒 毫秒 ms millisecond
|
||||
微秒 微秒 μs microsecond
|
||||
纳秒 纳秒 ns nanosecond
|
||||
掀桌子 掀桌子 (╯'-')╯︵┻━┻ (╯°Д°)╯︵┻━┻
|
||||
摆桌子 摆桌子 ┬─┬ノ('-'ノ)
|
||||
车马炮 车马炮 車马炮
|
||||
出车 出车 出車
|
||||
安卓 安卓 Android
|
||||
反引号 反引号 `
|
BIN
others/demo.webp
Normal file
BIN
others/demo.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 111 KiB |
26
others/iRime/README.md
Normal file
26
others/iRime/README.md
Normal file
@ -0,0 +1,26 @@
|
||||
# iRime 方案
|
||||
|
||||
直接拖进去就是全键盘方案。
|
||||
|
||||
然后有两组补丁。
|
||||
|
||||
<br>
|
||||
|
||||
一组九宫格的:
|
||||
|
||||
九宫格和 iRime 自带的主要区别:能输入英文,即「43556」上屏「hello」。
|
||||
|
||||
九宫格体验:重码时不能选拼音,太难受了,要了命了。
|
||||
|
||||
<br>
|
||||
|
||||
一组全键盘的:
|
||||
|
||||
开启模糊拼音,输入单字时比较困扰,不过实在离不开这个功能。
|
||||
|
||||
单引号改为了删除自造词(下滑 L 键)。
|
||||
|
||||
调整了标点符号的键盘映射,一些上下滑时的操作,比如上滑是两个括号,下滑是单个括号。
|
||||
|
||||
「符」按钮直接跳转到「更多」那个页面。
|
||||
|
10
others/iRime/iRime 九宫格/melt_eng.custom.yaml
Executable file
10
others/iRime/iRime 九宫格/melt_eng.custom.yaml
Executable file
@ -0,0 +1,10 @@
|
||||
# Rime schema
|
||||
# vim: set sw=2 sts=2 et:
|
||||
# encoding: utf-8
|
||||
|
||||
patch:
|
||||
|
||||
speller/alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA-_1234567890
|
||||
|
||||
speller/algebra/+:
|
||||
- xlit/abcdefghijklmnopqrstuvwxyz/22233344455566677778889999/
|
61
others/iRime/iRime 九宫格/rime_ice.custom.yaml
Executable file
61
others/iRime/iRime 九宫格/rime_ice.custom.yaml
Executable file
@ -0,0 +1,61 @@
|
||||
# Rime schema
|
||||
# encoding: utf-8
|
||||
|
||||
|
||||
patch:
|
||||
|
||||
# 增加数字按键
|
||||
speller/alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA1234567890
|
||||
|
||||
# 去掉电脑上打固顶字
|
||||
fixed: ~
|
||||
|
||||
# 九宫格拼写映射,直接覆盖,放弃 26 键的纠错,否则重码太多了
|
||||
speller/algebra:
|
||||
- "xlit|12345|+_*^0|"
|
||||
- xlit/abcdefghijklmnopqrstuvwxyz/22233344455566677778889999/
|
||||
|
||||
# 让输入框从数字变成字母
|
||||
engine/filters/+:
|
||||
- lua_filter@irime_t9_preedit
|
||||
translator/+:
|
||||
spelling_hints: 16
|
||||
|
||||
# 重写了,因为需要 @ 和 # 的映射,否则键盘上那俩按钮不起作用。
|
||||
punctuator/half_shape:
|
||||
',' : { commit: , }
|
||||
'.' : { commit: 。 }
|
||||
'<' : [ 《, 〈, «, ‹ ]
|
||||
'>' : [ 》, 〉, », › ]
|
||||
'/' : [ 、, '/', /, ÷ ]
|
||||
'?' : { commit: ? }
|
||||
';' : { commit: ; }
|
||||
':' : { commit: : }
|
||||
'''' : { pair: [ '‘', '’' ] }
|
||||
'"' : { pair: [ '“', '”' ] }
|
||||
'\' : [ 、, '\', \ ]
|
||||
'|' : [ ·, '|', |, '§', '¦' ]
|
||||
'`' : '`'
|
||||
'~' : [ '~', ~ ]
|
||||
'!' : { commit: ! }
|
||||
# '@' : [ 1,@,.,/,:,_,- ]
|
||||
'@' : [ 1,'@',!,:,、,……,~, ]
|
||||
'#' : [ 0,'#','$','%','^','&','*','(',')' ]
|
||||
'%' : [ '%', %, '°', '℃' ]
|
||||
'$' : [ ¥, '$', '€', '£', '¥', '¢', '¤' ]
|
||||
'^' : { commit: …… }
|
||||
'&' : '&'
|
||||
'*' : [ '*', *, ·, ・, ×, ※, ❂ ]
|
||||
'(' : (
|
||||
')' : )
|
||||
'-' : '-'
|
||||
'_' : ——
|
||||
'+' : '+'
|
||||
'=' : '='
|
||||
'[' : [ 「, 【, 〔, [ ]
|
||||
']' : [ 」, 】, 〕, ] ]
|
||||
'{' : [ 『, 〖, { ]
|
||||
'}' : [ 』, 〗, } ]
|
||||
|
||||
sytle:
|
||||
theme_name: T9
|
18
others/iRime/iRime 全键盘/rime_ice.custom.yaml
Executable file
18
others/iRime/iRime 全键盘/rime_ice.custom.yaml
Executable file
@ -0,0 +1,18 @@
|
||||
# Rime schema
|
||||
# encoding: utf-8
|
||||
|
||||
|
||||
patch:
|
||||
|
||||
# 中文键盘空格键上会显示方案名称
|
||||
# (英文键盘的空格在主题的 `theme.yaml` 文件下的 `space: {label:` 处修改)
|
||||
schema/name: Rime ice
|
||||
|
||||
# 智能纠错
|
||||
translator/enable_correction: true
|
||||
|
||||
key_binder:
|
||||
import_preset: default
|
||||
bindings/+:
|
||||
# 单引号(相应主题为下滑 L 键),改成删除自造词
|
||||
- { when: composing, accept: "'", send: Shift+Delete }
|
3
others/iRime/iRime 全键盘/theme/iPhone_custom/info.yaml
Executable file
3
others/iRime/iRime 全键盘/theme/iPhone_custom/info.yaml
Executable file
@ -0,0 +1,3 @@
|
||||
Name: iPhone默认键盘_custom
|
||||
Author: 筋斗云
|
||||
SupportPlatform: iOS,iPadOS
|
279
others/iRime/iRime 全键盘/theme/iPhone_custom/port/theme.yaml
Executable file
279
others/iRime/iRime 全键盘/theme/iPhone_custom/port/theme.yaml
Executable file
@ -0,0 +1,279 @@
|
||||
# Trime default style settings
|
||||
# encoding: utf-8
|
||||
#
|
||||
# 以 iRime 自带的「iPhone默认键盘」为模板,修改了一些:
|
||||
#
|
||||
# 按钮调换描述文字:中文键盘显示为「中」,英文键盘显示为「abc」。
|
||||
#
|
||||
# 修改键盘符号的映射,不调用 punctuator/half_shape,直接输出指定标点。
|
||||
# 一般是上滑为全角的,下滑改为半角的。
|
||||
# / @ # - _ 永远是半角的,上下滑都一样。
|
||||
# 右引号上滑为直角引号「」
|
||||
# 括号下滑为输入单个括号,中文的输出全角,英文的输出半角。
|
||||
#
|
||||
# 取消符号键盘,点击「符」直接跳转到「更多」那个界面。
|
||||
|
||||
config_version: "0.9"
|
||||
name: 默认键盘 #方案名称
|
||||
author: 筋斗云#作者资讯
|
||||
|
||||
#键盘高度等
|
||||
height:
|
||||
1: &jpgd1 43.6 #符号键盘
|
||||
2: &jpgd2 46 #主键盘
|
||||
3: &jpgd3 41.5 #数字键盘
|
||||
4: &jpgd4 12 #主键盘圆角
|
||||
5: &jpgd5 36 #候选区高度
|
||||
6: &jpgd6 0.5 #符号键盘行间距
|
||||
7: &jpgd7 0.5 #符号键盘水平间距
|
||||
8: &jpgd8 0.0 #符号键盘圆角
|
||||
9: &jpgd9 11 #主键盘数字键盘行间距
|
||||
10: &jpgd10 4 #主键盘数字键盘水平间距
|
||||
|
||||
style:
|
||||
key_height: *jpgd2 #键高
|
||||
keyboards: [default, number, .symbols, english, .number] #键盘配置,所有跳转键盘都需要在这里配置,不然会出错
|
||||
text_size: 12 #编码字体大小 默认值为:12
|
||||
text_height: 20 #编码框高度 默认值为:20
|
||||
candidate_text_size: 24 #候选字体大小 默认值为:24
|
||||
candidate_view_height: 44 #候选高度 默认值为:44
|
||||
candidate_padding: 14 #候选间距 默认值为:14
|
||||
comment_text_size: 14 #逐码字体大小 默认值为:14
|
||||
comment_height: 16 #逐码高度 默认值为:16
|
||||
show_preview: true #是否显示气泡 默认显示
|
||||
round_corner: 0 #值为0的话默认 iphone为4,ipad为8
|
||||
color_scheme: default #配色方案
|
||||
|
||||
|
||||
|
||||
|
||||
#键盘布局
|
||||
preset_keyboards:
|
||||
default:
|
||||
ascii_mode: 0
|
||||
author: "筋斗云"
|
||||
height: *jpgd2
|
||||
horizontal_gap: *jpgd10
|
||||
vertical_gap: *jpgd9
|
||||
round_corner: *jpgd4
|
||||
#现在只支持配置click,swipe_up,swipe_down键盘
|
||||
keys:
|
||||
- {click: q, label: Q, swipe_up: commit1, swipe_down: "一"}
|
||||
- {click: w, label: W, swipe_up: commit2, swipe_down: "二"}
|
||||
- {click: e, label: E, swipe_up: commit3, swipe_down: "三"}
|
||||
- {click: r, label: R, swipe_up: commit4, swipe_down: "四"}
|
||||
- {click: t, label: T, swipe_up: commit5, swipe_down: "五"}
|
||||
- {click: y, label: Y, swipe_up: commit6, swipe_down: "六"}
|
||||
- {click: u, label: U, swipe_up: commit7, swipe_down: "七"}
|
||||
- {click: i, label: I, swipe_up: commit8, swipe_down: "八"}
|
||||
- {click: o, label: O, swipe_up: commit9, swipe_down: "九"}
|
||||
- {click: p, label: P, swipe_up: commit0, swipe_down: "〇"}
|
||||
- {width: 5}
|
||||
- {click: a, label: A, swipe_up: commit~, swipe_down: commit~half}
|
||||
- {click: s, label: S, swipe_up: commitgan, swipe_down: commitgan}
|
||||
- {click: d, label: D, swipe_up: commit:, swipe_down: commit:half}
|
||||
- {click: f, label: F, swipe_up: commit;, swipe_down: commit;half}
|
||||
- {click: g, label: G, swipe_up: bracket3, swipe_down: commit(}
|
||||
- {click: h, label: H, swipe_up: commit), swipe_down: commit)}
|
||||
- {click: j, label: J, swipe_up: commit@, swipe_down: commit@}
|
||||
- {click: k, label: K, swipe_up: quotationMarkFull2, swipe_down: '"'}
|
||||
- {click: l, label: L, swipe_up: quotationMar「」, swipe_down: "'"}
|
||||
- {width: 5}
|
||||
- {click: Shift, width: 14}
|
||||
- {width: 1}
|
||||
- {click: z, label: Z, swipe_up: commit-, swipe_down: commit-}
|
||||
- {click: x, label: X, swipe_up: commit_, swipe_down: commit_}
|
||||
- {click: c, label: C, swipe_up: commitJin, swipe_down: commitJin}
|
||||
- {click: v, label: V, swipe_up: commit?, swipe_down: commit?half}
|
||||
- {click: b, label: B, swipe_up: commit!, swipe_down: commit!half}
|
||||
- {click: n, label: N, swipe_up: commit,, swipe_down: commaHalf}
|
||||
- {click: m, label: M, swipe_up: commit。, swipe_down: periodHalf}
|
||||
- {width: 1}
|
||||
- {click: BackSpace, width: 14}
|
||||
- {click: symbols, width: 14}
|
||||
- {click: .number, width: 12}
|
||||
- {click: space, width: 42}
|
||||
- {click: english, width: 12}
|
||||
- {click: Return, width: 20}
|
||||
name: "默认键盘"
|
||||
width: 10
|
||||
|
||||
english:
|
||||
ascii_mode: 1
|
||||
author: "筋斗云"
|
||||
height: *jpgd2
|
||||
horizontal_gap: *jpgd10
|
||||
vertical_gap: *jpgd9
|
||||
round_corner: *jpgd4
|
||||
keys:
|
||||
- {click: q, swipe_up: "1", swipe_down: "一"}
|
||||
- {click: w, swipe_up: "2", swipe_down: "二"}
|
||||
- {click: e, swipe_up: "3", swipe_down: "三"}
|
||||
- {click: r, swipe_up: "4", swipe_down: "四"}
|
||||
- {click: t, swipe_up: "5", swipe_down: "五"}
|
||||
- {click: y, swipe_up: "6", swipe_down: "六"}
|
||||
- {click: u, swipe_up: "7", swipe_down: "七"}
|
||||
- {click: i, swipe_up: "8", swipe_down: "八"}
|
||||
- {click: o, swipe_up: "9", swipe_down: "九"}
|
||||
- {click: p, swipe_up: "0", swipe_down: "〇"}
|
||||
- {width: 5}
|
||||
- {click: a, swipe_up: "~", swipe_down: "~"}
|
||||
- {click: s, swipe_up: "/", swipe_down: "/"}
|
||||
- {click: d, swipe_up: ":", swipe_down: ":"}
|
||||
- {click: f, swipe_up: ";", swipe_down: ";"}
|
||||
- {click: g, swipe_up: bracket2, swipe_down: "("}
|
||||
- {click: h, swipe_up: ")", swipe_down: ")"}
|
||||
- {click: j, swipe_up: "@", swipe_down: "@"}
|
||||
- {click: k, swipe_up: quotationMarkHalf2, swipe_down: '"'}
|
||||
- {click: l, swipe_up: quotationMarkHalf1, swipe_down: "'"}
|
||||
- {width: 5}
|
||||
- {click: Shift, width: 14}
|
||||
- {width: 1}
|
||||
- {click: z, swipe_up: "-", swipe_down: "-"}
|
||||
- {click: x, swipe_up: "_", swipe_down: "_"}
|
||||
- {click: c, swipe_up: "#", swipe_down: "#"}
|
||||
- {click: v, swipe_up: "?", swipe_down: "?"}
|
||||
- {click: b, swipe_up: "!", swipe_down: "!"}
|
||||
- {click: n, swipe_up: ",", swipe_down: ","}
|
||||
- {click: m, swipe_up: ".", swipe_down: "."}
|
||||
- {width: 1}
|
||||
- {click: BackSpace, width: 14}
|
||||
- {click: symbols, width: 14}
|
||||
- {click: .number, width: 12}
|
||||
- {click: ., swipe_up: ",", width: 10}
|
||||
- {click: space, width: 34}
|
||||
- {click: DefaultKeyboard2, width: 10}
|
||||
- {click: Return, width: 20}
|
||||
name: "英文键盘"
|
||||
width: 10
|
||||
|
||||
|
||||
number:
|
||||
ascii_mode: 0
|
||||
author: "筋斗云"
|
||||
height: *jpgd2
|
||||
horizontal_gap: *jpgd10
|
||||
vertical_gap: *jpgd9
|
||||
round_corner: *jpgd4
|
||||
keys:
|
||||
- {click: 1}
|
||||
- {click: 2}
|
||||
- {click: 3}
|
||||
- {click: 4}
|
||||
- {click: 5}
|
||||
- {click: 6}
|
||||
- {click: 7}
|
||||
- {click: 8}
|
||||
- {click: 9}
|
||||
- {click: 0}
|
||||
- {click: "-"}
|
||||
- {click: "/"}
|
||||
- {click: ":"}
|
||||
- {click: semicolon}
|
||||
- {click: bracket}
|
||||
- {click: bracket1}
|
||||
- {click: "¥"}
|
||||
- {click: "@"}
|
||||
- {click: quotationMarkFull}
|
||||
- {click: quotationMarkFull1}
|
||||
- {click: .symbols1, width: 14}
|
||||
- {width: 3}
|
||||
- {click: periodFull, width: 11}
|
||||
- {click: commaFull, width: 11}
|
||||
- {click: dunHalf, width: 11}
|
||||
- {click: questionMark, width: 11}
|
||||
- {click: point, width: 11}
|
||||
- {click: ., width: 11}
|
||||
- {width: 3}
|
||||
- {click: BackSpace, width: 14}
|
||||
- {click: DefaultKeyboard, width: 25}
|
||||
- {click: space, width: 50}
|
||||
- {click: Return, width: 25}
|
||||
name: "苹果数字键盘"
|
||||
width: 10
|
||||
|
||||
preset_color_schemes:
|
||||
default:
|
||||
back_color: 0xffffff
|
||||
|
||||
|
||||
preset_keys:
|
||||
# 键盘类型需要在这里跳转,目前只支持下面的配置。
|
||||
# 只支持 Shift Return BackSpace space 特殊键盘配置
|
||||
# 现在text的命令只支持:
|
||||
# 1,Left(光标向左移动一格);
|
||||
# 2,Right(光标向右移动一格)
|
||||
# 3,跳转到指定键盘;
|
||||
# 其它暂时不支持,具体看事例;
|
||||
# 现在支持commit命令,直接上屏指定字符
|
||||
#
|
||||
Shift: {label: Shift, send: Shift_L}
|
||||
Return: {label: Enter, send: Return}
|
||||
BackSpace: {send: BackSpace}
|
||||
space: {label: "␣", send: space}
|
||||
number: {label: 123, send: Eisu_toggle, select: number}
|
||||
# english: {label: "abc", send: Eisu_toggle, select: english}
|
||||
# 修改:中文状态下显示「中」
|
||||
english: {label: "中", send: Eisu_toggle, select: english}
|
||||
# symbols: {label: "符", send: Eisu_toggle, select: number}
|
||||
# 修改:直接跳到「更多」
|
||||
symbols: {label: "符", send: Eisu_toggle, select: .symbols}
|
||||
.symbols: {label: "更多", send: Eisu_toggle, select: .symbols} #默认的符号键盘
|
||||
.symbols1: {label: "更多", text: "{.symbols}{DefaultKeyboard}"} #默认的符号键盘
|
||||
.number: {label: 123, send: Eisu_toggle, select: .number} #默认的9宫格数据键盘
|
||||
DefaultKeyboard: {label: 中, send: Eisu_toggle, select: default}
|
||||
# DefaultKeyboard2: {label: 中, send: Eisu_toggle, select: default}
|
||||
# 修改:英文状态下显示「abc」
|
||||
DefaultKeyboard2: {label: "abc", send: Eisu_toggle, select: default}
|
||||
periodHalf: {label: ".", commit: "."} #直接上屏半角句号
|
||||
periodFull: {label: "。", text: "。{DefaultKeyboard}"} #上屏全角句号再跳转到default键盘
|
||||
commaHalf: {label: ",", commit: ","}
|
||||
commaFull: {label: ",", text: ",{DefaultKeyboard}"}
|
||||
dunHalf: {label: "、", text: "、{DefaultKeyboard}"}
|
||||
questionMark: {label: "?", text: "?{DefaultKeyboard}"}
|
||||
point: {label: "!", text: "!{DefaultKeyboard}"}
|
||||
semicolon: {label: ";", text: ";{DefaultKeyboard}"} #先上屏;再跳转到default键盘
|
||||
bracket: {label: "(", text: "(){Left}{DefaultKeyboard}"} #先上屏()光标往左移动一格再跳转到default键盘
|
||||
bracket3: {label: "(", text: "(){Left}"} #先上屏()光标往左移动一格
|
||||
bracket2: {label: "(", text: "(){Left}"} #先上屏()光标往左移动一格
|
||||
bracket1: {label: ")", text: "){DefaultKeyboard}"} #先上屏)再跳转到default键盘
|
||||
quotationMarkFull: {label: "〝", text: "〝〞{Left}{DefaultKeyboard}"}
|
||||
quotationMarkFull1: {label: "〞", text: "〞"{Left}{DefaultKeyboard}"}
|
||||
quotationMarkFull2: {label: "〝", text: "〝〞{Left}"}
|
||||
quotationMar「」: {label: "「", text: "「」{Left}"}
|
||||
quotationMarkHalf1: {label: "\"", text: "\""}
|
||||
quotationMarkHalf2: {label: "\"", text: "\"\"{Left}"}
|
||||
quotationMarkFull1: {label: "\"", text: ""{DefaultKeyboard}"}
|
||||
commit1: {label: "1", commit: "1"}
|
||||
commit2: {label: "2", commit: "2"}
|
||||
commit3: {label: "3", commit: "3"}
|
||||
commit4: {label: "4", commit: "4"}
|
||||
commit5: {label: "5", commit: "5"}
|
||||
commit6: {label: "6", commit: "6"}
|
||||
commit7: {label: "7", commit: "7"}
|
||||
commit8: {label: "8", commit: "8"}
|
||||
commit9: {label: "9", commit: "9"}
|
||||
commit0: {label: "0", commit: "0"}
|
||||
commit~: {label: "~", commit: "~"}
|
||||
commit~half: {label: "~", commit: "~"}
|
||||
commitgan: {label: "/", commit: "/"}
|
||||
commit:: {label: ":", commit: ":"}
|
||||
commit:half: {label: ":", commit: ":"}
|
||||
commit;: {label: ";", commit: ";"}
|
||||
commit;half: {label: ";", commit: ";"}
|
||||
commit(: {label: "(", commit: "("}
|
||||
commit): {label: ")", commit: ")"}
|
||||
commit@: {label: "@", commit: "@"}
|
||||
commit-: {label: "-", commit: "-"}
|
||||
commit_: {label: "_", commit: "_"}
|
||||
commitJin: {label: "#", commit: "#"}
|
||||
commit?: {label: "?", commit: "?"}
|
||||
commit?half: {label: "?", commit: "?"}
|
||||
commit!: {label: "!", commit: "!"}
|
||||
commit!half: {label: "!", commit: "!"}
|
||||
commit,: {label: ",", commit: ","}
|
||||
commit,half: {label: ",", commit: ","}
|
||||
commit。: {label: "。", commit: "。"}
|
||||
commit。half: {label: ".", commit: "."}
|
||||
commit”: {label: "”", commit: "”"}
|
||||
commit_single_quote: {label: "'", commit: "'"}
|
13
others/script/go.mod
Normal file
13
others/script/go.mod
Normal file
@ -0,0 +1,13 @@
|
||||
module script
|
||||
|
||||
go 1.19
|
||||
|
||||
require github.com/deckarep/golang-set/v2 v2.1.0
|
||||
|
||||
require (
|
||||
github.com/commander-cli/cmd v1.5.0 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/stretchr/testify v1.8.1 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
20
others/script/go.sum
Normal file
20
others/script/go.sum
Normal file
@ -0,0 +1,20 @@
|
||||
github.com/commander-cli/cmd v1.5.0 h1:zuMGIdRxQb63R+0Wa9G/g7xtF1fwEERdn+fIIKj5ujI=
|
||||
github.com/commander-cli/cmd v1.5.0/go.mod h1:y9HfHjaDNGRjzpOcMbK43A791NmESwKBkvCSDBCxJ94=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI=
|
||||
github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
55
others/script/main.go
Normal file
55
others/script/main.go
Normal file
@ -0,0 +1,55 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"script/rime"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||
|
||||
// Emoji 检查和更新
|
||||
rime.CheckEmoji()
|
||||
rime.UpdateEmojiTXT()
|
||||
fmt.Println("--------------------------------------------------")
|
||||
|
||||
// 更新搜狗流行词
|
||||
rime.UpdateSogou()
|
||||
fmt.Println("--------------------------------------------------")
|
||||
|
||||
// 为 sogou、ext、tencent 没权重的词条加上权重,有权重的改为下面设置的权重
|
||||
rime.AddWeight(rime.SogouPath, rime.DefaultWeight)
|
||||
rime.AddWeight(rime.ExtPath, rime.DefaultWeight)
|
||||
rime.AddWeight(rime.TencentPath, rime.DefaultWeight)
|
||||
fmt.Println("--------------------------------------------------")
|
||||
|
||||
// 通用检查
|
||||
// flag: 1 只有汉字,2 汉字+注音,3 汉字+注音+权重,4 汉字+权重。
|
||||
go rime.Check(rime.HanziPath, 3)
|
||||
go rime.Check(rime.MainPath, 3)
|
||||
go rime.Check(rime.SogouPath, 3)
|
||||
go rime.Check(rime.ExtPath, 4)
|
||||
go rime.Check(rime.TencentPath, 4)
|
||||
|
||||
wait()
|
||||
|
||||
// 排序
|
||||
rime.Sort(rime.HanziPath, 3)
|
||||
rime.Sort(rime.MainPath, 3)
|
||||
rime.Sort(rime.SogouPath, 3) // 对 main 中已经有的,去重
|
||||
rime.Sort(rime.ExtPath, 4) // 对 main、sogou 中已经有的,去重
|
||||
rime.Sort(rime.TencentPath, 4) // 对 main、sogou、ext 中已经有的,去重
|
||||
}
|
||||
|
||||
func wait() {
|
||||
fmt.Println("检查完成后输入 OK 以继续。。。")
|
||||
var isOK string
|
||||
_, _ = fmt.Scanf("%s", &isOK)
|
||||
if strings.ToLower(isOK) != "ok" {
|
||||
os.Exit(123)
|
||||
}
|
||||
fmt.Println("--------------------------------------------------")
|
||||
}
|
52
others/script/rime/addWeight.go
Normal file
52
others/script/rime/addWeight.go
Normal file
@ -0,0 +1,52 @@
|
||||
package rime
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func AddWeight(dictPath string, weight int) {
|
||||
// 控制台输出
|
||||
printlnTimeCost("加权重\t"+path.Base(dictPath), time.Now())
|
||||
|
||||
// 读取文件到 lines 数组
|
||||
file, err := os.ReadFile(dictPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
lines := strings.Split(string(file), "\n")
|
||||
|
||||
// 逐行遍历,加上 weight
|
||||
isMark := false
|
||||
for i, line := range lines {
|
||||
if !isMark {
|
||||
if strings.Contains(line, mark) {
|
||||
isMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
// 过滤空行
|
||||
if line == "" {
|
||||
continue
|
||||
}
|
||||
// 修改权重为传入的 weight,没有就加上
|
||||
parts := strings.Split(line, "\t")
|
||||
_, err := strconv.Atoi(parts[len(parts)-1])
|
||||
if err != nil {
|
||||
lines[i] = line + "\t" + strconv.Itoa(weight)
|
||||
} else {
|
||||
lines[i] = strings.Join(parts[:len(parts)-1], "\t") + "\t" + strconv.Itoa(weight)
|
||||
}
|
||||
}
|
||||
|
||||
// 重新写入
|
||||
resultString := strings.Join(lines, "\n")
|
||||
err = os.WriteFile(dictPath, []byte(resultString), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
231
others/script/rime/check.go
Normal file
231
others/script/rime/check.go
Normal file
@ -0,0 +1,231 @@
|
||||
package rime
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
mapset "github.com/deckarep/golang-set/v2"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
var specialWords = mapset.NewSet[string]() // 特殊词汇列表,不进行任何检查
|
||||
var polyphoneWords = mapset.NewSet[string]() // 需要注音的多音字列表
|
||||
var wrongWords = mapset.NewSet[string]() // 异形词、错别字列表
|
||||
var filterWords = mapset.NewSet[string]() // 与异形词列表同时使用,过滤掉,一般是包含异形词但不是异形词的,比如「作爱」是错的,但「叫作爱」是正确的。
|
||||
|
||||
// 初始化特殊词汇列表、多音字列表、异形词列表
|
||||
func init() {
|
||||
fmt.Println("check.go init...")
|
||||
// 特殊词汇列表
|
||||
specialWords.Add("狄尔斯–阿尔德反应")
|
||||
specialWords.Add("特里斯坦–达库尼亚")
|
||||
specialWords.Add("特里斯坦–达库尼亚群岛")
|
||||
specialWords.Add("茱莉亚·路易斯-德瑞弗斯")
|
||||
specialWords.Add("科科斯(基林)群岛")
|
||||
specialWords.Add("刚果(金)")
|
||||
specialWords.Add("刚果(布)")
|
||||
specialWords.Add("赛博朋克:边缘行者")
|
||||
specialWords.Add("赛博朋克:边缘跑手")
|
||||
specialWords.Add("赛博朋克:命运之轮")
|
||||
|
||||
// 需要注音的多音字列表
|
||||
polyphoneFile, err := os.Open("rime/多音字.txt")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer polyphoneFile.Close()
|
||||
sc := bufio.NewScanner(polyphoneFile)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if strings.HasPrefix(line, "#") {
|
||||
continue
|
||||
}
|
||||
polyphoneWords.Add(line)
|
||||
}
|
||||
|
||||
// 异形词的两个列表
|
||||
file, err := os.Open("rime/异形词.txt")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
sc = bufio.NewScanner(file)
|
||||
isMark := false
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
|
||||
if strings.Contains(line, "# -_-") {
|
||||
isMark = true
|
||||
continue
|
||||
}
|
||||
|
||||
if !isMark {
|
||||
wrongWords.Add(line)
|
||||
} else {
|
||||
filterWords.Add(line)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check 对传入的词库文件进行检查
|
||||
func Check(dictPath string, flag int) {
|
||||
// 控制台输出
|
||||
defer printlnTimeCost("检查 "+path.Base(dictPath), time.Now())
|
||||
|
||||
// 打开文件
|
||||
file, err := os.Open(dictPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 开始检查!
|
||||
lineNumber := 0
|
||||
isMark := false
|
||||
sc := bufio.NewScanner(file)
|
||||
for sc.Scan() {
|
||||
lineNumber++
|
||||
line := sc.Text()
|
||||
if !isMark {
|
||||
if line == mark {
|
||||
isMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
// 忽略注释,main 里有很多被注释了的词汇,暂时没有删除
|
||||
if strings.HasPrefix(line, "#") {
|
||||
continue
|
||||
}
|
||||
|
||||
// 注释以"#"开头,但不是以"# "开头(没有空格)(强迫症晚期)
|
||||
if strings.HasPrefix(line, "#") && !strings.HasPrefix(line, "# ") {
|
||||
fmt.Println("has # but not #␣", line)
|
||||
}
|
||||
|
||||
// 是否有空行
|
||||
if strings.TrimSpace(line) == "" {
|
||||
fmt.Println("空行,行号:", lineNumber)
|
||||
}
|
||||
|
||||
// 开头结尾是否有空字符
|
||||
if line != strings.TrimSpace(line) {
|
||||
fmt.Printf("开头或结尾有空格:%q\n", line)
|
||||
}
|
||||
|
||||
// +---------------------------------------------------------------
|
||||
// | 通用检查:分割为:词汇text, 编码code, 权重weight
|
||||
// +---------------------------------------------------------------
|
||||
parts := strings.Split(line, "\t")
|
||||
var text, code, weight string
|
||||
if flag == 1 && len(parts) == 1 { // 一列,【汉字】:外部词库
|
||||
text = parts[0]
|
||||
} else if flag == 2 && len(parts) == 2 { // 两列,【汉字+注音】:外部词库
|
||||
text, code = parts[0], parts[1]
|
||||
} else if flag == 3 && len(parts) == 3 { // 三列,【汉字+注音+权重】:字表 main av sogou
|
||||
text, code, weight = parts[0], parts[1], parts[2]
|
||||
} else if flag == 4 && len(parts) == 2 { // 两列,【汉字+权重】:ext tencent
|
||||
text, weight = parts[0], parts[1]
|
||||
} else {
|
||||
log.Fatal("分割错误:", line)
|
||||
}
|
||||
|
||||
// 检查:weight 应该是纯数字
|
||||
if weight != "" {
|
||||
_, err := strconv.Atoi(weight)
|
||||
if err != nil {
|
||||
fmt.Println("weight 非数字:", line)
|
||||
}
|
||||
}
|
||||
|
||||
// 过滤特殊词条
|
||||
if specialWords.Contains(text) {
|
||||
continue
|
||||
}
|
||||
|
||||
// 检查:text 和 weight 不应该含有空格
|
||||
if strings.Contains(text, " ") || strings.Contains(weight, " ") {
|
||||
fmt.Println("text 和 weight 不应该含有空格:", line)
|
||||
}
|
||||
|
||||
// 检查:code 前后不应该含有空格
|
||||
if strings.HasPrefix(code, " ") || strings.HasSuffix(code, " ") {
|
||||
fmt.Println("code 前后不应该含有空格:", line)
|
||||
}
|
||||
|
||||
// 检查:code 是否含有非字母,或没有小写
|
||||
for _, r := range code {
|
||||
if string(r) != " " && !unicode.IsLower(r) {
|
||||
fmt.Println("编码含有非字母或大写字母:", line)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 检查:text 是否含有非汉字内容
|
||||
for _, c := range text {
|
||||
if strings.Contains(text, "·") {
|
||||
break
|
||||
}
|
||||
if !unicode.Is(unicode.Han, c) {
|
||||
fmt.Println("含有非汉字内容:", line, c)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 除了字表,其他词库不应该含有单个的汉字
|
||||
if dictPath != HanziPath && utf8.RuneCountInString(text) == 1 {
|
||||
fmt.Println("意外的单个汉字:", line)
|
||||
}
|
||||
|
||||
// 除了 main ,其他词库不应该含有两个字的词汇
|
||||
if dictPath != MainPath && utf8.RuneCountInString(text) == 2 {
|
||||
fmt.Println("意外的两字词:", line)
|
||||
}
|
||||
|
||||
// 汉字个数应该与拼音个数相等
|
||||
if code != "" {
|
||||
codeCount := len(strings.Split(code, " "))
|
||||
textCount := utf8.RuneCountInString(text)
|
||||
if strings.Contains(text, "·") {
|
||||
textCount -= strings.Count(text, "·")
|
||||
}
|
||||
if strings.HasPrefix(text, "# ") {
|
||||
textCount -= 2
|
||||
}
|
||||
if textCount != codeCount {
|
||||
fmt.Println("汉字个数和拼音个数不相等:", text, code)
|
||||
}
|
||||
}
|
||||
|
||||
// +---------------------------------------------------------------
|
||||
// | 比较耗时的检查
|
||||
// +---------------------------------------------------------------
|
||||
// 多音字注音问题检查
|
||||
go func() {
|
||||
if dictPath == ExtPath || dictPath == TencentPath {
|
||||
for _, word := range polyphoneWords.ToSlice() {
|
||||
if strings.Contains(text, word) {
|
||||
fmt.Printf("多音字注音问题:%q\n", line)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
// 异形词检查
|
||||
go func() {
|
||||
if dictPath != HanziPath && !filterWords.Contains(text) {
|
||||
for _, wrongWord := range wrongWords.ToSlice() {
|
||||
if strings.Contains(text, wrongWord) {
|
||||
fmt.Printf("异形词汇: %s - %s\n", wrongWord, text)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
132
others/script/rime/emoji.go
Normal file
132
others/script/rime/emoji.go
Normal file
@ -0,0 +1,132 @@
|
||||
package rime
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
mapset "github.com/deckarep/golang-set/v2"
|
||||
"log"
|
||||
"os"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
var emojiTXT = "/Users/dvel/Library/Rime/opencc/emoji.txt"
|
||||
var mappingTXT = "/Users/dvel/Library/Rime/opencc/emoji-map.txt"
|
||||
|
||||
type OrderedMap struct {
|
||||
keys []string
|
||||
m map[string][]string
|
||||
}
|
||||
|
||||
// CheckEmoji 检查 Emoji
|
||||
// 检查 emoji-map.txt 格式书写问题
|
||||
// 检查所有词条是否与 main+sogou+ext 词库存在差集
|
||||
func CheckEmoji() {
|
||||
// 控制台输出
|
||||
defer printlnTimeCost("检查 Emoji 差集", time.Now())
|
||||
|
||||
// 打开文件
|
||||
file, err := os.Open(EmojiPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 将 Emoji 加入 set,为检测差集做准备
|
||||
emojiSet := mapset.NewSet[string]()
|
||||
sc := bufio.NewScanner(file)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
// 过滤注释
|
||||
if strings.Contains(line, "#") {
|
||||
continue
|
||||
}
|
||||
// 检查是否包含 Tab
|
||||
if strings.Contains(line, "\t") {
|
||||
log.Fatal("❌ 此行包含 Tab:", line)
|
||||
}
|
||||
// 开头结尾无效的空格
|
||||
if strings.HasPrefix(line, " ") || strings.HasSuffix(line, " ") {
|
||||
log.Fatal("❌ unexpected space:", line)
|
||||
}
|
||||
parts := strings.Split(line, " ")
|
||||
if len(parts) < 2 {
|
||||
log.Fatal("❌ invalid line:", line)
|
||||
}
|
||||
// 加入 emojiSet,顺便用一个 tempSet 查重
|
||||
tempSet := mapset.NewSet[string]()
|
||||
for _, word := range parts[1:] {
|
||||
emojiSet.Add(word)
|
||||
if tempSet.Contains(word) {
|
||||
log.Fatal("❌ 此行有重复映射:", line)
|
||||
} else {
|
||||
tempSet.Add(word)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 检查 emoji 中的词条是否与 main+sogou+ext 词库存在差集
|
||||
for _, word := range emojiSet.Difference(MainSet.Union(SogouSet).Union(ExtSet)).ToSlice() {
|
||||
// 去除英文字母
|
||||
if match, _ := regexp.MatchString(`[A-Za-z]+`, word); match {
|
||||
continue
|
||||
}
|
||||
// 去除一个字的
|
||||
if utf8.RuneCountInString(word) == 1 {
|
||||
continue
|
||||
}
|
||||
log.Fatal("❌ Emoji 差集:", word)
|
||||
}
|
||||
}
|
||||
|
||||
// UpdateEmojiTXT 从 emoji-map.txt 生成或更新 emoji.txt
|
||||
func UpdateEmojiTXT() {
|
||||
// 控制台输出
|
||||
defer printlnTimeCost("更新 emoji.txt", time.Now())
|
||||
|
||||
// 读取 emoji-map.txt
|
||||
mappingFile, err := os.Open(mappingTXT)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer mappingFile.Close()
|
||||
|
||||
om := new(OrderedMap)
|
||||
om.keys = make([]string, 0)
|
||||
om.m = make(map[string][]string)
|
||||
|
||||
sc := bufio.NewScanner(mappingFile)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if strings.HasPrefix(line, "#") {
|
||||
continue
|
||||
}
|
||||
arr := strings.Split(line, " ")
|
||||
for _, word := range arr[1:] {
|
||||
if !contains(om.keys, word) {
|
||||
om.keys = append(om.keys, word)
|
||||
}
|
||||
om.m[word] = append(om.m[word], arr[0])
|
||||
}
|
||||
}
|
||||
|
||||
// 写入 emoji.txt
|
||||
emojiFile, err := os.OpenFile(emojiTXT, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
defer emojiFile.Close()
|
||||
|
||||
for _, key := range om.keys {
|
||||
line := key + "\t" + key + " " + strings.Join(om.m[key], " ") + "\n"
|
||||
_, err := emojiFile.WriteString(line)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
if err := emojiFile.Sync(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
164
others/script/rime/rime.go
Normal file
164
others/script/rime/rime.go
Normal file
@ -0,0 +1,164 @@
|
||||
package rime
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"crypto/sha1"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
mapset "github.com/deckarep/golang-set/v2"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// 一个词条的组成部分
|
||||
type lemma struct {
|
||||
text string // 汉字
|
||||
code string // 编码
|
||||
weight int // 权重
|
||||
}
|
||||
|
||||
const (
|
||||
mark = "# +_+" // 词库中的标记符号,表示从开始检查或排序
|
||||
HanziPath = "/Users/dvel/Library/Rime/cn_dicts/8105.dict.yaml"
|
||||
MainPath = "/Users/dvel/Library/Rime/cn_dicts/base.dict.yaml"
|
||||
SogouPath = "/Users/dvel/Library/Rime/cn_dicts/sogou.dict.yaml"
|
||||
ExtPath = "/Users/dvel/Library/Rime/cn_dicts/ext.dict.yaml"
|
||||
TencentPath = "/Users/dvel/Library/Rime/cn_dicts/tencent.dict.yaml"
|
||||
EmojiPath = "/Users/dvel/Library/Rime/opencc/emoji-map.txt"
|
||||
|
||||
DefaultWeight = 100 // sogou、ext、tencet 词库中默认的权重数值
|
||||
)
|
||||
|
||||
var (
|
||||
MainSet mapset.Set[string]
|
||||
SogouSet mapset.Set[string]
|
||||
ExtSet mapset.Set[string]
|
||||
TencentSet mapset.Set[string]
|
||||
SogouSetWithCode mapset.Set[string]
|
||||
)
|
||||
|
||||
func init() {
|
||||
fmt.Println("rime.go init...")
|
||||
MainSet = readAndSet(MainPath)
|
||||
SogouSet = readAndSet(SogouPath)
|
||||
ExtSet = readAndSet(ExtPath)
|
||||
TencentSet = readAndSet(TencentPath)
|
||||
}
|
||||
|
||||
// readAndSet 读取词库文件为 set
|
||||
func readAndSet(dictPath string) mapset.Set[string] {
|
||||
set := mapset.NewSet[string]()
|
||||
|
||||
file, err := os.Open(dictPath)
|
||||
if err != nil {
|
||||
log.Fatal(set)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
sc := bufio.NewScanner(file)
|
||||
isMark := false
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if !isMark {
|
||||
if strings.Contains(line, mark) {
|
||||
isMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
parts := strings.Split(line, "\t")
|
||||
set.Add(parts[0])
|
||||
}
|
||||
|
||||
return set
|
||||
}
|
||||
|
||||
// printlnTimeCost 打印耗时时间
|
||||
func printlnTimeCost(content string, start time.Time) {
|
||||
fmt.Printf("%s:\t%.2fs\n", content, time.Since(start).Seconds())
|
||||
}
|
||||
|
||||
// printfTimeCost 打印耗时时间
|
||||
func printfTimeCost(content string, start time.Time) {
|
||||
fmt.Printf("%s:\t%.2fs", content, time.Since(start).Seconds())
|
||||
}
|
||||
|
||||
// contains slice 是否包含 item
|
||||
func contains(arr []string, item string) bool {
|
||||
for _, x := range arr {
|
||||
if item == x {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// getSha1 获取文件 sha1
|
||||
func getSha1(dictPath string) string {
|
||||
f, err := os.Open(dictPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
sha1Handle := sha1.New()
|
||||
if _, err := io.Copy(sha1Handle, f); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
return hex.EncodeToString(sha1Handle.Sum(nil))
|
||||
}
|
||||
|
||||
// updateVersion 排序后,如果文件有改动,则修改 version 日期
|
||||
func updateVersion(dictPath string, oldSha1 string) {
|
||||
// 判断文件是否有改变
|
||||
newSha1 := getSha1(dictPath)
|
||||
if newSha1 == oldSha1 {
|
||||
fmt.Println()
|
||||
return
|
||||
}
|
||||
fmt.Println(" ...sorted")
|
||||
|
||||
// 打开文件
|
||||
file, err := os.OpenFile(dictPath, os.O_RDWR, 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 修改那一行
|
||||
arr := make([]string, 0)
|
||||
sc := bufio.NewScanner(file)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if strings.HasPrefix(line, "version:") {
|
||||
s := fmt.Sprintf("version: \"%s\"", time.Now().Format("2006-01-02"))
|
||||
arr = append(arr, s)
|
||||
} else {
|
||||
arr = append(arr, line)
|
||||
}
|
||||
}
|
||||
|
||||
// 重新写入
|
||||
err = file.Truncate(0)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
_, err = file.Seek(0, 0)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
for _, line := range arr {
|
||||
_, err := file.WriteString(line + "\n")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
err = file.Sync()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
294
others/script/rime/sogou.go
Normal file
294
others/script/rime/sogou.go
Normal file
@ -0,0 +1,294 @@
|
||||
package rime
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"github.com/commander-cli/cmd"
|
||||
mapset "github.com/deckarep/golang-set/v2"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode/utf8"
|
||||
)
|
||||
|
||||
var fileterMark = "# *_*" // "# *_*" 和 mark 之间是过滤词列表
|
||||
var filterList = mapset.NewSet[string]() // 过滤词列表,在这个列表里的词汇,不再写入
|
||||
|
||||
// UpdateSogou 更新搜狗流行词
|
||||
func UpdateSogou() {
|
||||
// 控制台输出
|
||||
defer updateVersion(SogouPath, getSha1(SogouPath))
|
||||
defer printfTimeCost("更新搜狗流行词", time.Now())
|
||||
|
||||
makeFilterList() // 0. 准备好过滤词列表
|
||||
downloadSogou() // 1. 下载搜狗流行词加入到文件末尾
|
||||
checkAndWrite() // 2. 过滤、去重、排序
|
||||
PrintNewWords() // 3. 打印新增词汇
|
||||
|
||||
// 弄完了删除临时用的文件,否则 VSCode 全局搜索词汇时会搜索到,影响体验
|
||||
err := os.Remove("./scel2txt/scel/sogou.scel")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
err = os.Remove("./scel2txt/out/luna_pinyin.sogou.dict.yaml")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
err = os.Remove("./scel2txt/out/sogou.txt")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// makeFilterList 准备好过滤词列表 filterList
|
||||
func makeFilterList() {
|
||||
file, err := os.Open(SogouPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
sc := bufio.NewScanner(file)
|
||||
isFilterMark := false
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if line == mark {
|
||||
break
|
||||
}
|
||||
if !isFilterMark {
|
||||
if strings.Contains(line, fileterMark) {
|
||||
isFilterMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
// 判断一些可能出错的情况
|
||||
if !strings.HasPrefix(line, "# ") {
|
||||
log.Fatal("sogou 过滤列表 无效行:", line)
|
||||
}
|
||||
text := strings.TrimPrefix(line, "# ")
|
||||
if strings.ContainsAny(text, " \t") {
|
||||
log.Fatal("sogou 过滤列表 包含空字符:", line)
|
||||
}
|
||||
// 加入过滤词列表
|
||||
filterList.Add(text)
|
||||
}
|
||||
}
|
||||
|
||||
// downloadSogou 下载搜狗流行词加入到文件末尾,如果是新词且不在过滤列表,打印出来
|
||||
func downloadSogou() {
|
||||
// 下载
|
||||
url := "https://pinyin.sogou.com/d/dict/download_cell.php?id=4&name=%E7%BD%91%E7%BB%9C%E6%B5%81%E8%A1%8C%E6%96%B0%E8%AF%8D%E3%80%90%E5%AE%98%E6%96%B9%E6%8E%A8%E8%8D%90%E3%80%91&f=detail"
|
||||
|
||||
// Get the data
|
||||
resp, err := http.Get(url)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
// 创建一个文件用于保存
|
||||
out, err := os.Create("./scel2txt/scel/sogou.scel")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
// 然后将响应流和文件流对接起来
|
||||
_, err = io.Copy(out, resp.Body)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// 用 Python 进行转换
|
||||
c := cmd.NewCommand("python3 scel2txt.py", cmd.WithWorkingDir("./scel2txt"))
|
||||
err = c.Execute()
|
||||
if err != nil {
|
||||
fmt.Println(c.Stderr())
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Printf(c.Stdout())
|
||||
|
||||
// 加入到现有词库的末尾
|
||||
sogouFile, err := os.OpenFile(SogouPath, os.O_WRONLY|os.O_APPEND, 0644)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer sogouFile.Close()
|
||||
download, err := os.ReadFile("./scel2txt/out/sogou.txt")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
_, err = sogouFile.Write(download)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
err = sogouFile.Sync()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// checkAndWrite 过滤、去重、排序
|
||||
func checkAndWrite() {
|
||||
// 打开文件
|
||||
file, err := os.OpenFile(SogouPath, os.O_RDWR, 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 前缀内容和词库切片,以 mark 隔开
|
||||
prefixContents := make([]string, 0) // 前置内容切片
|
||||
contents := make([]lemma, 0) // 词库切片
|
||||
|
||||
isMark := false
|
||||
set := mapset.NewSet[string]() // 去重用的 set
|
||||
sc := bufio.NewScanner(file)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if !isMark {
|
||||
prefixContents = append(prefixContents, line)
|
||||
if strings.Contains(line, mark) {
|
||||
isMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
// 分割
|
||||
parts := strings.Split(line, "\t")
|
||||
var text, code, weight string
|
||||
switch len(parts) {
|
||||
case 2:
|
||||
text, code = parts[0], parts[1]
|
||||
case 3:
|
||||
text, code, weight = parts[0], parts[1], parts[2]
|
||||
default:
|
||||
log.Fatal("分割错误:", line)
|
||||
}
|
||||
// 过滤:两个字及以下的
|
||||
if utf8.RuneCountInString(text) <= 2 {
|
||||
continue
|
||||
}
|
||||
// 过滤:从过滤列表过滤掉
|
||||
if filterList.Contains(text) {
|
||||
continue
|
||||
}
|
||||
// 过滤:去重
|
||||
if set.Contains(text) {
|
||||
continue
|
||||
}
|
||||
set.Add(text)
|
||||
// 过滤:main 中已经有的就不要了
|
||||
if MainSet.Contains(text) {
|
||||
continue
|
||||
}
|
||||
// nue → nve,lue → lve
|
||||
if strings.Contains(code, "nue") {
|
||||
code = strings.ReplaceAll(code, "nue", "nve")
|
||||
}
|
||||
if strings.Contains(code, "lue") {
|
||||
code = strings.ReplaceAll(code, "lue", "lve")
|
||||
}
|
||||
// 加入数组,没权重的默认给 DefaultWeight
|
||||
if weight == "" {
|
||||
contents = append(contents, lemma{text, code, DefaultWeight})
|
||||
} else {
|
||||
weightInt, err := strconv.Atoi(weight)
|
||||
if err != nil {
|
||||
log.Fatal(err, line)
|
||||
}
|
||||
contents = append(contents, lemma{text, code, weightInt})
|
||||
}
|
||||
}
|
||||
|
||||
// 排序
|
||||
sort.Slice(contents, func(i, j int) bool {
|
||||
if contents[i].code != contents[j].code {
|
||||
return contents[i].code < contents[j].code
|
||||
}
|
||||
if contents[i].text != contents[j].text {
|
||||
return contents[i].text < contents[j].text
|
||||
}
|
||||
return false
|
||||
})
|
||||
|
||||
// 准备写入
|
||||
err = file.Truncate(0)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
_, err = file.Seek(0, 0)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// 写入前缀
|
||||
for _, content := range prefixContents {
|
||||
_, err := file.WriteString(content + "\n")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// 写入词库
|
||||
for _, content := range contents {
|
||||
_, err := file.WriteString(content.text + "\t" + content.code + "\t" + strconv.Itoa(content.weight) + "\n")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
err = file.Sync()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// PrintNewWords 打印新增词汇
|
||||
func PrintNewWords() {
|
||||
// 对比 sogou 的新旧 set,找出新词汇
|
||||
newSet := readAndSet(SogouPath)
|
||||
newWords := newSet.Difference(SogouSet)
|
||||
if newWords.Cardinality() == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("新增词汇:")
|
||||
|
||||
// 打印无注音的
|
||||
// for _, word := range newWords.ToSlice() {
|
||||
// fmt.Println(word)
|
||||
// }
|
||||
|
||||
// 把注音也打出来,方便直接校对
|
||||
file, err := os.Open(SogouPath)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
isMark := false
|
||||
sc := bufio.NewScanner(file)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
if !isMark {
|
||||
if strings.Contains(line, mark) {
|
||||
isMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
text := strings.Split(line, "\t")[0]
|
||||
if newWords.Contains(text) {
|
||||
fmt.Println(line)
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println("count: ", newWords.Cardinality())
|
||||
|
||||
// 更新全局的 set,方便后续的检查
|
||||
SogouSet = newSet
|
||||
}
|
217
others/script/rime/sort.go
Normal file
217
others/script/rime/sort.go
Normal file
@ -0,0 +1,217 @@
|
||||
package rime
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
mapset "github.com/deckarep/golang-set/v2"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// Sort 词库排序,顺便去重
|
||||
// flag: 1 只有汉字,2 汉字+注音,3 汉字+注音+权重,4 汉字+权重。
|
||||
func Sort(dictPath string, flag int) {
|
||||
// 控制台输出
|
||||
defer updateVersion(dictPath, getSha1(dictPath))
|
||||
defer printfTimeCost("排序 "+path.Base(dictPath), time.Now())
|
||||
|
||||
// 打开文件
|
||||
file, err := os.OpenFile(dictPath, os.O_RDWR, 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 前缀内容和词库切片,前者原封不动写入,后者排序后写入
|
||||
prefixContents := make([]string, 0) // 前置内容切片
|
||||
contents := make([]lemma, 0) // 词库切片
|
||||
aSet := mapset.NewSet[string]() // 去重用的 set
|
||||
|
||||
isMark := false
|
||||
sc := bufio.NewScanner(file)
|
||||
for sc.Scan() {
|
||||
line := sc.Text()
|
||||
// mark 之前的写入 prefixContents
|
||||
if !isMark {
|
||||
prefixContents = append(prefixContents, line)
|
||||
if line == mark {
|
||||
isMark = true
|
||||
}
|
||||
continue
|
||||
}
|
||||
|
||||
// 分割为 text、code、weight
|
||||
parts := strings.Split(line, "\t")
|
||||
text, code, weight := parts[0], "", ""
|
||||
|
||||
// 检查分割长度
|
||||
if (flag == 1 || flag == 2 || flag == 3) && len(parts) != flag {
|
||||
fmt.Println("分割错误123:", line)
|
||||
}
|
||||
if flag == 4 && len(parts) != 2 {
|
||||
fmt.Println("分割错误4:", line)
|
||||
}
|
||||
|
||||
// 将 main 中注释了但没删除的词汇权重调为 0
|
||||
if dictPath == MainPath && strings.HasPrefix(line, "# ") {
|
||||
parts[2] = "0"
|
||||
}
|
||||
|
||||
// mark 之后的,写入到 contents
|
||||
|
||||
// 自身重复的直接排除,不重复的写入
|
||||
switch flag {
|
||||
case 1: // 一列 【汉字】
|
||||
if aSet.Contains(text) {
|
||||
fmt.Println("重复:", line)
|
||||
continue
|
||||
}
|
||||
aSet.Add(text)
|
||||
contents = append(contents, lemma{text: text})
|
||||
case 2: // 两列 【汉字+注音】
|
||||
text, code = parts[0], parts[1]
|
||||
if aSet.Contains(text + code) {
|
||||
fmt.Println("重复:", line)
|
||||
continue
|
||||
}
|
||||
aSet.Add(text + code)
|
||||
contents = append(contents, lemma{text: text, code: code})
|
||||
case 3: // 三列 【汉字+注音+权重】
|
||||
text, code, weight = parts[0], parts[1], parts[2]
|
||||
if aSet.Contains(text + code) {
|
||||
fmt.Println("重复:", line)
|
||||
continue
|
||||
}
|
||||
aSet.Add(text + code)
|
||||
weight, _ := strconv.Atoi(weight)
|
||||
contents = append(contents, lemma{text: text, code: code, weight: weight})
|
||||
case 4: // 两列 【汉字+权重】
|
||||
text, weight = parts[0], parts[1]
|
||||
if aSet.Contains(text) {
|
||||
fmt.Println("重复:", line)
|
||||
continue
|
||||
}
|
||||
aSet.Add(text)
|
||||
weight, _ := strconv.Atoi(weight)
|
||||
contents = append(contents, lemma{text: text, weight: weight})
|
||||
default:
|
||||
log.Fatal("分割错误:", line)
|
||||
}
|
||||
}
|
||||
|
||||
// 排序:拼音升序、权重降序、最后直接按 Unicode 编码排序
|
||||
sort.Slice(contents, func(i, j int) bool {
|
||||
if contents[i].code != contents[j].code {
|
||||
return contents[i].code < contents[j].code
|
||||
}
|
||||
if contents[i].weight != contents[j].weight {
|
||||
return contents[i].weight > contents[j].weight
|
||||
}
|
||||
if contents[i].text != contents[j].text {
|
||||
return contents[i].text < contents[j].text
|
||||
}
|
||||
return false
|
||||
})
|
||||
|
||||
// 准备写入
|
||||
err = file.Truncate(0)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
_, err = file.Seek(0, 0)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
// 写入前缀
|
||||
for _, line := range prefixContents {
|
||||
_, err := file.WriteString(line + "\n")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
// 字表、main 直接写入,不需要从其他词库去重
|
||||
if dictPath == HanziPath || dictPath == MainPath {
|
||||
for _, line := range contents {
|
||||
_, err := file.WriteString(line.text + "\t" + line.code + "\t" + strconv.Itoa(line.weight) + "\n")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 其他词库需要从一个或多个词库中去重后再写入
|
||||
if dictPath == SogouPath || dictPath == ExtPath || dictPath == TencentPath {
|
||||
var intersect mapset.Set[string] // 交集,有交集的就是重复的,去掉
|
||||
switch dictPath {
|
||||
case SogouPath: // sogou 有和 main 有重复
|
||||
intersect = SogouSet.Intersect(MainSet)
|
||||
case ExtPath: // ext 不和 main+sogou 有重复
|
||||
intersect = ExtSet.Intersect(MainSet.Union(SogouSet))
|
||||
case TencentPath:
|
||||
intersect = TencentSet.Intersect(MainSet.Union(SogouSet).Union(ExtSet))
|
||||
}
|
||||
|
||||
for _, line := range contents {
|
||||
if intersect.Contains(line.text) {
|
||||
fmt.Printf("%s 重复于其他词库:%s\n", strings.Split(path.Base(dictPath), ".")[0], line.text)
|
||||
continue
|
||||
}
|
||||
str := ""
|
||||
if flag == 3 { // sogou
|
||||
str = line.text + "\t" + line.code + "\t" + strconv.Itoa(line.weight) + "\n"
|
||||
} else if flag == 4 { // ext tencent
|
||||
str = line.text + "\t" + strconv.Itoa(line.weight) + "\n"
|
||||
}
|
||||
_, err := file.WriteString(str)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 外部词库或临时文件,只排序,不去重
|
||||
if !contains([]string{HanziPath, MainPath, SogouPath, ExtPath, TencentPath}, dictPath) {
|
||||
switch flag {
|
||||
case 1:
|
||||
for _, line := range contents {
|
||||
_, err := file.WriteString(line.text + "\n")
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
case 2:
|
||||
for _, line := range contents {
|
||||
_, err := file.WriteString(line.text + "\t" + line.code + "\n")
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
case 3:
|
||||
for _, line := range contents {
|
||||
_, err := file.WriteString(line.text + "\t" + line.code + "\t" + strconv.Itoa(line.weight) + "\n")
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
case 4:
|
||||
for _, line := range contents {
|
||||
_, err := file.WriteString(line.text + "\t" + strconv.Itoa(line.weight) + "\n")
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
err = file.Sync()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
161
others/script/rime/多音字.txt
Normal file
161
others/script/rime/多音字.txt
Normal file
@ -0,0 +1,161 @@
|
||||
# 含有需要注音的字的列表:
|
||||
# 例如在 ext tencent 无注音的词库中,检测到词库中有含有「伎俩」的词汇,但是没有注音,
|
||||
# 列出来,手动注音放到 main 中。
|
||||
欻
|
||||
伎俩
|
||||
万俟
|
||||
会计
|
||||
# 偻
|
||||
龟兹
|
||||
拱券
|
||||
单于
|
||||
单县
|
||||
南无
|
||||
参差
|
||||
召陵
|
||||
恐吓
|
||||
恫吓
|
||||
否极泰来
|
||||
臧否
|
||||
引吭
|
||||
伸吭
|
||||
伍员
|
||||
呢子
|
||||
呢料
|
||||
呢喃
|
||||
呢绒
|
||||
呱呱坠地
|
||||
尖沙咀
|
||||
吟哦
|
||||
哕哕
|
||||
哪吒
|
||||
啁哳
|
||||
唼喋
|
||||
嘁嘁喳喳
|
||||
嘚儿
|
||||
噌吰
|
||||
尉犁
|
||||
尉迟
|
||||
工尺
|
||||
崆峒
|
||||
繁峙
|
||||
巷道
|
||||
弄堂
|
||||
里弄
|
||||
倔强
|
||||
差忒
|
||||
戆直
|
||||
屈戌
|
||||
扁舟
|
||||
咋舌
|
||||
咋呼
|
||||
力能扛鼎
|
||||
拾级
|
||||
逼拶
|
||||
提防
|
||||
提溜
|
||||
摩挲
|
||||
南无
|
||||
期年
|
||||
期月
|
||||
蚌山
|
||||
白术
|
||||
朴树
|
||||
枞阳
|
||||
枸橼
|
||||
柜柳
|
||||
柞水
|
||||
栅极
|
||||
栎阳
|
||||
椑柿
|
||||
殷红
|
||||
沌阳
|
||||
沌口
|
||||
泌阳
|
||||
泌城
|
||||
洪洞
|
||||
浚县
|
||||
洴浰
|
||||
溃脓
|
||||
澹台
|
||||
瀑河
|
||||
# 炅
|
||||
炮烙
|
||||
犍为
|
||||
番禺
|
||||
碌碡
|
||||
秘鲁
|
||||
稽首
|
||||
筠连
|
||||
糜子
|
||||
纶巾
|
||||
自给
|
||||
补给
|
||||
给养
|
||||
配给
|
||||
家给人足
|
||||
络子
|
||||
绿林
|
||||
鸭绿江
|
||||
缉鞋口
|
||||
缉边儿
|
||||
缩砂密
|
||||
纰缪
|
||||
体胖
|
||||
脉脉
|
||||
腌臜
|
||||
膀胱
|
||||
膻中
|
||||
无臭
|
||||
乳臭
|
||||
怨艾
|
||||
自艾
|
||||
艾安
|
||||
芫
|
||||
芾
|
||||
茈
|
||||
荑
|
||||
荸荠
|
||||
莎草
|
||||
莘莘
|
||||
莨
|
||||
落枕
|
||||
蔚县
|
||||
枕藉
|
||||
慰藉
|
||||
蕴藉
|
||||
蚌埠
|
||||
裨
|
||||
匕首见
|
||||
匕见
|
||||
解池
|
||||
解数
|
||||
卖解
|
||||
解州
|
||||
博闻强识
|
||||
强识
|
||||
游说
|
||||
说客
|
||||
句读
|
||||
冠豸山
|
||||
贲
|
||||
趑趄
|
||||
趵
|
||||
蹊
|
||||
迫击
|
||||
铅山
|
||||
饼铛
|
||||
阿弥陀佛
|
||||
阿房宫
|
||||
不阿
|
||||
阿胶
|
||||
山阿
|
||||
东阿
|
||||
家雀
|
||||
雀盲眼
|
||||
脖颈
|
||||
颉颃
|
||||
驮子
|
||||
龟兹
|
||||
龟裂
|
||||
般若
|
2631
others/script/rime/异形词.txt
Normal file
2631
others/script/rime/异形词.txt
Normal file
File diff suppressed because it is too large
Load Diff
61
others/script/scel2txt/README.md
Executable file
61
others/script/scel2txt/README.md
Executable file
@ -0,0 +1,61 @@
|
||||
# scel2txt
|
||||
|
||||
搜狗细胞词库转鼠须管(Rime)词库,使用 Python3 实现
|
||||
|
||||
## 使用
|
||||
|
||||
将从[搜狗官方词库网站](https://pinyin.sogou.com/dict/)下载的 `*.scel` 文件放入 `scel` 文件夹,然后运行
|
||||
|
||||
```shell
|
||||
python3 scel2txt.py
|
||||
```
|
||||
|
||||
## 生成的文件
|
||||
|
||||
* 后缀为 .txt 的同名词库文件
|
||||
* 自动合并所有 *.txt 文件到 `luna_pinyin.sogou.dict.yaml`
|
||||
|
||||
|
||||
## 搜狗细胞词库(scel格式文件) 格式说明
|
||||
|
||||
按照一定格式保存的 Unicode 编码文件,其中每两个字节表示一个字符(中文汉字或者英文字母)。
|
||||
|
||||
主要包括两部分:
|
||||
|
||||
1. 全局拼音表,在文件中的偏移值是 0x1540+4, 格式为 (py_idx, py_len, py_str)
|
||||
- py_idx: 两个字节的整数,代表这个拼音的索引
|
||||
- py_len: 两个字节的整数,拼音的字节长度
|
||||
- py_str: 当前的拼音,每个字符两个字节,总长 py_len
|
||||
|
||||
2. 汉语词组表,在文件中的偏移值是 0x2628 或 0x26c4, 格式为 (word_count, py_idx_count, py_idx_data, (word_len, word_str, ext_len, ext){word_count}),其中 (word_len, word, ext_len, ext){word_count} 一共重复 word_count 次, 表示拼音的相同的词一共有 word_count 个
|
||||
- word_count: 两个字节的整数,同音词数量
|
||||
- py_idx_count: 两个字节的整数,拼音的索引个数
|
||||
- py_idx_data: 两个字节表示一个整数,每个整数代表一个拼音的索引,拼音索引数
|
||||
- word_len:两个字节的整数,代表中文词组字节数长度
|
||||
- word_str: 汉语词组,每个中文汉字两个字节,总长度 word_len
|
||||
- ext_len: 两个字节的整数,可能代表扩展信息的长度,好像都是 10
|
||||
- ext: 扩展信息,一共 10 个字节,前两个字节是一个整数(不知道是不是词频),后八个字节全是 0,ext_len 和 ext 一共 12 个字节
|
||||
|
||||
|
||||
## 目前已测试的词库
|
||||
|
||||
* [网络流行新词【官方推荐】](https://pinyin.sogou.com/dict/detail/index/4), 24923 个词
|
||||
* [最详细的全国地名大全](https://pinyin.sogou.com/dict/detail/index/1316), 114572 个词
|
||||
* [开发大神专用词库【官方推荐】](https://pinyin.sogou.com/dict/detail/index/75228), 430 个词
|
||||
* [中国高等院校(大学)大全【官方推荐】](https://pinyin.sogou.com/dict/detail/index/20647), 7192 个词
|
||||
* [宋词精选【官方推荐】](https://pinyin.sogou.com/dict/detail/index/3), 7297 个词
|
||||
* [成语俗语【官方推荐】](https://pinyin.sogou.com/dict/detail/index/15097), 46785 个词
|
||||
* [计算机词汇大全【官方推荐】](https://pinyin.sogou.com/dict/detail/index/15117), 10300 个词
|
||||
* [论语大全【官方推荐】](https://pinyin.sogou.com/dict/detail/index/22406), 2907 个词
|
||||
* [歇后语集锦【官方推荐】](https://pinyin.sogou.com/dict/detail/index/22418), 1926 个词
|
||||
* [数学词汇大全【官方推荐】](https://pinyin.sogou.com/dict/detail/index/15202), 15992 个词
|
||||
* [物理词汇大全【官方推荐】](https://pinyin.sogou.com/dict/detail/index/15203), 13107 个词
|
||||
* [中国历史词汇大全【官方推荐】](https://pinyin.sogou.com/dict/detail/index/15130), 20526 个词
|
||||
* [饮食大全【官方推荐】](https://pinyin.sogou.com/dict/detail/index/15201), 6918 个词
|
||||
* [上海市城市信息精选](https://pinyin.sogou.com/dict/detail/index/19430), 37757 个词
|
||||
* [linux少量术语](https://pinyin.sogou.com/dict/detail/index/225), 136 个词
|
||||
|
||||
## 参考资料
|
||||
|
||||
1. [scel2mmseg](https://raw.githubusercontent.com/archerhu/scel2mmseg/master/scel2mmseg.py)
|
||||
2. [scel-to-txt](https://raw.githubusercontent.com/xwzhong/small-program/master/scel-to-txt/scel2txt.py)
|
168
others/script/scel2txt/scel2txt.py
Executable file
168
others/script/scel2txt/scel2txt.py
Executable file
@ -0,0 +1,168 @@
|
||||
"""
|
||||
搜狗细胞词库转鼠须管(Rime)词库
|
||||
|
||||
搜狗的 scel 词库是按照一定格式保存的 Unicode 编码文件,其中每两个字节表示一个字符(中文汉字或者英文字母),主要两部分:
|
||||
|
||||
1. 全局拼音表,在文件中的偏移值是 0x1540+4, 格式为 (py_idx, py_len, py_str)
|
||||
- py_idx: 两个字节的整数,代表这个拼音的索引
|
||||
- py_len: 两个字节的整数,拼音的字节长度
|
||||
- py_str: 当前的拼音,每个字符两个字节,总长 py_len
|
||||
|
||||
2. 汉语词组表,在文件中的偏移值是 0x2628 或 0x26c4, 格式为 (word_count, py_idx_count, py_idx_data, (word_len, word_str, ext_len, ext){word_count}),其中 (word_len, word, ext_len, ext){word_count} 一共重复 word_count 次, 表示拼音的相同的词一共有 word_count 个
|
||||
- word_count: 两个字节的整数,同音词数量
|
||||
- py_idx_count: 两个字节的整数,拼音的索引个数
|
||||
- py_idx_data: 两个字节表示一个整数,每个整数代表一个拼音的索引,拼音索引数
|
||||
- word_len:两个字节的整数,代表中文词组字节数长度
|
||||
- word_str: 汉语词组,每个中文汉字两个字节,总长度 word_len
|
||||
- ext_len: 两个字节的整数,可能代表扩展信息的长度,好像都是 10
|
||||
- ext: 扩展信息,一共 10 个字节,前两个字节是一个整数(不知道是不是词频),后八个字节全是 0,ext_len 和 ext 一共 12 个字节
|
||||
|
||||
参考资料
|
||||
1. https://raw.githubusercontent.com/archerhu/scel2mmseg/master/scel2mmseg.py
|
||||
2. https://raw.githubusercontent.com/xwzhong/small-program/master/scel-to-txt/scel2txt.py
|
||||
"""
|
||||
import struct
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def read_utf16_str(f, offset=-1, len=2):
|
||||
if offset >= 0:
|
||||
f.seek(offset)
|
||||
string = f.read(len)
|
||||
return string.decode('UTF-16LE')
|
||||
|
||||
|
||||
def read_uint16(f):
|
||||
return struct.unpack('<H', f.read(2))[0]
|
||||
|
||||
|
||||
def get_hz_offset(f):
|
||||
mask = f.read(128)[4]
|
||||
if mask == 0x44:
|
||||
return 0x2628
|
||||
elif mask == 0x45:
|
||||
return 0x26c4
|
||||
else:
|
||||
print("不支持的文件类型(无法获取汉语词组的偏移量)")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def get_dict_meta(f):
|
||||
title = read_utf16_str(f, 0x130, 0x338 - 0x130)
|
||||
category = read_utf16_str(f, 0x338, 0x540 - 0x338)
|
||||
desc = read_utf16_str(f, 0x540, 0xd40 - 0x540)
|
||||
samples = read_utf16_str(f, 0xd40, 0x1540 - 0xd40)
|
||||
return title, category, desc, samples
|
||||
|
||||
|
||||
def get_py_map(f):
|
||||
py_map = {}
|
||||
f.seek(0x1540+4)
|
||||
|
||||
while True:
|
||||
py_idx = read_uint16(f)
|
||||
py_len = read_uint16(f)
|
||||
py_str = read_utf16_str(f, -1, py_len)
|
||||
|
||||
if py_idx not in py_map:
|
||||
py_map[py_idx] = py_str
|
||||
|
||||
# 如果拼音为 zuo,说明是最后一个了
|
||||
if py_str == 'zuo':
|
||||
break
|
||||
return py_map
|
||||
|
||||
|
||||
def get_records(f, file_size, hz_offset, py_map):
|
||||
f.seek(hz_offset)
|
||||
records = []
|
||||
while f.tell() != file_size:
|
||||
word_count = read_uint16(f)
|
||||
py_idx_count = int(read_uint16(f) / 2)
|
||||
|
||||
py_set = []
|
||||
for i in range(py_idx_count):
|
||||
py_idx = read_uint16(f)
|
||||
if (py_map.get(py_idx, None) == None):
|
||||
return records
|
||||
py_set.append(py_map[py_idx])
|
||||
py_str = " ".join(py_set)
|
||||
|
||||
for i in range(word_count):
|
||||
word_len = read_uint16(f)
|
||||
word_str = read_utf16_str(f, -1, word_len)
|
||||
|
||||
# 跳过 ext_len 和 ext 共 12 个字节
|
||||
f.read(12)
|
||||
records.append((py_str, word_str))
|
||||
return records
|
||||
|
||||
|
||||
def get_words_from_sogou_cell_dict(fname):
|
||||
with open(fname, 'rb') as f:
|
||||
hz_offset = get_hz_offset(f)
|
||||
|
||||
(title, category, desc, samples) = get_dict_meta(f)
|
||||
#print("title: %s\ncategory: %s\ndesc: %s\nsamples: %s" %
|
||||
# (title, category, desc, samples))
|
||||
|
||||
py_map = get_py_map(f)
|
||||
|
||||
file_size = os.path.getsize(fname)
|
||||
words = get_records(f, file_size, hz_offset, py_map)
|
||||
return words
|
||||
|
||||
|
||||
def save(records, f):
|
||||
records_translated = list(map(lambda x: "%s\t%s" % (
|
||||
x[1], x[0]), records))
|
||||
f.write("\n".join(records_translated))
|
||||
return records_translated
|
||||
|
||||
|
||||
def main():
|
||||
# 将要转换的词库添加在 scel 目录下
|
||||
scel_files = list(filter(lambda x: x.endswith('.scel'), [
|
||||
i for i in os.listdir("./scel")]))
|
||||
|
||||
dict_file = "luna_pinyin.sogou.dict.yaml"
|
||||
dict_file_content = []
|
||||
dict_file_header = """# Rime dictionary
|
||||
# encoding: utf-8
|
||||
#
|
||||
# Sogou Pinyin Dict - 搜狗细胞词库
|
||||
#
|
||||
# https://pinyin.sogou.com/dict/
|
||||
#
|
||||
# 包括:
|
||||
#
|
||||
%s
|
||||
#
|
||||
|
||||
---
|
||||
name: luna_pinyin.sogou
|
||||
version: "1.0"
|
||||
sort: by_weight
|
||||
use_preset_vocabulary: true
|
||||
...
|
||||
"""
|
||||
sougo_dict_name_list = list(
|
||||
map(lambda x: "# * %s" % x.replace(".scel", ""), scel_files))
|
||||
dict_file_content.append(dict_file_header % "\n".join(sougo_dict_name_list))
|
||||
|
||||
for scel_file in scel_files:
|
||||
records = get_words_from_sogou_cell_dict(
|
||||
os.path.join("./scel", scel_file))
|
||||
print("下载搜狗流行词 %s: %s 个词" % (scel_file, len(records)))
|
||||
with open(os.path.join("./out", scel_file.replace(".scel", ".txt")), "w") as fout:
|
||||
dict_file_content.extend(save(records, fout))
|
||||
# print("-"*80)
|
||||
|
||||
# print("合并后 %s: %s 个词" % (dict_file, len(dict_file_content) - 1))
|
||||
with open(os.path.join("./out", dict_file), "w") as dictfout:
|
||||
dictfout.write("\n".join(dict_file_content))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
238
rime.lua
Executable file
238
rime.lua
Executable file
@ -0,0 +1,238 @@
|
||||
-- Rime lua 扩展:https://github.com/hchunhui/librime-lua
|
||||
-------------------------------------------------------------
|
||||
-- 日期时间
|
||||
-- 提高权重的原因:因为在方案中设置了大于 1 的 initial_quality,导致 rq sj xq dt ts 产出的候选项在所有词语的最后。
|
||||
function date_translator(input, seg)
|
||||
-- 日期
|
||||
if (input == "rq") then
|
||||
local cand = Candidate("date", seg.start, seg._end, os.date("%Y-%m-%d"), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
local cand = Candidate("date", seg.start, seg._end, os.date("%Y/%m/%d"), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
local cand = Candidate("date", seg.start, seg._end, os.date("%Y.%m.%d"), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
local cand = Candidate("date", seg.start, seg._end, os.date("%Y 年 %m 月 %d 日"), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
end
|
||||
-- 时间
|
||||
if (input == "sj") then
|
||||
local cand = Candidate("time", seg.start, seg._end, os.date("%H:%M"), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
local cand = Candidate("time", seg.start, seg._end, os.date("%H:%M:%S"), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
end
|
||||
-- 星期
|
||||
if (input == "xq") then
|
||||
local weakTab = {'日', '一', '二', '三', '四', '五', '六'}
|
||||
local cand = Candidate("week", seg.start, seg._end, "周" .. weakTab[tonumber(os.date("%w") + 1)], "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
local cand = Candidate("week", seg.start, seg._end, "星期" .. weakTab[tonumber(os.date("%w") + 1)], "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
end
|
||||
-- ISO 8601/RFC 3339 的时间格式 (固定东八区)(示例 2022-01-07T20:42:51+08:00)
|
||||
if (input == "dt") then
|
||||
local cand = Candidate("datetime", seg.start, seg._end, os.date("%Y-%m-%dT%H:%M:%S+08:00"), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
local cand = Candidate("time", seg.start, seg._end, os.date("%Y%m%d%H%M%S"), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
end
|
||||
-- 时间戳(十位数,到秒,示例 1650861664)
|
||||
if (input == "ts") then
|
||||
local cand = Candidate("datetime", seg.start, seg._end, os.time(), "")
|
||||
cand.quality = 100
|
||||
yield(cand)
|
||||
end
|
||||
end
|
||||
-------------------------------------------------------------
|
||||
-- 以词定字
|
||||
-- https://github.com/BlindingDark/rime-lua-select-character
|
||||
-- 删除了默认按键,需要在 key_binder(default.custom.yaml)下设置
|
||||
local function utf8_sub(s, i, j)
|
||||
i = i or 1
|
||||
j = j or -1
|
||||
|
||||
if i < 1 or j < 1 then
|
||||
local n = utf8.len(s)
|
||||
if not n then
|
||||
return nil
|
||||
end
|
||||
if i < 0 then
|
||||
i = n + 1 + i
|
||||
end
|
||||
if j < 0 then
|
||||
j = n + 1 + j
|
||||
end
|
||||
if i < 0 then
|
||||
i = 1
|
||||
elseif i > n then
|
||||
i = n
|
||||
end
|
||||
if j < 0 then
|
||||
j = 1
|
||||
elseif j > n then
|
||||
j = n
|
||||
end
|
||||
end
|
||||
|
||||
if j < i then
|
||||
return ""
|
||||
end
|
||||
|
||||
i = utf8.offset(s, i)
|
||||
j = utf8.offset(s, j + 1)
|
||||
|
||||
if i and j then
|
||||
return s:sub(i, j - 1)
|
||||
elseif i then
|
||||
return s:sub(i)
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
|
||||
local function first_character(s)
|
||||
return utf8_sub(s, 1, 1)
|
||||
end
|
||||
|
||||
local function last_character(s)
|
||||
return utf8_sub(s, -1, -1)
|
||||
end
|
||||
|
||||
function select_character(key, env)
|
||||
local engine = env.engine
|
||||
local context = engine.context
|
||||
local commit_text = context:get_commit_text()
|
||||
local config = engine.schema.config
|
||||
|
||||
-- local first_key = config:get_string('key_binder/select_first_character') or 'bracketleft'
|
||||
-- local last_key = config:get_string('key_binder/select_last_character') or 'bracketright'
|
||||
local first_key = config:get_string('key_binder/select_first_character')
|
||||
local last_key = config:get_string('key_binder/select_last_character')
|
||||
|
||||
if (key:repr() == first_key and commit_text ~= "") then
|
||||
engine:commit_text(first_character(commit_text))
|
||||
context:clear()
|
||||
|
||||
return 1 -- kAccepted
|
||||
end
|
||||
|
||||
if (key:repr() == last_key and commit_text ~= "") then
|
||||
engine:commit_text(last_character(commit_text))
|
||||
context:clear()
|
||||
|
||||
return 1 -- kAccepted
|
||||
end
|
||||
|
||||
return 2 -- kNoop
|
||||
end
|
||||
-------------------------------------------------------------
|
||||
-- 长词优先(提升「西安」「提案」「图案」「饥饿」等词汇的优先级)
|
||||
-- 感谢&参考于: https://github.com/tumuyan/rime-melt
|
||||
-- 修改:不提升英文和中英混输的
|
||||
function long_word_filter(input)
|
||||
-- 目前的效果:将 2 个词插入到第 4、5 个候选项
|
||||
local count = 2 -- 提升 count 个词语
|
||||
local idx = 4 -- 插入到第 idx 位
|
||||
|
||||
local l = {}
|
||||
local firstWordLength = 0 -- 记录第一个候选词的长度,提前的候选词至少要比第一个候选词长
|
||||
-- local s1 = 0 -- 记录筛选了多少个英语词条(只提升 count 个词的权重,并且对comment长度过长的候选进行过滤)
|
||||
local s2 = 0 -- 记录筛选了多少个汉语词条(只提升 count 个词的权重)
|
||||
|
||||
local i = 1
|
||||
for cand in input:iter() do
|
||||
leng = utf8.len(cand.text)
|
||||
if (firstWordLength < 1 or i < idx) then
|
||||
i = i + 1
|
||||
firstWordLength = leng
|
||||
yield(cand)
|
||||
-- 不知道这两行是干嘛用的,似乎注释掉也没有影响。
|
||||
-- elseif #table > 30 then
|
||||
-- table.insert(l, cand)
|
||||
-- 注释掉了英文的
|
||||
-- elseif ((leng > firstWordLength) and (s1 < 2)) and (string.find(cand.text, "^[%w%p%s]+$")) then
|
||||
-- s1 = s1 + 1
|
||||
-- if (string.len(cand.text) / string.len(cand.comment) > 1.5) then
|
||||
-- yield(cand)
|
||||
-- end
|
||||
-- 换了个正则,否则中英混输的也会被提升
|
||||
-- elseif ((leng > firstWordLength) and (s2 < count)) and (string.find(cand.text, "^[%w%p%s]+$")==nil) then
|
||||
elseif ((leng > firstWordLength) and (s2 < count)) and (string.find(cand.text, "[%w%p%s]+") == nil) then
|
||||
yield(cand)
|
||||
s2 = s2 + 1
|
||||
else
|
||||
table.insert(l, cand)
|
||||
end
|
||||
end
|
||||
for i, cand in ipairs(l) do
|
||||
yield(cand)
|
||||
end
|
||||
end
|
||||
-------------------------------------------------------------
|
||||
-- 因为英文方案的 initial_quality 大于 1,导致输入「va」时,候选项是「van vain。。。」
|
||||
-- 单字优先,候选项应改为「ā á ǎ à」
|
||||
--
|
||||
-- 不知道这个方法为什么不行啊???
|
||||
-- function v_single_char_first_filter(input)
|
||||
-- if (string.find(input, "v") == 1 and string.len(input) == 2) then
|
||||
-- local l = {}
|
||||
-- for cand in input:iter() do
|
||||
-- if (utf8.len(cand.text) == 1) then
|
||||
-- yield(cand)
|
||||
-- else
|
||||
-- table.insert(l, cand)
|
||||
-- end
|
||||
-- end
|
||||
-- for cand in ipairs(l) do
|
||||
-- yield(cand)
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
--
|
||||
-- 反正是解决了,不知道怎么就解决了,就是最后多一个候选项,没多大影响。
|
||||
function v_single_char_first_filter(input, seg)
|
||||
if (string.find(input, "v") == 1 and string.len(input) == 2) then
|
||||
yield(Candidate("", seg.start, seg._end, "", ""))
|
||||
end
|
||||
end
|
||||
-------------------------------------------------------------
|
||||
-- iRime 九宫格专用,将输入框的数字转为对应的拼音或英文
|
||||
function irime_t9_preedit(input, env)
|
||||
for cand in input:iter() do
|
||||
if (string.find(cand.text, "%w+") ~= nil) then
|
||||
cand:get_genuine().preedit = cand.text
|
||||
else
|
||||
cand:get_genuine().preedit = cand.comment
|
||||
end
|
||||
yield(cand)
|
||||
end
|
||||
end
|
||||
-------------------------------------------------------------
|
||||
-- 限制码长(最多能输入 length_limit 个字符,超过后不再上屏,不设置时默认 100)
|
||||
-- 参考于:https://github.com/rime/weasel/issues/733
|
||||
function code_length_limit_processor(key, env)
|
||||
local ctx = env.engine.context
|
||||
local config = env.engine.schema.config
|
||||
-- 限制
|
||||
local length_limit = config:get_string(env.name_space) or 100
|
||||
if (length_limit ~= nil) then
|
||||
if (string.len(ctx.input) > tonumber(length_limit)) then
|
||||
-- ctx:clear()
|
||||
ctx:pop_input(1) -- 删除输入框中最后个编码字符
|
||||
return 1
|
||||
end
|
||||
end
|
||||
-- 放行
|
||||
return 2
|
||||
end
|
||||
-------------------------------------------------------------
|
15
rime_ice.dict.yaml
Executable file
15
rime_ice.dict.yaml
Executable file
@ -0,0 +1,15 @@
|
||||
# Rime dictionary
|
||||
# encoding: utf-8
|
||||
|
||||
---
|
||||
name: rime_ice
|
||||
version: "1"
|
||||
import_tables:
|
||||
- cn_dicts/8105 # 字表
|
||||
- cn_dicts/base # 基础词库
|
||||
- cn_dicts/sogou # 搜狗流行词,与 main 没有重复
|
||||
- cn_dicts/ext # 扩展词库,与 main sogou 没有重复
|
||||
- cn_dicts/tencent # 腾讯词向量,与 main sogou ext 没有重复,大词库,部署时间较长。
|
||||
- cn_dicts/others # 一些杂项
|
||||
- cn_dicts/private # *******私人词库(联系人之类的),请删除此行再部署,否则鼠须管会报错,小狼毫会只能输入英文******* #
|
||||
...
|
304
rime_ice.schema.yaml
Executable file
304
rime_ice.schema.yaml
Executable file
@ -0,0 +1,304 @@
|
||||
# Rime schema
|
||||
# encoding: utf-8
|
||||
|
||||
|
||||
# 方案说明
|
||||
schema:
|
||||
schema_id: rime_ice
|
||||
name: 雾凇拼音
|
||||
version: "1.0.0"
|
||||
author:
|
||||
- Dvel
|
||||
description: |
|
||||
https://github.com/iDvel/rime-ice
|
||||
dependencies:
|
||||
- melt_eng
|
||||
- liangfen
|
||||
|
||||
|
||||
# 功能开关
|
||||
switches:
|
||||
- name: ascii_mode
|
||||
states: [ 中文, 英文 ]
|
||||
reset: 0
|
||||
- name: full_shape
|
||||
states: [ 半角, 全角 ]
|
||||
reset: 0
|
||||
- name: ascii_punct
|
||||
states: [ 中文标点, 英文标点 ]
|
||||
reset: 0
|
||||
- name: traditionalization
|
||||
states: [ 简体, 繁體 ]
|
||||
reset: 0
|
||||
- name: emoji
|
||||
states: [ 💀, 😄 ]
|
||||
reset: 1
|
||||
|
||||
|
||||
# 输入引擎
|
||||
engine:
|
||||
processors:
|
||||
- lua_processor@select_character # 以词定字
|
||||
- lua_processor@code_length_limit_processor@code_length_limit # 限制码长
|
||||
- ascii_composer
|
||||
- recognizer
|
||||
- key_binder
|
||||
- speller
|
||||
- punctuator
|
||||
- selector
|
||||
- navigator
|
||||
- express_editor
|
||||
segmentors:
|
||||
- ascii_segmentor
|
||||
- matcher
|
||||
- abc_segmentor
|
||||
- punct_segmentor
|
||||
- fallback_segmentor
|
||||
translators:
|
||||
- punct_translator
|
||||
- script_translator
|
||||
- lua_translator@v_single_char_first_filter # v 模式 symbols 优先(否则是英文优先)
|
||||
- lua_translator@date_translator # 时间、日期、星期
|
||||
- table_translator@custom_phrase # 自定义短语(固顶字) custom_phrase.txt
|
||||
- table_translator@melt_eng # 英文输入
|
||||
- reverse_lookup_translator@liangfen # 反查,两分拼字
|
||||
filters:
|
||||
- lua_filter@long_word_filter # 长词优先
|
||||
- simplifier@emoji # Emoji
|
||||
- simplifier@traditionalize # 简繁切换
|
||||
- uniquifier # 去重
|
||||
|
||||
|
||||
# 限制码长,默认 100。(最多能输入 code_length_limit 个字符)
|
||||
# code_length_limit: 100
|
||||
|
||||
|
||||
# 从 default 继承快捷键
|
||||
key_binder:
|
||||
import_preset: default
|
||||
# bindings: # 也可以增加方案专属的快捷键
|
||||
|
||||
|
||||
# Emoji
|
||||
emoji:
|
||||
opencc_config: emoji.json
|
||||
option_name: emoji
|
||||
|
||||
|
||||
# 简繁切换
|
||||
traditionalize:
|
||||
opencc_config: s2t.json # s2t.json | s2hk.json | s2tw.json | s2twp.json 参考 https://github.com/BYVoid/OpenCC
|
||||
option_name: traditionalization
|
||||
tips: all # 转换提示(即是否显示繁体对应的简体): all 都显示 | char 仅单字显示 | none 不显示。
|
||||
|
||||
|
||||
# 自定义短语(固顶字):custom_phrase.txt
|
||||
custom_phrase:
|
||||
dictionary: ""
|
||||
user_dict: custom_phrase
|
||||
db_class: stabledb
|
||||
enable_completion: false # 补全提示
|
||||
enable_sentence: false # 禁止造句
|
||||
initial_quality: 99 # custom_phrase 的权重应该比 pinyin 和 melt_eng 大。
|
||||
|
||||
|
||||
# 挂载拼音主词库
|
||||
translator:
|
||||
dictionary: rime_ice
|
||||
preedit_format: # preedit_format 影响到输入框的显示和“Shift+回车”上屏的字符
|
||||
- xform/([jqxy])v/$1u/ # 显示为 ju qu xu yu
|
||||
# - xform/([nl])v/$1ü/ # 显示为 nü lü
|
||||
# - xform/([nl])ue/$1üe/ # 显示为 nüe lüe
|
||||
- xform/([nl])v/$1v/ # 显示为 nv lv
|
||||
- xform/([nl])ue/$1ve/ # 显示为 nve lve
|
||||
initial_quality: 1.2 # 拼音的权重应该比英文大
|
||||
|
||||
|
||||
# 英文输入方案
|
||||
melt_eng:
|
||||
dictionary: melt_eng
|
||||
spelling_hints: 9
|
||||
enable_completion: true # 补全提示
|
||||
enable_sentence: false # 禁止造句
|
||||
enable_user_dict: false # 禁用用户词典
|
||||
initial_quality: 1.1
|
||||
|
||||
|
||||
# 八股文
|
||||
grammar:
|
||||
language: zh-hans-t-essay-bgw
|
||||
translator/contextual_suggestions: true
|
||||
translator/max_homophones: 7
|
||||
translator/max_homographs: 7
|
||||
|
||||
|
||||
# 引入自己的修改过的 symbols
|
||||
punctuator:
|
||||
# import_preset: symbols
|
||||
import_preset: symbols_custom # 标点符号和 v 模式在里面
|
||||
|
||||
|
||||
# 处理符合特定规则的输入码,如网址、反查
|
||||
recognizer:
|
||||
patterns:
|
||||
email: "^[A-Za-z][-_.0-9A-Za-z]*@.*$"
|
||||
uppercase: "[A-Z][-_+.'0-9A-Za-z]*$"
|
||||
url: "^(www[.]|https?:|ftp[.:]|mailto:|file:).*$|^[a-z]+[.].+$"
|
||||
url_2: "^[a-z]+[.].*" # 支持 google.com(不以 www 开头)的网址,会导致句号不会让句子上屏,或使用句号翻页时需要注释掉
|
||||
win_path: "^[A-Za-z]:.*" # 支持 c:\file\path 之类的路径输入
|
||||
colon: "^[A-Za-z]+:.*" # 上面的超集,冒号在句子中不直接上屏
|
||||
# punct: "^/([0-9]+[a-z]*|[a-z]+)$"
|
||||
punct: "^v([0-9]|10|[A-Za-z]+)$" # 用「v」替换「/」并支持大写
|
||||
reverse_lookup: "^u[A-Za-z]+$" # 响应两分的反查
|
||||
|
||||
|
||||
# 反查:两分(拼字)
|
||||
liangfen:
|
||||
dictionary: liangfen
|
||||
prefix: "u" # 以 u 开头来反查
|
||||
spelling_hints: 9
|
||||
enable_completion: true # 补全提示
|
||||
# tips: 〔两分〕
|
||||
|
||||
|
||||
# 拼写设定
|
||||
speller:
|
||||
# 如果不想让什么标点直接上屏,可以加在 alphabet,或者编辑标点符号为两个及以上的映射
|
||||
alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA
|
||||
delimiter: " '"
|
||||
algebra:
|
||||
### 模糊音
|
||||
# 声母
|
||||
# - derive/^([zcs])h/$1/ # z c s → zh ch sh
|
||||
# - derive/^([zcs])([^h])/$1h$2/ # zh ch sh → z c s
|
||||
# - derive/^l/n/ # n → l
|
||||
# - derive/^n/l/ # l → n
|
||||
# - derive/^f/h/ # …………
|
||||
# - derive/^h/f/ # …………
|
||||
# - derive/^l/r/
|
||||
# - derive/^r/l/
|
||||
# - derive/^g/k/
|
||||
# - derive/^k/g/
|
||||
# 韵母
|
||||
# - derive/ang/an/
|
||||
# - derive/an/ang/
|
||||
# - derive/eng/en/
|
||||
# - derive/en/eng/
|
||||
# - derive/in/ing/
|
||||
# - derive/ing/in/
|
||||
# - derive/ian/iang/
|
||||
# - derive/iang/ian/
|
||||
# - derive/uan/uang/
|
||||
# - derive/uang/uan/
|
||||
# - derive/ai/an/
|
||||
# - derive/an/ai/
|
||||
# - derive/ong/un/
|
||||
# - derive/un/ong/
|
||||
# - derive/ong/on/
|
||||
# - derive/iong/un/
|
||||
# - derive/un/iong/
|
||||
# - derive/ong/eng/
|
||||
# - derive/eng/ong/
|
||||
# 拼音音节
|
||||
# - derive/^fei$/hui/
|
||||
# - derive/^hui$/fei/
|
||||
# - derive/^hu$/fu/
|
||||
# - derive/^fu$/hu/
|
||||
# - derive/^wang$/huang/
|
||||
# - derive/^huang$/wang/
|
||||
|
||||
### 旧时的拼写规则
|
||||
# - derive/un$/uen/
|
||||
# - derive/ui$/uei/
|
||||
# - derive/iu$/iou/
|
||||
|
||||
### 超级简拼
|
||||
- erase/^hm$/ # 响应超级简拼,取消「噷 hm」的独占
|
||||
- erase/^m$/ # 响应超级简拼,取消「呣 m」的独占
|
||||
- erase/^n$/ # 响应超级简拼,取消「嗯 n」的独占
|
||||
- erase/^ng$/ # 响应超级简拼,取消「嗯 ng」的独占
|
||||
- abbrev/^([a-z]).+$/$1/ # 超级简拼
|
||||
- abbrev/^([zcs]h).+$/$1/ # 超级简拼中,zh ch sh 视为整体(ch'sh → 城市),而不是像这样分开(c'h's'h → 吃好睡好)。
|
||||
|
||||
### v u 转换,增加对词库中「nue/nve」「qu/qv」等不同注音的支持
|
||||
- derive/^([nl])ue$/$1ve/
|
||||
- derive/^([nl])ve$/$1ue/
|
||||
- derive/^([jqxy])u/$1v/
|
||||
- derive/^([jqxy])v/$1u/
|
||||
|
||||
### 自动纠错
|
||||
# 有些规则对全拼简拼混输有副作用:如「x'ai 喜爱」被纠错为「xia 下」
|
||||
# zh、ch、sh
|
||||
- derive/([zcs])h(a|e|i|u|ai|ei|an|en|ou|uo|ua|un|ui|uan|uai|uang|ang|eng|ong)$/h$1$2/ # hzi → zhi
|
||||
- derive/([zcs])h([aeiu])$/$1$2h/ # zih → zhi
|
||||
# ai
|
||||
- derive/^([wghkzc])ai$/$1ia/ # wia → wai
|
||||
# ia
|
||||
- derive/([qjx])ia$/$1ai/ # qai → qia
|
||||
# ei
|
||||
- derive/([wtfghkz])ei$/$1ie/
|
||||
# ie
|
||||
- derive/([jqx])ie$/$1ei/
|
||||
# ao
|
||||
- derive/([rtypsdghklzcbnm])ao$/$1oa/
|
||||
# ou
|
||||
- derive/([ypfm])ou$/$1uo/
|
||||
# uo(无)
|
||||
# an
|
||||
- derive/([wrtypsfghklzcbnm])an$/$1na/ # 去掉了 n,不转换常用单词 DNA
|
||||
# en
|
||||
- derive/([wrpsdfghklzcbnm])en$/$1ne/
|
||||
# ang
|
||||
- derive/([wrtypsdfghklzcbnm])ang$/$1nag/
|
||||
- derive/([wrtypsdfghklzcbnm])ang$/$1agn/
|
||||
# eng
|
||||
- derive/([wrtpsdfghklzcbnm])eng$/$1neg/
|
||||
- derive/([wrtpsdfghklzcbnm])eng$/$1egn/
|
||||
# ing
|
||||
- derive/([qtypdjlxbnm])ing$/$1nig/
|
||||
- derive/([qtypdjlxbnm])ing$/$1ign/
|
||||
# ong
|
||||
- derive/([rtysdghklzcn])ong$/$1nog/
|
||||
- derive/([rtysdghklzcn])ong$/$1ogn/
|
||||
# iao
|
||||
- derive/([qtpdjlxbnm])iao$/$1ioa/
|
||||
- derive/([qtpdjlxbnm])iao$/$1oia/
|
||||
# ui
|
||||
- derive/([rtsghkzc])ui$/$1iu/
|
||||
# iu
|
||||
- derive/([qjlxnm])iu$/$1ui/
|
||||
# ian
|
||||
- derive/([qtpdjlxbnm])ian$/$1ain/
|
||||
# - derive/([qtpdjlxbnm])ian$/$1ina/ # 和「李娜、蒂娜、缉拿」等常用词有冲突
|
||||
# in
|
||||
- derive/([qypjlxbnm])in$/$1ni/
|
||||
# iang
|
||||
- derive/([qjlxn])iang$/$1aing/
|
||||
- derive/([qjlxn])iang$/$1inag/
|
||||
# ua
|
||||
- derive/([g|k|h|zh|sh])ua$/$1au/
|
||||
# uai
|
||||
- derive/([g|h|k|zh|ch|sh])uai$/$1aui/
|
||||
- derive/([g|h|k|zh|ch|sh])uai$/$1uia/
|
||||
# uan
|
||||
- derive/([qrtysdghjklzxcn])uan$/$1aun/
|
||||
# - derive/([qrtysdghjklzxcn])uan$/$1una/ # 和「去哪、露娜」等常用词有冲突
|
||||
# un
|
||||
- derive/([qrtysdghjklzxc])un$/$1nu/
|
||||
# ue
|
||||
- derive/([nlyjqx])ue$/$1eu/
|
||||
# uang
|
||||
- derive/([g|h|k|zh|ch|sh])uang$/$1aung/
|
||||
- derive/([g|h|k|zh|ch|sh])uang$/$1uagn/
|
||||
- derive/([g|h|k|zh|ch|sh])uang$/$1unag/
|
||||
- derive/([g|h|k|zh|ch|sh])uang$/$1augn/
|
||||
# iong
|
||||
- derive/([jqx])iong$/$1inog/
|
||||
- derive/([jqx])iong$/$1oing/
|
||||
- derive/([jqx])iong$/$1iogn/
|
||||
- derive/([jqx])iong$/$1oign/
|
||||
# 其他
|
||||
- derive/([rtsdghkzc])o(u|ng)$/$1o/ # do → dou|dong
|
||||
- derive/ong$/on/ # lon → long
|
||||
- derive/([tl])eng$/$1en/ # ten → teng
|
||||
- derive/([qwrtypsdfghjklzxcbnm])([aeio])ng$/$1ng/ # lng → lang、leng、ling、long
|
318
squirrel.custom.yaml
Executable file
318
squirrel.custom.yaml
Executable file
@ -0,0 +1,318 @@
|
||||
patch:
|
||||
# 内置皮肤展示: https://github.com/NavisLab/rime-pifu
|
||||
# 鼠须管作者写的图形化的皮肤设计器: https://github.com/LEOYoon-Tsaw/Squirrel-Designer
|
||||
|
||||
|
||||
# 默认中、英、inline、no_inline 等等设定,参考 https://github.com/rime/squirrel/blob/master/data/squirrel.yaml
|
||||
app_options:
|
||||
# com.apple.Spotlight:
|
||||
# ascii_mode: true # 开启默认英文
|
||||
# com.microsoft.VSCode:
|
||||
# ascii_mode: false # 关闭默认英文
|
||||
|
||||
|
||||
# 选择皮肤,亮色与暗色主题
|
||||
style/color_scheme: purity_of_form_custom
|
||||
style/color_scheme_dark: purity_of_form_custom
|
||||
|
||||
|
||||
# 皮肤列表
|
||||
preset_color_schemes:
|
||||
# 自定义的
|
||||
purity_of_form_custom: # 对 purity_of_form 略微调整,让色彩更柔和点
|
||||
name: 純粹的形式/Purity of Form
|
||||
author: 雨過之後、佛振
|
||||
text_color: 0x333333 #0xc2c2c2
|
||||
back_color: 0x545554 #0x444444
|
||||
candidate_text_color: 0xeeeeee
|
||||
hilited_text_color: 0xeeeeee
|
||||
hilited_back_color: 0x444444
|
||||
hilited_candidate_text_color: 0x000000
|
||||
hilited_candidate_back_color: 0xe3e3e3 #0xfafafa
|
||||
comment_text_color: 0x808080
|
||||
font_face: "PingFangSC"
|
||||
font_point: 18
|
||||
label_font_point: 12
|
||||
|
||||
|
||||
# 下面是内置的皮肤 /Library/Input Methods/Squirrel.app/Contents/SharedSupport/squirrel.yaml
|
||||
|
||||
native:
|
||||
name: 系統配色
|
||||
|
||||
aqua:
|
||||
name: 碧水/Aqua
|
||||
author: 佛振 <chen.sst@gmail.com>
|
||||
text_color: 0x606060
|
||||
back_color: 0xeeeceeee
|
||||
candidate_text_color: 0x000000
|
||||
hilited_text_color: 0x000000
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0xeefa3a0a
|
||||
comment_text_color: 0x5a5a5a
|
||||
hilited_comment_text_color: 0xfcac9d
|
||||
|
||||
azure:
|
||||
name: 青天/Azure
|
||||
author: 佛振 <chen.sst@gmail.com>
|
||||
text_color: 0xcfa677
|
||||
candidate_text_color: 0xffeacc
|
||||
back_color: 0xee8b4e01
|
||||
hilited_text_color: 0xffeacc
|
||||
hilited_candidate_text_color: 0x7ffeff
|
||||
hilited_candidate_back_color: 0x00000000
|
||||
comment_text_color: 0xc69664
|
||||
|
||||
luna:
|
||||
name: 明月/Luna
|
||||
author: 佛振 <chen.sst@gmail.com>
|
||||
text_color: 0xa5a5a5
|
||||
back_color: 0xdd000000
|
||||
candidate_text_color: 0xeceeee
|
||||
hilited_text_color: 0x7fffff
|
||||
hilited_candidate_text_color: 0x7fffff
|
||||
hilited_candidate_back_color: 0x40000000
|
||||
comment_text_color: 0xa5a5a5
|
||||
hilited_comment_text_color: 0x449c9d
|
||||
|
||||
ink:
|
||||
name: 墨池/Ink
|
||||
author: 佛振 <chen.sst@gmail.com>
|
||||
text_color: 0x5a5a5a
|
||||
back_color: 0xeeffffff
|
||||
candidate_text_color: 0x000000
|
||||
hilited_text_color: 0x000000
|
||||
#hilited_back_color: 0xdddddd
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0xcc000000
|
||||
comment_text_color: 0x5a5a5a
|
||||
hilited_comment_text_color: 0x808080
|
||||
|
||||
lost_temple:
|
||||
name: 孤寺/Lost Temple
|
||||
author: 佛振 <chen.sst@gmail.com>, based on ir_black
|
||||
text_color: 0xe8f3f6
|
||||
back_color: 0xee303030
|
||||
hilited_text_color: 0x82e6ca
|
||||
hilited_candidate_text_color: 0x000000
|
||||
hilited_candidate_back_color: 0x82e6ca
|
||||
comment_text_color: 0xbb82e6ca
|
||||
hilited_comment_text_color: 0xbb203d34
|
||||
|
||||
dark_temple:
|
||||
name: 暗堂/Dark Temple
|
||||
author: 佛振 <chen.sst@gmail.com>, based on ir_black
|
||||
text_color: 0x92f6da
|
||||
back_color: 0x222222
|
||||
candidate_text_color: 0xd8e3e6
|
||||
hilited_text_color: 0xffcf9a
|
||||
hilited_back_color: 0x222222
|
||||
hilited_candidate_text_color: 0x92f6da
|
||||
hilited_candidate_back_color: 0x10000000 # 0x333333
|
||||
comment_text_color: 0x606cff
|
||||
|
||||
psionics:
|
||||
name: 幽能/Psionics
|
||||
author: 雨過之後、佛振
|
||||
text_color: 0xc2c2c2
|
||||
back_color: 0x444444
|
||||
candidate_text_color: 0xeeeeee
|
||||
hilited_text_color: 0xeeeeee
|
||||
hilited_back_color: 0x444444
|
||||
hilited_candidate_label_color: 0xfafafa
|
||||
hilited_candidate_text_color: 0xfafafa
|
||||
hilited_candidate_back_color: 0xd4bc00
|
||||
comment_text_color: 0x808080
|
||||
hilited_comment_text_color: 0x444444
|
||||
|
||||
purity_of_form:
|
||||
name: 純粹的形式/Purity of Form
|
||||
author: 雨過之後、佛振
|
||||
text_color: 0xc2c2c2
|
||||
back_color: 0x444444
|
||||
candidate_text_color: 0xeeeeee
|
||||
hilited_text_color: 0xeeeeee
|
||||
hilited_back_color: 0x444444
|
||||
hilited_candidate_text_color: 0x000000
|
||||
hilited_candidate_back_color: 0xfafafa
|
||||
comment_text_color: 0x808080
|
||||
|
||||
purity_of_essence:
|
||||
name: 純粹的本質/Purity of Essence
|
||||
author: 佛振
|
||||
text_color: 0x2c2ccc
|
||||
back_color: 0xfafafa
|
||||
candidate_text_color: 0x000000
|
||||
hilited_text_color: 0x000000
|
||||
hilited_back_color: 0xfafafa
|
||||
hilited_candidate_text_color: 0xeeeeee
|
||||
hilited_candidate_back_color: 0x444444
|
||||
comment_text_color: 0x808080
|
||||
|
||||
starcraft:
|
||||
name: 星際我爭霸/StarCraft
|
||||
author: Contralisk <contralisk@gmail.com>, original artwork by Blizzard Entertainment
|
||||
text_color: 0xccaa88
|
||||
candidate_text_color: 0x30bb55
|
||||
back_color: 0xee000000
|
||||
border_color: 0x1010a0
|
||||
hilited_text_color: 0xfecb96
|
||||
hilited_back_color: 0x000000
|
||||
hilited_candidate_text_color: 0x70ffaf
|
||||
hilited_candidate_back_color: 0x00000000
|
||||
comment_text_color: 0x1010d0
|
||||
hilited_comment_text_color: 0x1010f0
|
||||
|
||||
google:
|
||||
name: 谷歌/Google
|
||||
author: skoj <skoj@qq.com>
|
||||
text_color: 0x666666 #拼音串
|
||||
candidate_text_color: 0x000000 #非第一候选项
|
||||
back_color: 0xFFFFFF #背景
|
||||
border_color: 0xE2E2E2 #边框
|
||||
hilited_text_color: 0x000000 #拼音串高亮
|
||||
hilited_back_color: 0xFFFFFF #拼音串高亮背景
|
||||
hilited_candidate_text_color: 0xFFFFFF #第一候选项
|
||||
hilited_candidate_back_color: 0xCE7539 #第一候选项背景
|
||||
comment_text_color: 0x6D6D6D #注解文字
|
||||
hilited_comment_text_color: 0xEBC6B0 #注解文字高亮
|
||||
|
||||
solarized_rock:
|
||||
name: 曬經石/Solarized Rock
|
||||
author: "Aben <tntaben@gmail.com>, based on Ethan Schoonover's Solarized color scheme"
|
||||
back_color: 0x362b00
|
||||
border_color: 0x362b00
|
||||
text_color: 0x8236d3
|
||||
hilited_text_color: 0x98a12a
|
||||
candidate_text_color: 0x969483
|
||||
comment_text_color: 0xc098a12a
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x8236d3
|
||||
hilited_comment_text_color: 0x362b00
|
||||
|
||||
clean_white:
|
||||
name: 简约白/Clean White
|
||||
author: Chongyu Zhu <lembacon@gmail.com>, based on 搜狗「简约白」
|
||||
horizontal: true
|
||||
candidate_format: '%c %@'
|
||||
corner_radius: 6
|
||||
border_height: 6
|
||||
border_width: 6
|
||||
font_point: 16
|
||||
label_font_point: 12
|
||||
label_color: 0x888888
|
||||
text_color: 0x808080
|
||||
hilited_text_color: 0x000000
|
||||
candidate_text_color: 0x000000
|
||||
comment_text_color: 0x808080
|
||||
back_color: 0xeeeeee
|
||||
hilited_candidate_label_color: 0xa0c98915
|
||||
hilited_candidate_text_color: 0xc98915
|
||||
hilited_candidate_back_color: 0xeeeeee
|
||||
|
||||
apathy:
|
||||
name: 冷漠/Apathy
|
||||
author: LIANG Hai
|
||||
horizontal: true # 水平排列
|
||||
inline_preedit: true #单行显示,false双行显示
|
||||
candidate_format: "%c\u2005%@\u2005" # 编号 %c 和候选词 %@ 前后的空间
|
||||
corner_radius: 5 #候选条圆角
|
||||
border_height: 0
|
||||
border_width: 0
|
||||
back_color: 0xFFFFFF #候选条背景色
|
||||
font_face: "PingFangSC-Regular,HanaMinB" #候选词字体
|
||||
font_point: 16 #候选字词大小
|
||||
text_color: 0x424242 #高亮选中词颜色
|
||||
label_font_face: "STHeitiSC-Light" #候选词编号字体
|
||||
label_font_point: 12 #候选编号大小
|
||||
hilited_candidate_text_color: 0xEE6E00 #候选文字颜色
|
||||
hilited_candidate_back_color: 0xFFF0E4 #候选文字背景色
|
||||
comment_text_color: 0x999999 #拼音等提示文字颜色
|
||||
|
||||
dust:
|
||||
name: 浮尘/Dust
|
||||
author: Superoutman <asticosmo@gmail.com>
|
||||
horizontal: true # 水平排列
|
||||
inline_preedit: true #单行显示,false双行显示
|
||||
candidate_format: "%c\u2005%@\u2005" # 用 1/6 em 空格 U+2005 来控制编号 %c 和候选词 %@ 前后的空间。
|
||||
corner_radius: 2 #候选条圆角
|
||||
border_height: 3 # 窗口边界高度,大于圆角半径才生效
|
||||
border_width: 8 # 窗口边界宽度,大于圆角半径才生效
|
||||
back_color: 0xeeffffff #候选条背景色
|
||||
border_color: 0xE0B693 # 边框色
|
||||
font_face: "HYQiHei-55S Book,HanaMinA Regular" #候选词字体
|
||||
font_point: 14 #候选字词大小
|
||||
label_font_face: "SimHei" #候选词编号字体
|
||||
label_font_point: 10 #候选编号大小
|
||||
label_color: 0xcbcbcb # 预选栏编号颜色
|
||||
candidate_text_color: 0x555555 # 预选项文字颜色
|
||||
text_color: 0x424242 # 拼音行文字颜色,24位色值,16进制,BGR顺序
|
||||
comment_text_color: 0x999999 # 拼音等提示文字颜色
|
||||
hilited_text_color: 0x9e9e9e # 高亮拼音 (需要开启内嵌编码)
|
||||
hilited_candidate_text_color: 0x000000 # 第一候选项文字颜色
|
||||
hilited_candidate_back_color: 0xfff0e4 # 第一候选项背景背景色
|
||||
hilited_candidate_label_color: 0x555555 # 第一候选项编号颜色
|
||||
hilited_comment_text_color: 0x9e9e9e # 注解文字高亮
|
||||
|
||||
mojave_dark:
|
||||
name: 沙漠夜/Mojave Dark
|
||||
author: xiehuc <xiehuc@gmail.com>
|
||||
horizontal: true # 水平排列
|
||||
inline_preedit: true # 单行显示,false双行显示
|
||||
candidate_format: "%c\u2005%@" # 用 1/6 em 空格 U+2005 来控制编号 %c 和候选词 %@ 前后的空间。
|
||||
corner_radius: 5 # 候选条圆角
|
||||
hilited_corner_radius: 3 # 高亮圆角
|
||||
border_height: 6 # 窗口边界高度,大于圆角半径才生效
|
||||
border_width: 6 # 窗口边界宽度,大于圆角半径才生效
|
||||
font_face: "PingFangSC" # 候选词字体
|
||||
font_point: 16 # 候选字词大小
|
||||
label_font_point: 14 # 候选编号大小
|
||||
|
||||
text_color: 0xdedddd # 拼音行文字颜色,24位色值,16进制,BGR顺序
|
||||
back_color: 0x252320 # 候选条背景色
|
||||
label_color: 0x888785 # 预选栏编号颜色
|
||||
border_color: 0x020202 # 边框色
|
||||
candidate_text_color: 0xdedddd # 预选项文字颜色
|
||||
hilited_text_color: 0xdedddd # 高亮拼音 (需要开启内嵌编码)
|
||||
hilited_back_color: 0x252320 # 高亮拼音 (需要开启内嵌编码)
|
||||
hilited_candidate_text_color: 0xffffff # 第一候选项文字颜色
|
||||
hilited_candidate_back_color: 0xcb5d00 # 第一候选项背景背景色
|
||||
hilited_candidate_label_color: 0xffffff # 第一候选项编号颜色
|
||||
comment_text_color: 0xdedddd # 拼音等提示文字颜色
|
||||
#hilited_comment_text_color: 0xdedddd # 注解文字高亮
|
||||
|
||||
solarized_light:
|
||||
name: 曬經・日/Solarized Light
|
||||
author: 雪齋 <lyc20041@gmail.com>
|
||||
color_space: display_p3 # Only available on macOS 10.12+
|
||||
back_color: 0xf0E5F6FB #Lab 97, 0, 10
|
||||
border_color: 0xf0EDFFFF #Lab 100, 0, 10
|
||||
preedit_back_color: 0xf0D7E8ED #Lab 92, 0, 10
|
||||
candidate_text_color: 0x3942CB #Lab 50, 65, 45
|
||||
label_color: 0x2566C6 #Lab 55, 45, 65
|
||||
comment_text_color: 0x8144C2 #Lab 50, 65, -5
|
||||
text_color: 0x756E5D #Lab 45, -7, -7
|
||||
hilited_back_color: 0xf0C9DADF #Lab 87, 0, 10
|
||||
hilited_candidate_back_color: 0x403516 #Lab 20, -12, -12
|
||||
hilited_candidate_text_color: 0x989F52 #Lab 60, -35, -5
|
||||
hilited_candidate_label_color: 0xCC8947 #Lab 55, -10, -45
|
||||
hilited_comment_text_color: 0x289989 #Lab 60, -20, 65
|
||||
hilited_text_color: 0xBE706D #Lab 50, 15, -45
|
||||
|
||||
solarized_dark:
|
||||
name: 曬經・月/Solarized Dark
|
||||
author: 雪齋 <lyc20041@gmail.com>
|
||||
color_space: display_p3 # Only available on macOS 10.12+
|
||||
back_color: 0xf0352A0A #Lab 15, -12, -12
|
||||
border_color: 0xf02A1F00 #Lab 10, -12, -12
|
||||
preedit_back_color: 0xf0403516 #Lab 20, -12, -12
|
||||
candidate_text_color: 0x989F52 #Lab 60, -35, -5
|
||||
label_color: 0xCC8947 #Lab 55, -10, -45
|
||||
comment_text_color: 0x289989 #Lab 60, -20, 65
|
||||
text_color: 0xA1A095 #Lab 65, -05, -02
|
||||
hilited_back_color: 0xf04C4022 #Lab 25, -12, -12
|
||||
hilited_candidate_back_color: 0xD7E8ED #Lab 92, 0, 10
|
||||
hilited_candidate_text_color: 0x3942CB #Lab 50, 65, 45
|
||||
hilited_candidate_label_color: 0x2566C6 #Lab 55, 45, 65
|
||||
hilited_comment_text_color: 0x8144C2 #Lab 50, 65, -5
|
||||
hilited_text_color: 0x2C8BAE #Lab 60, 10, 65
|
382
symbols_custom.yaml
Normal file
382
symbols_custom.yaml
Normal file
@ -0,0 +1,382 @@
|
||||
# Rime's punctuation and symbols
|
||||
# encoding: utf-8
|
||||
#
|
||||
# ---
|
||||
#
|
||||
# copy from `/Library/Input Methods/Squirrel.app/Contents/SharedSupport/symbols.yaml`
|
||||
#
|
||||
# punctuator 下面包含三个子项:
|
||||
# full_shape: 默认
|
||||
# half_shape: 标点符号全部直接上屏,和 macOS 自带输入法的区别是 '|' 是半角的,'`'(反引号)没有改成 '·'(间隔号)。
|
||||
# symbols: 原「/」模式 改为了「v」模式,映射的汉字改为简体,一些韵母前四位顺序改为「一声、二声、三声、四声、其他...」如输入 va 得到 ā á ǎ à
|
||||
|
||||
|
||||
config_version: '2022-10-29'
|
||||
|
||||
|
||||
punctuator:
|
||||
full_shape:
|
||||
' ' : { commit: ' ' }
|
||||
',' : { commit: , }
|
||||
'.' : { commit: 。 }
|
||||
'<' : [ 《, 〈, «, ‹ ]
|
||||
'>' : [ 》, 〉, », › ]
|
||||
'/' : [ /, ÷ ]
|
||||
'?' : { commit: ? }
|
||||
';' : { commit: ; }
|
||||
':' : { commit: : }
|
||||
'''' : { pair: [ '‘', '’' ] }
|
||||
'"' : { pair: [ '“', '”' ] }
|
||||
'\' : [ 、, \ ]
|
||||
'|' : [ ·, |, '§', '¦' ]
|
||||
'`' : `
|
||||
'~' : ~
|
||||
'!' : { commit: ! }
|
||||
'@' : [ @, ☯ ]
|
||||
'#' : [ #, ⌘ ]
|
||||
'%' : [ %, '°', '℃' ]
|
||||
'$' : [ ¥, '$', '€', '£', '¥', '¢', '¤' ]
|
||||
'^' : { commit: …… }
|
||||
'&' : &
|
||||
'*' : [ *, ·, ・, ×, ※, ❂ ]
|
||||
'(' : (
|
||||
')' : )
|
||||
'-' : -
|
||||
'_' : ——
|
||||
'+' : +
|
||||
'=' : =
|
||||
'[' : [ 「, 【, 〔, [ ]
|
||||
']' : [ 」, 】, 〕, ] ]
|
||||
'{' : [ 『, 〖, { ]
|
||||
'}' : [ 』, 〗, } ]
|
||||
half_shape:
|
||||
',' : ','
|
||||
'.' : '。'
|
||||
'<' : '《'
|
||||
'>' : '》'
|
||||
'/' : '/'
|
||||
'?' : '?'
|
||||
';' : ';'
|
||||
':' : ':'
|
||||
'''' : { pair: [ '‘', '’' ] }
|
||||
'"' : { pair: [ '“', '”' ] }
|
||||
'\' : '、'
|
||||
'|' : '|'
|
||||
'`' : '`'
|
||||
'~' : '~'
|
||||
'!' : '!'
|
||||
'@' : '@'
|
||||
'#' : '#'
|
||||
'%' : '%'
|
||||
'$' : '¥'
|
||||
'^' : '……'
|
||||
'&' : '&'
|
||||
'*' : '*'
|
||||
'(' : '('
|
||||
')' : ')'
|
||||
'-' : '-'
|
||||
'_' : ——
|
||||
'+' : '+'
|
||||
'=' : '='
|
||||
'[' : '【'
|
||||
']' : '】'
|
||||
'{' : '「'
|
||||
'}' : '」'
|
||||
symbols:
|
||||
#符号、电脑
|
||||
'vfh': [ ©, ®, ℗, ℠, ™, ℡, ℻, ☇, ☈, ☉, ☊, ☋, ☌, ☍, ☎, ☏, ☐, ☑, ☒, ☓, ☕, ☖, ☗, ⛉, ⛊, ☘, ☙, ☚, ☛, ☜, ☝, ☞, ☟, ☠, ☡, ☢, ☣, ☤, ☥, ☦, ☧, ☨, ☩, ☪, ☫, ☬, ☭, ☮, ☯, ☸, ♨, ♰, ♱, ♲, ♳, ♴, ♵, ♶, ♷, ♸, ♹, ♺, ♻, ♼, ♽, ♾, ♿, ⚆, ⚇, ⚈, ⚉, ⚐, ⚑, ⚒, ⚓, ⚔, ⚕, ⚖, ⚗, ⚘, ⚙, ⚚, ⚛, ⚜, ⚝, ⚞, ⚟, ⚠, ⚡, ⚰, ⚱, ⚲, ⚳, ⚴, ⚵, ⚶, ⚷, ⚸, ⚹, ⚺, ⚻, ⚼, ⚽, ⚾, ⚿, ⛀, ⛁, ⛂, ⛃, ⛋, ⛌, ⛍, ⛎, ⛏, ⛐, ⛑, ⛒, ⛓, ⛔, ⛕, ⛖, ⛗, ⛘, ⛙, ⛚, ⛛, ⛜, ⛝, ⛞, ⛟, ⛠, ⛡, ⛢, ⛣, ⛨, ⛩, ⛪, ⛫, ⛬, ⛭, ⛮, ⛯, ⛰, ⛱, ⛲, ⛳, ⛴, ⛵, ⛶, ⛷, ⛸, ⛹, ⛺, ⛻, ⛼, ⛽, ⛾, ⛿ ]
|
||||
'vdn': [ ❖, ⌘, ⌃, ⌥, ⎇, ⇧, ⇪, ␣, ⇥, ⇤, ↩, ⌅, ⌤, ⌫, ⌦, ⌧, ⎋, ⌨, ◁, ⌀, ⌖, ⌗, ⏏, ↖, ↘, ⇞, ⇟, ⌚, ⏰, ⏱, ⏲, ⏳, ⌛, ⌜, ⌝⌞⌟, ⍑, ⏩, ⏪, ⏫, ⏬, ⏭, ⏮, ⏯ ]
|
||||
#象棋、麻将、色子、扑克
|
||||
'vxq': [ ♔, ♕, ♖, ♗, ♘, ♙, ♚, ♛, ♜, ♝, ♞, ♟ ]
|
||||
'vmj': [ 🀀, 🀁, 🀂, 🀃, 🀄, 🀅, 🀆, 🀇, 🀈, 🀉, 🀊, 🀋, 🀌, 🀍, 🀎, 🀏, 🀐, 🀑, 🀒, 🀓, 🀔, 🀕, 🀖, 🀗, 🀘, 🀙, 🀚, 🀛, 🀜, 🀝, 🀞, 🀟, 🀠, 🀡, 🀢, 🀣, 🀤, 🀥, 🀦, 🀧, 🀨, 🀩, 🀪, 🀫 ]
|
||||
'vsz': [ ⚀, ⚁, ⚂, ⚃, ⚄, ⚅ ]
|
||||
'vpk': [ ♠, ♥, ♣, ♦, ♤, ♡, ♧, ♢ ]
|
||||
#表情
|
||||
'vbq': [ ☻, ☺, ☹ ]
|
||||
#天气
|
||||
'vtq': [ ☀, ☁, ⛅, ⛈, ⛆, ☂, ☔, ☃, ⛄, ⛇ ]
|
||||
#音乐
|
||||
'vyy': [ 𝄞, ♩, ♪, ♫, ♬, ♭, ♮, ♯ ]
|
||||
#两性
|
||||
'vlx': [ ♂, ♀, ⚢, ⚣, ⚤, ⚥, ⚦, ⚧, ⚨, ⚩, ⚪, ⚫, ⚬, ⚭, ⚮, ⚯ ]
|
||||
#八卦、八卦名、六十四卦、六十四卦名、太玄经
|
||||
'vbg': [ ☰, ☱, ☲, ☳, ☴, ☵, ☶, ☷ ]
|
||||
'vbgm': [ 乾, 兑, 离, 震, 巽, 坎, 艮, 坤 ]
|
||||
'vlssg': [ ䷀, ䷁, ䷂, ䷃, ䷄, ䷅, ䷆, ䷇, ䷈, ䷉, ䷊, ䷋, ䷌, ䷍, ䷎, ䷏, ䷐, ䷑, ䷒, ䷓, ䷔, ䷕, ䷖, ䷗, ䷘, ䷙, ䷚, ䷛, ䷜, ䷝, ䷞, ䷟, ䷠, ䷡, ䷢, ䷣, ䷤, ䷥, ䷦, ䷧, ䷨, ䷩, ䷪, ䷫, ䷬, ䷭, ䷮, ䷯, ䷰, ䷱, ䷲, ䷳, ䷴, ䷵, ䷶, ䷷, ䷸, ䷹, ䷺, ䷻, ䷼, ䷽, ䷾, ䷿ ]
|
||||
'vlssgm': [ 乾, 坤, 屯, 蒙, 需, 讼, 师, 比, 小畜, 履, 泰, 否, 同人, 大有, 谦, 豫, 随, 蛊, 临, 观, 噬嗑, 贲, 剥, 复, 无妄, 大畜, 颐, 大过, 坎, 离, 咸, 恒, 遯, 大壮, 晋, 明夷, 家人, 睽, 蹇, 解, 损, 益, 夬, 姤, 萃, 升, 困, 井, 革, 鼎, 震, 艮, 渐, 归妹, 丰, 旅, 巽, 兑, 涣, 节, 中孚, 小过, 既济, 未济 ]
|
||||
'vtxj': [ ⚊, ⚋, ⚌, ⚍, ⚎, ⚏, 𝌀, 𝌁, 𝌂, 𝌃, 𝌄, 𝌅, 𝌆, 𝌇, 𝌈, 𝌉, 𝌊, 𝌋, 𝌌, 𝌍, 𝌎, 𝌏, 𝌐, 𝌑, 𝌒, 𝌓, 𝌔, 𝌕, 𝌖, 𝌗, 𝌘, 𝌙, 𝌚, 𝌛, 𝌜, 𝌝, 𝌞, 𝌟, 𝌠, 𝌡, 𝌢, 𝌣, 𝌤, 𝌥, 𝌦, 𝌧, 𝌨, 𝌩, 𝌪, 𝌫, 𝌬, 𝌭, 𝌮, 𝌯, 𝌰, 𝌱, 𝌲, 𝌳, 𝌴, 𝌵, 𝌶, 𝌷, 𝌸, 𝌹, 𝌺, 𝌻, 𝌼, 𝌽, 𝌾, 𝌿, 𝍀, 𝍁, 𝍂, 𝍃, 𝍄, 𝍅, 𝍆, 𝍇, 𝍈, 𝍉, 𝍊, 𝍋, 𝍌, 𝍍, 𝍎, 𝍏, 𝍐, 𝍑, 𝍒, 𝍓, 𝍔, 𝍕, 𝍖 ]
|
||||
#天体、星座、星座名、十二宫
|
||||
'vtt': [ ☄, ☼, ☽, ☾, ☿, ♀, ♁, ♂, ♃, ♄, ♅, ♆, ♇ ]
|
||||
'vxz': [ ♈, ♉, ♊, ♋, ♌, ♍, ♎, ♏, ♐, ♑, ♒, ♓ ]
|
||||
'vxzm': [ 白羊座, 金牛座, 双子座, 巨蟹座, 狮子座, 室女座, 天秤座, 天蝎座, 人马座, 摩羯座, 宝瓶座, 双鱼座 ]
|
||||
'vxzg': [ 白羊宫, 金牛宫, 双子宫, 巨蟹宫, 狮子宫, 室女宫, 天秤宫, 天蝎宫, 人马宫, 摩羯宫, 宝瓶宫, 双鱼宫 ]
|
||||
#星号
|
||||
'vxh': [ ★, ☆, ⛤, ⛥, ⛦, ⛧, ✡, ❋, ❊, ❉, ❈, ❇, ❆, ❅, ❄, ❃, ❂, ❁, ❀, ✿, ✾, ✽, ✼, ✻, ✺, ✹, ✸, ✷, ✶, ✵, ✴, ✳, ✲, ✱, ✰, ✯, ✮, ✭, ✬, ✫, ✪, ✩, ✧, ✦, ✥, ✤, ✣, ✢ ]
|
||||
#方块
|
||||
'vfk': [ ▀, ▁, ▂, ▃, ▄, ▅, ▆, ▇, █, ▉, ▊, ▋, ▌, ▍, ▎, ▏, ▐, ░, ▒, ▓, ▔, ▕, ▖, ▗, ▘, ▙, ▚, ▛, ▜, ▝, ▞, ▟ ]
|
||||
#几何
|
||||
'vjh': [ ■, □, ▢, ▣, ▤, ▥, ▦, ▧, ▨, ▩, ▪, ▫, ▬, ▭, ▮, ▯, ▰, ▱, ▲, △, ▴, ▵, ▶, ▷, ▸, ▹, ►, ▻, ▼, ▽, ▾, ▿, ◀, ◁, ◂, ◃, ◄, ◅, ◆, ◇, ◈, ◉, ◊, ○, ◌, ◍, ◎, ●, ◐, ◑, ◒, ◓, ◔, ◕, ◖, ◗, ◘, ◙, ◚, ◛, ◜, ◝, ◞, ◟, ◠, ◡, ◢, ◣, ◤, ◥, ◦, ◧, ◨, ◩, ◪, ◫, ◬, ◭, ◮, ◯, ◰, ◱, ◲, ◳, ◴, ◵, ◶, ◷, ◸, ◹, ◺, ◻, ◼, ◽, ◾, ◿ ]
|
||||
#箭头
|
||||
'vjt': [ ↑, ↓, ←, →, ↕, ↔, ↖, ↗, ↙, ↘, ↚, ↛, ↮, ↜, ↝, ↞, ↟, ↠, ↡, ↢, ↣, ↤, ↥, ↦, ↧, ↨, ↩, ↪, ↫, ↬, ↭, ↯, ↰, ↱, ↲, ↳, ↴, ↵, ↶, ↷, ↸, ↹, ↺, ↻, ↼, ↽, ↾, ↿, ⇀, ⇁, ⇂, ⇃, ⇄, ⇅, ⇆, ⇇, ⇈, ⇉, ⇊, ⇋, ⇌, ⇐, ⇍, ⇑, ⇒, ⇏, ⇓, ⇔, ⇎, ⇕, ⇖, ⇗, ⇘, ⇙, ⇚, ⇛, ⇜, ⇝, ⇞, ⇟, ⇠, ⇡, ⇢, ⇣, ⇤, ⇥, ⇦, ⇧, ⇨, ⇩, ⇪, ⇫, ⇬, ⇭, ⇮, ⇯, ⇰, ⇱, ⇲, ⇳, ⇴, ⇵, ⇶, ⇷, ⇸, ⇹, ⇺, ⇻, ⇼, ⇽, ➔, ➘, ➙, ➚, ➛, ➜, ➝, ➞, ➟, ➠, ➡, ➢, ➣, ➤, ➥, ➦, ➧, ➨, ➩, ➪, ➫, ➬, ➭, ➮, ➱, ➲, ➳, ➴, ➵, ➶, ➷, ➸, ➹, ➺, ➻, ➼, ➽, ➾ ]
|
||||
#数学
|
||||
'vsx': [ ±, ÷, ×, ∈, ∏, ∑, -, +, <, ≮, =, ≠, >, ≯, ∕, √, ∝, ∞, ∟, ∠, ∥, ∧, ∨, ∩, ∪, ∫, ∮, ∴, ∵, ∷, ∽, ≈, ≌, ≒, ≡, ≤, ≥, ≦, ≧, ⊕, ⊙, ⊥, ⊿, ㏑, ㏒ ]
|
||||
#数字+圆v弧v点
|
||||
'vszq': [ ⓪, ①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧, ⑨, ⑩, ⑪, ⑫, ⑬, ⑭, ⑮, ⑯, ⑰, ⑱, ⑲, ⑳, ㉑, ㉒, ㉓, ㉔, ㉕, ㉖, ㉗, ㉘, ㉙, ㉚, ㉛, ㉜, ㉝, ㉞, ㉟, ㊱, ㊲, ㊳, ㊴, ㊵, ㊶, ㊷, ㊸, ㊹, ㊺, ㊻, ㊼, ㊽, ㊾, ㊿, ⓿, ❶, ❷, ❸, ❹, ❺, ❻, ❼, ❽, ❾, ❿, ⓫, ⓬, ⓭, ⓮, ⓯, ⓰, ⓱, ⓲, ⓳, ⓴ ]
|
||||
'vszh': [ ⑴, ⑵, ⑶, ⑷, ⑸, ⑹, ⑺, ⑻, ⑼, ⑽, ⑾, ⑿, ⒀, ⒁, ⒂, ⒃, ⒄, ⒅, ⒆, ⒇ ]
|
||||
'vszd': [ ⒈, ⒉, ⒊, ⒋, ⒌, ⒍, ⒎, ⒏, ⒐, ⒑, ⒒, ⒓, ⒔, ⒕, ⒖, ⒗, ⒘, ⒙, ⒚, ⒛ ]
|
||||
#字母+圈v弧
|
||||
'vzmq': [ ⓐ, Ⓐ, ⓑ, Ⓑ, ⓒ, Ⓒ, ⓓ, Ⓓ, ⓔ, Ⓔ, ⓕ, Ⓕ, ⓖ, Ⓖ, ⓗ, Ⓗ, ⓘ, Ⓘ, ⓙ, Ⓙ, ⓚ, Ⓚ, ⓛ, Ⓛ, ⓜ, Ⓜ, ⓝ, Ⓝ, ⓞ, Ⓞ, ⓟ, Ⓟ, ⓠ, Ⓠ, ⓡ, Ⓡ, ⓢ, Ⓢ, ⓣ, Ⓣ, ⓤ, Ⓤ, ⓥ, Ⓥ, ⓦ, Ⓦ, ⓧ, Ⓧ, ⓨ, Ⓨ, ⓩ, Ⓩ ]
|
||||
'vzmh': [ ⒜, ⒝, ⒞, ⒟, ⒠, ⒡, ⒢, ⒣, ⒤, ⒥, ⒦, ⒧, ⒨, ⒩, ⒪, ⒫, ⒬, ⒭, ⒮, ⒯, ⒰, ⒱, ⒲, ⒳, ⒴, ⒵ ]
|
||||
#数字、分数
|
||||
'v0': [ 零, 〇, ⁰, ₀, ⓪, ⓿ , 0]
|
||||
'v1': [ 一, 壹, ¹, ₁, Ⅰ, ⅰ, ①, ➀, ❶, ➊, ⓵, ⑴, ⒈, 1, ㊀, ㈠, 弌, 壱, 幺, ㆒ ]
|
||||
'v2': [ 二, 贰, ², ₂, Ⅱ, ⅱ, ②, ➁, ❷, ➋, ⓶, ⑵, ⒉, 2, ㊁, ㈡, 弍, 弐, 貮, 㒃, 㒳, 两, 俩, ㆓]
|
||||
'v3': [ 三, 叁, ³, ₃, Ⅲ, ⅲ, ③, ➂, ❸, ➌, ⓷, ⑶, ⒊, 3, ㊂, ㈢, 参, 参, 叁, 弎, 仨, ㆔]
|
||||
'v4': [ 四, 肆, ⁴, ₄, Ⅳ, ⅳ, ④, ➃, ❹, ➍, ⓸, ⑷, ⒋, 4, ㊃, ㈣, 亖]
|
||||
'v5': [ 五, 伍, ⁵, ₅, Ⅴ, ⅴ, ⑤, ➄, ❺, ➎, ⓹, ⑸, ⒌, 5, ㊄, ㈤, 㐅, 㠪, 𠄡 ]
|
||||
'v6': [ 六, 陆, ⁶, ₆, Ⅵ, ⅵ, ⑥, ➅, ❻, ➏, ⓺, ⑹, ⒍, 6, ㊅, ㈥, ↅ]
|
||||
'v7': [ 七, 柒, ⁷, ₇, Ⅶ, ⅶ, ⑦, ➆, ❼, ➐, ⓻, ⑺, ⒎, 7, ㊆, ㈦, 漆]
|
||||
'v8': [ 八, 捌, ⁸, ₈, Ⅷ, ⅷ, ⑧, ➇, ❽, ➑, ⓼, ⑻, ⒏, 8, ㊇, ㈧ ]
|
||||
'v9': [ 九, 玖, ⁹, ₉, Ⅸ, ⅸ, ⑨, ➈, ❾, ➒, ⓽, ⑼, ⒐, 9, ㊈, ㈨ ]
|
||||
'v10': [ 十, 拾, ¹⁰, ₁₀, Ⅹ, ⅹ, ⑩, ➉, ❿, ➓, ⓾, ⑽, ⒑, 10, ㊉, ㈩, 什 ]
|
||||
'vfs': [ ⅟, ½, ↉, ⅓, ⅔, ¼, ⅕, ⅖, ⅗, ⅘, ⅙, ⅚, ⅐, ⅛, ⅜, ⅝, ⅞, ⅑, ⅒ ]
|
||||
#苏州码
|
||||
'vszm': [ 〡, 〢, 〣, 〤, 〥, 〦, 〧, 〨, 〩, 〸, 〹, 〺 ]
|
||||
#罗马数字
|
||||
'vlm': [ ⅰ, ⅱ, ⅲ, ⅳ, ⅴ, ⅵ, ⅶ, ⅷ, ⅸ, ⅹ, ⅺ, ⅻ, ⅼ, ⅽ, ⅾ, ⅿ ]
|
||||
'vlmd': [ Ⅰ, Ⅱ, Ⅲ, Ⅳ, Ⅴ, Ⅵ, Ⅶ, Ⅷ, Ⅸ, Ⅹ, Ⅺ, Ⅻ, Ⅼ, Ⅽ, Ⅾ, Ⅿ ]
|
||||
#拉丁
|
||||
'va': [ā, á, ǎ, à, ȁ, â, ă, ȃ, ȧ, ä, å, ã, ₐ, ᵃ, ª, ⱥ, ꬰ, ả, ą, ạ, ḁ, ẚ, ấ, ầ, ẫ, ẩ, ắ, ằ, ẵ, ẳ, ǡ, ǟ, ǻ, ậ, ặ, ᶏ, ɐ, ᵄ, ɑ, ᵅ, ᶐ, ɒ, ᶛ]
|
||||
'vA': [Ā, Á, Ǎ, À, Ȁ, Â, Ă, Ȃ, Ȧ, Ä, Å, Ã, ᴀ, ᴬ, Ⱥ, Ả, Ą, Ạ, Ḁ, Ấ, Ầ, Ẫ, Ẩ, Ắ, Ằ, Ẵ, Ẳ, Ǡ, Ǟ, Ǻ, Ậ, Ặ, Ɐ, Ɑ, Ɒ ]
|
||||
'vb': [ḃ, ḅ, ᵇ, ƀ, ƃ, ḇ, ɓ, ᵬ, ᶀ, ꞗ]
|
||||
'vB': [Ḃ, Ḅ, ʙ, ᴃ, ᴮ, ᴯ, Ƀ, Ƃ, Ḇ, Ɓ, Ꞗ]
|
||||
'vc': [ç, ć, č, ĉ, ċ, ᶜ, ȼ, ꞓ, ƈ, ḉ, ꞔ, ɕ, ᶝ, ꜿ]
|
||||
'vC': [Ç, Ć, Č, Ĉ, Ċ, ᴄ, Ȼ, Ꞓ, Ƈ, Ḉ, Ꜿ]
|
||||
'vd': [ď, ḋ, ᵈ, đ, ƌ, ᵭ, ḑ, ḓ, ḏ, ḍ, ɖ, ɗ, ᶑ, ᶁ, ð, ᶞ, ꝱ, ʤ, ʣ, ʥ, ȡ, ƍ, dz, dž, ẟ]
|
||||
'vD': [Ď, Ḋ, ᴅ, ᴆ, ᴰ, Đ, Ƌ, Ḑ, Ḓ, Ḏ, Ḍ, Ɖ, Ɗ, Ð, DZ, Dz, DŽ, Dž ]
|
||||
've': [ē, é, ě, è, ȅ, ê, ĕ, ȇ, ė, ë, ẽ, ₑ, ᵉ, ɇ, ꬳ, ẻ, ȩ, ę, ḙ, ẹ, ḛ, ḗ, ḕ, ế, ề, ễ, ể, ḝ, ệ, ᶒ, ꬴ, ɘ, ə, ɚ, ᶕ, ɛ, ᵋ, ᶓ, ɜ, ᵌ, ᴈ, ᶟ, ɝ, ᶔ, ɞ, ʚ, ǝ, ₔ, ᵊ, ȝ, ⱸ]
|
||||
'vE': [Ē, É, Ě, È, Ȅ, Ê, Ĕ, Ȇ, Ė, Ë, Ẽ, ᴇ, ᴱ, Ɇ, Ẻ, Ȩ, Ę, Ḙ, Ẹ, Ḛ, Ḗ, Ḕ, Ế, Ề, Ễ, Ể, Ḝ, Ệ, Ə, Ɛ, Ɜ, Ǝ, ⱻ, ᴲ, Ȝ ]
|
||||
'vf': [ḟ, ᶠ, ƒ, ᵮ, ᶂ, ꞙ ]
|
||||
'vF': [Ḟ, ꜰ, Ƒ, Ꞙ, ꟻ]
|
||||
'vg': [ḡ, ǵ, ǧ, ĝ, ğ, ġ, ᵍ, ǥ, ꞡ, ģ, ɠ, ᵷ, ᶃ, ɡ, ꬶ, ᶢ, ɣ, ˠ, ɤ, ᵹ]
|
||||
'vG': [Ḡ, Ǵ, Ǧ, Ĝ, Ğ, Ġ, ʛ, ᴳ, Ǥ, Ꞡ, Ģ, Ɠ, Ɡ, Ɣ ]
|
||||
'vh': [ĥ, ȟ, ḣ, ḧ, ͪ, ħ, ɦ, ʱ, ꜧ, ꭜ, ɧ, ḩ, ẖ, ḫ, ḥ, ⱨ, ꞕ, ɥ, ᶣ, ʮ, ʯ, ⱶ]
|
||||
'vH': [Ĥ, Ȟ, Ḣ, Ḧ, ʜ, ᴴ, Ħ, Ɦ, Ꜧ, Ḩ, Ḫ, Ḥ, Ⱨ, Ɥ, Ⱶ]
|
||||
'vi': [ī, í, ǐ, ì, ȉ, î, ĭ, ȋ, ï, ĩ, ᵢ, ı, ɨ, ᶤ, ỉ, į, ị, ḭ, ᴉ, ᵎ, ḯ, ᶖ, ɩ, ᶥ, ᵼ]
|
||||
'vI': [Ī, Í, Ǐ, Ì, Ȉ, Î, Ĭ, Ȋ, Ï, Ĩ, ɪ, ᴵ, ᶦ, Ɨ, ᵻ, ᶧ, Ỉ, Į, Ị, Ḭ, Ḯ, ꟾ, Ɩ ]
|
||||
'vj': [ĵ, ǰ, ⱼ, ʲ, ɉ, ȷ, ɟ, ᶡ, ʄ, ʝ, ᶨ]
|
||||
'vJ': [Ĵ, ᴊ, ᴶ, Ɉ, Ʝ ]
|
||||
'vk': [ḱ, ǩ, ₖ, ᵏ, ꝁ, ꝃ, ꞣ, ꝅ, ķ, ḵ, ḳ, ƙ, ᶄ, ⱪ, ʞ, ĸ]
|
||||
'vK': [Ḱ, Ǩ, ᴋ, ᴷ, Ꝁ, Ꝃ, Ꞣ, Ꝅ, Ķ, Ḵ, Ḳ, Ƙ, Ⱪ, Ʞ ]
|
||||
'vl': [ĺ, ˡ, ł, ꝉ, ƚ, ⱡ, ɫ, ꭞ, ꬸ, ɬ, ľ, ļ, ḻ, ḽ, ḷ, ŀ, ꝲ, ƛ, ᶅ, ᶪ, ɭ, ᶩ, ḹ, ꬷ, ꭝ, ꬹ, ȴ, ꝇ]
|
||||
'vL': [Ĺ, ʟ, ᶫ, Ƚ, Ꝉ, Ł, ᴌ, Ⱡ, Ɫ, Ɬ, Ľ, Ļ, Ḻ, Ḽ, Ḷ, Ŀ, Ꝇ]
|
||||
'vm': [ḿ, ṁ, ᵐ, ₘ, ṃ, ᵯ, ɱ, ᶬ, ꬺ, ᶆ, ꝳ, ɯ, ᵚ, ɰ, ᶭ, ᴟ]
|
||||
'vM': [Ḿ, Ṁ, ᴍ, ᴹ, Ṃ, Ɱ, Ɯ, ꟽ, ꟿ ]
|
||||
'vn': [ń, ň, ǹ, ṅ, ñ, ₙ, ⁿ, ɲ, ᶮ, ɳ, ᶯ, ȵ, ƞ, ŋ, ᵑ, ꬻ, ꬼ, ꝴ, ʼn, ꞥ, ņ, ṉ, ṋ, ṇ, ᵰ, ꞑ, ᶇ]
|
||||
'vN': [Ń, Ň, Ǹ, Ṅ, Ñ, ɴ, ᴺ, ᴻ, ᶰ, Ɲ, Ƞ, Ŋ, Ņ, Ṉ, Ṋ, Ṇ, Ꞑ ]
|
||||
'vo': [ō, ó, ő, ǒ, ò, ô, ŏ, ȯ, ö, õ, ₒ, ᵒ, º, ɔ, ᵓ, ᶗ, ꬿ, ø, ǫ, ọ, ơ, ɵ, ᶱ, ᴑ, ᴒ, ᴓ, ꝋ, ꝍ, ṓ, ṑ, ố, ồ, ỗ, ổ, ȱ, ȫ, ȭ, ṍ, ṏ, ộ, ǭ, ǿ, ớ, ờ, ỡ, ở, ợ, ɷ, ⱺ, ᴖ, ᵔ, ᴗ, ᵕ]
|
||||
'vO': [Ō, Ó, Ő, Ǒ, Ò, Ô, Ŏ, Ȯ, Ö, Õ, ᴏ, ᴼ, Ɔ, ᴐ, Ø, Ǫ, Ọ, Ơ, Ɵ, Ꝋ, Ꝍ, Ṓ, Ṑ, Ố, Ồ, Ỗ, Ổ, Ȱ, Ȫ, Ȭ, Ṍ, Ṏ, Ộ, Ǭ, Ǿ, Ớ, Ờ, Ỡ, Ở, Ợ ]
|
||||
'vp': [ṕ, ṗ, ᵖ, ᵽ, ꝑ, ᵱ, ƥ, ᶈ, ꝓ, ꝕ, ɸ, ᶲ, ⱷ ]
|
||||
'vP': [Ṕ, Ṗ, ᴘ, ᴾ, Ᵽ, Ꝑ, Ƥ, Ꝓ, Ꝕ, ꟼ]
|
||||
'vq': [ɋ, ꝗ, ꝙ, ʠ]
|
||||
'vQ': [Ɋ, Ꝗ, Ꝙ ]
|
||||
'vr': [ŕ, ř, ȑ, ȓ, ṙ, ᵣ, ɍ, ꞧ, ᵲ, ŗ, ṟ, ṛ, ṝ, ᵳ, ɽ, ᶉ, ꭇ, ꭈ, ꭊ, ꭉ, ꝵ, ꭋ, ꭌ, ɹ, ʴ, ɺ, ɻ, ʵ, ⱹ, ɼ, ʳ, ɾ, ɿ, ꝛ, ꝝ]
|
||||
'vR': [Ŕ, Ř, Ȑ, Ȓ, Ṙ, ʀ, ᴙ, ᴿ, Ʀ, ꭆ, Ɍ, Ꞧ, Ŗ, Ṟ, Ṛ, Ṝ, Ɽ, ꝶ, ʶ, ʁ, Ꝛ, Ꝝ]
|
||||
'vs': [Vs., 🆚, ś, ŝ, š, ṡ, ˢ, ʂ, ᶳ, ᵴ, ꞩ, ᶊ, ş, ṣ, ș, ȿ, ṥ, ṧ, ṩ, ʃ, ᶴ, ʆ, ᶘ, ʅ, ƪ, ß, ſ, ẛ, ẜ, ẝ]
|
||||
'vS': [Ś, Ŝ, Š, Ṡ, ꜱ, Ꞩ, Ş, Ṣ, Ș, Ṥ, Ṧ, Ṩ, Ʃ, ẞ, ]
|
||||
'vt': [ť, ṫ, ẗ, ᵗ, ₜ, ʈ, þ, ꝥ, ꝧ, ŧ, ⱦ, ţ, ṯ, ṱ, ṭ, ț, ƭ, ᵵ, ƫ, ᶵ, ʇ, ȶ, ꝷ]
|
||||
'vT': [Ť, Ṫ, ᴛ, ᵀ, Ʈ, Þ, Ꝥ, Ꝧ, Ŧ, Ⱦ, Ţ, Ṯ, Ṱ, Ṭ, Ț, Ƭ, Ʇ ]
|
||||
'vu': [ū, ú, ű, ǔ, ù, ȕ, û, ŭ, ȗ, ü, ǖ, ǘ, ǚ, ǜ, ů, ũ, ᵤ, ᵘ, ʉ, ᶶ, ủ, ų, ṷ, ụ, ṳ, ṵ, ư, ʊ, ᶷ, ᵿ, ᶙ, ṻ, ṹ, ứ, ừ, ữ, ử, ự, ꭒ, ꭟ, ꝸ, ꭎ, ꭏ, ᴝ, ᵙ, ᴞ]
|
||||
'vU': [Ū, Ú, Ű, Ǔ, Ù, Ȕ, Û, Ŭ, Ȗ, Ü, Ǖ, Ǘ, Ǚ, Ǜ, Ů, Ũ, ᴜ, ᵁ, ᶸ, Ʉ, Ủ, Ų, Ṷ, Ụ, Ṳ, Ṵ, Ư, Ʊ, Ṻ, Ṹ, Ứ, Ừ, Ữ, Ử, Ự ]
|
||||
'vv': [ü, ǖ, ǘ, ǚ, ǜ, ṽ, ᵛ, ᵥ, ṿ, ꝟ, ʋ, ᶹ, ᶌ, ⱴ, ⱱ, ỽ, ʌ, ᶺ]
|
||||
'vV': [Ü, Ǖ, Ǘ, Ǚ, Ǜ, Ṽ, ᴠ, ⱽ, Ṿ, Ꝟ, Ʋ, Ỽ, Ʌ ]
|
||||
'vw': [ẃ, ẁ, ŵ, ẇ, ẅ, ẘ, ʷ, ẉ, ƿ, ʍ, ⱳ]
|
||||
'vW': [Ẃ, Ẁ, Ŵ, Ẇ, Ẅ, W̊, ᴡ, ᵂ, Ẉ, Ƿ, Ⱳ]
|
||||
'vx': [ẋ, ẍ, ᶍ, ˣ, ₓ, ꭖ, ꭗ, ꭘ, ꭙ]
|
||||
'vX': [Ẋ, Ẍ ]
|
||||
'vy': [ȳ, ý, ỳ, ŷ, ẏ, ÿ, ẙ, ỹ, ʸ, ɏ, ỷ, ỵ, ƴ, ʎ, ỿ, ꭚ]
|
||||
'vY': [Ȳ, Ý, Ỳ, Ŷ, Ẏ, Ÿ, Ỹ, ʏ, Ɏ, Ỷ, Ỵ, Ƴ, Ỿ ]
|
||||
'vz': [ź, ž, ẑ, ż, ᶻ, ʐ, ᶼ, ʑ, ᶽ, ƶ, ẕ, ẓ, ᵶ, ȥ, ⱬ, ᶎ, ʒ, ᶾ, ǯ, ʓ, ƹ, ƺ, ᶚ, θ, ᶿ, ɀ, ꝣ]
|
||||
'vZ': [Ź, Ž, Ẑ, Ż, ᴢ, Ƶ, Ẕ, Ẓ, Ȥ, Ⱬ Ʒ, ᴣ, Ǯ, Ƹ, Ɀ, Ꝣ]
|
||||
'vaa': [ꜳ]
|
||||
'vAA': [Ꜳ]
|
||||
'vae': [æ, ǣ, ǽ, ᵆ, ᴂ]
|
||||
'vAE': [Æ, Ǣ, Ǽ, ᴭ, ᴁ ]
|
||||
'vao': [ꜵ]
|
||||
'vAO': [Ꜵ]
|
||||
'vau': [ꜷ]
|
||||
'vAU': [Ꜷ]
|
||||
'vav': [ꜹ, ꜻ]
|
||||
'vAV': [Ꜹ, Ꜻ]
|
||||
'vay': [ꜽ]
|
||||
'vAY': [Ꜽ]
|
||||
'vdb': [ȸ]
|
||||
'vff': [ff]
|
||||
'vffi': [ffi]
|
||||
'vffl': [ffl]
|
||||
'vfi': [fi]
|
||||
'vfl': [fl]
|
||||
'vfn': [ʩ]
|
||||
'vhv': [ƕ]
|
||||
'vHV': [Ƕ]
|
||||
'vij': [ij]
|
||||
'vIJ': [IJ]
|
||||
'vlj': [lj]
|
||||
'vll': [ỻ]
|
||||
'vLL': [Ỻ]
|
||||
'vls': [ʪ]
|
||||
'vlz': [ʫ, ɮ]
|
||||
'vnj': [nj]
|
||||
'vNj': [Nj]
|
||||
'vNJ': [NJ]
|
||||
'voe': [œ, ᴔ]
|
||||
'vOE': [Œ, ɶ ]
|
||||
'voi': [ƣ]
|
||||
'vOI': [Ƣ]
|
||||
'voo': [ꝏ]
|
||||
'vOO': [Ꝏ]
|
||||
'vou': [ȣ ]
|
||||
'vOU': [Ȣ, ᴽ]
|
||||
'vqp': [ȹ]
|
||||
'vRx': [℞]
|
||||
'vtc': [ʨ]
|
||||
'vth': [ᵺ]
|
||||
'vts': [ʦ, ʧ]
|
||||
'vtz': [ꜩ]
|
||||
'vTZ': [Ꜩ]
|
||||
'vue': [ᵫ]
|
||||
'vvy': [ꝡ]
|
||||
'vVY': [Ꝡ]
|
||||
'vww': [ʬ]
|
||||
#上标、下标
|
||||
'vsb': [ ⁰, ¹, ², ³, ⁴, ⁵, ⁶, ⁷, ⁸, ⁹, ˜, ⁺, ⁻, ⁼, ⁽, ⁾, ᴬ, ᵃ, ᵄ, ᵅ, ᶛ, ᴭ, ᵆ, ᴮ, ᴯ, ᵇ, ᵝ, ᶜ, ᵓ, ᶝ, ᴰ, ᵈ, ᶞ, ᵟ, ᴱ, ᵉ, ᴲ, ᵊ, ᵋ, ᶟ, ᵌ, ᶠ, ᶡ, ᶲ, ᵠ, ᴳ, ᵍ, ᶢ, ˠ, ᵞ, ᴴ, ʰ, ᶣ, ʱ, ᴵ, ⁱ, ᶤ, ᵎ, ᶥ, ᴶ, ʲ, ᶨ, ᴷ, ᵏ, ᴸ, ᶫ, ˡ, ᶩ, ᶪ, ᴹ, ᵐ, ᶬ, ᵚ, ᶭ, ᴺ, ᴻ, ⁿ, ᵑ, ᶮ, ᶯ, ᴼ, ᵒ, ᶱ, ᴽ, ᴾ, ᵖ, ᴿ, ʳ, ʶ, ʴ, ʵ, ˢ, ᶴ, ᶳ, ᵀ, ᵗ, ᶵ, ᶿ, ᵁ, ᵘ, ᶶ, ᶷ, ᵙ, ⱽ, ᵛ, ᶺ, ᶹ, ᵂ, ʷ, ˣ, ᵡ, ʸ, ᶻ, ᶾ, ᶽ, ᶼ ]
|
||||
'vxb': [ ₀, ₁, ₂, ₃, ₄, ₅, ₆, ₇, ₈, ₉, ₊, ₋, ₌, ₍, ₎, ‸, ᴀ, ₐ, ᴁ, ʙ, ᴃ, ᵦ, ᴄ, ᴐ, ᴒ, ᴅ, ᴆ, ᴇ, ₑ, ₔ, ᵩ, ɢ, ʛ, ᴦ, ᵧ, ʜ, ₕ, ɪ, ᵻ, ᵢ, ᴊ, ⱼ, ᴋ, ₖ, ʟ, ₗ, ᴌ, ᴧ, ᴍ, ₘ, ꟺ, ɴ, ᴎ, ₙ, ᴏ, ₒ, ɶ, ʘ, ᴓ, ᴑ, ᴘ, ₚ, ᴨ, ᴪ, ʀ, ᵣ, ᴙ, ʁ, ᴚ, ᵨ, ₛ, ᴛ, ₜ, ᴜ, ᵤ, ᵾ, ᴠ, ᵥ, ᴡ, ₓ, ᵪ, ʏ, ᴢ, ᴣ ]
|
||||
#希腊
|
||||
'vxl': [ α, β, γ, δ, ε, ζ, η, θ, ι, κ, λ, μ, ν, ξ, ο, π, ρ, σ, τ, υ, φ, χ, ψ, ω ]
|
||||
'vxld': [ Α, Β, Γ, Δ, Ε, Ζ, Η, Θ, Ι, Κ, Λ, Μ, Ν, Ξ, Ο, Π, Ρ, Σ, Τ, Υ, Φ, Χ, Ψ, Ω ]
|
||||
#俄语
|
||||
'vey': [ а, б, в, г, д, е, ё, ж, з, и, й, к, л, м, н, о, п, р, с, т, у, ф, х, ц, ч, ш, щ, ъ, ы, ь, э, ю, я ]
|
||||
'veyd': [ А, Б, В, Г, Д, Е, Ё, Ж, З, И, Й, К, Л, М, Н, О, П, Р, С, Т, У, Ф, Х, Ц, Ч, Ш, Щ, Ъ, Ы, Ь, Э, Ю, Я ]
|
||||
#月份、日期、曜日等
|
||||
'vyf': [ ㋀, ㋁, ㋂, ㋃, ㋄, ㋅, ㋆, ㋇, ㋈, ㋉, ㋊, ㋋ ]
|
||||
'vrq': [ ㏠, ㏡, ㏢, ㏣, ㏤, ㏥, ㏦, ㏧, ㏨, ㏩, ㏪, ㏫, ㏬, ㏭, ㏮, ㏯, ㏰, ㏱, ㏲, ㏳, ㏴, ㏵, ㏶, ㏷, ㏸, ㏹, ㏺, ㏻, ㏼, ㏽, ㏾ ]
|
||||
'vyr': [ 月, 火, 水, 木, 金, 土, 日, ㊊, ㊋, ㊌, ㊍, ㊎, ㊏, ㊐, ㊗, ㊡, ㈪, ㈫, ㈬, ㈭, ㈮, ㈯, ㈰, ㈷, ㉁, ㉀ ]
|
||||
#时间
|
||||
'vsj': [ ㍘, ㍙, ㍚, ㍛, ㍜, ㍝, ㍞, ㍟, ㍠, ㍡, ㍢, ㍣, ㍤, ㍥, ㍦, ㍧, ㍨, ㍩, ㍪, ㍫, ㍬, ㍭, ㍮, ㍯, ㍰ ]
|
||||
#天干、地支、干支
|
||||
'vtg': [ 甲, 乙, 丙, 丁, 戊, 己, 庚, 辛, 壬, 癸 ]
|
||||
'vdz': [ 子, 丑, 寅, 卯, 辰, 巳, 午, 未, 申, 酉, 戌, 亥 ]
|
||||
'vgz': [ 甲子, 乙丑, 丙寅, 丁卯, 戊辰, 己巳, 庚午, 辛未, 壬申, 癸酉, 甲戌, 乙亥, 丙子, 丁丑, 戊寅, 己卯, 庚辰, 辛巳, 壬午, 癸未, 甲申, 乙酉, 丙戌, 丁亥, 戊子, 己丑, 庚寅, 辛卯, 壬辰, 癸巳, 甲午, 乙未, 丙申, 丁酉, 戊戌, 己亥, 庚子, 辛丑, 壬寅, 癸卯, 甲辰, 乙巳, 丙午, 丁未, 戊申, 己酉, 庚戌, 辛亥, 壬子, 癸丑, 甲寅, 乙卯, 丙辰, 丁巳, 戊午, 己未, 庚申, 辛酉, 壬戌, 癸亥 ]
|
||||
#节气
|
||||
'vjq': [ 立春, 雨水, 惊蛰, 春分, 清明, 谷雨, 立夏, 小满, 芒种, 夏至, 小暑, 大暑, 立秋, 处暑, 白露, 秋分, 寒露, 霜降, 立冬, 小雪, 大雪, 冬至, 小寒, 大寒 ]
|
||||
#单位
|
||||
'vdw': [ Å, ℃, %, ‰, ‱, °, ℉, ㏃, ㏆, ㎈, ㏄, ㏅, ㎝, ㎠, ㎤, ㏈, ㎗, ㎙, ㎓, ㎬, ㏉, ㏊, ㏋, ㎐, ㏌, ㎄, ㎅, ㎉, ㎏, ㎑, ㏍, ㎘, ㎞, ㏎, ㎢, ㎦, ㎪, ㏏, ㎸, ㎾, ㏀, ㏐, ㏓, ㎧, ㎨, ㎡, ㎥, ㎃, ㏔, ㎆, ㎎, ㎒, ㏕, ㎖, ㎜, ㎟, ㎣, ㏖, ㎫, ㎳, ㎷, ㎹, ㎽, ㎿, ㏁, ㎁, ㎋, ㎚, ㎱, ㎵, ㎻, ㏘, ㎩, ㎀, ㎊, ㏗, ㏙, ㏚, ㎰, ㎴, ㎺, ㎭, ㎮, ㎯, ㏛, ㏜, ㎔, ㏝, ㎂, ㎌, ㎍, ㎕, ㎛, ㎲, ㎶, ㎼ ]
|
||||
#货币
|
||||
'vhb': [ ¥, ¥, ¤, ¢, $, $, £, £, ৳, ฿, ₠, ₡, ₢, ₣, ₤, ₥, ₦, ₧, ₩, ₪, ₫, €, ₭, ₮, ₯, ₰, ₱, ₲, ₳, ₴, ₵, ₶, ₷, ₸, ₹, ₺, ₨, ﷼ ]
|
||||
#结构、偏旁、康熙(部首)、笔画、标点
|
||||
'vjg': [ ⿰, ⿱, ⿲, ⿳, ⿴, ⿵, ⿶, ⿷, ⿸, ⿹, ⿺, ⿻, 〾 ]
|
||||
'vpp': [ 乛, 冫, 丷, 龹, ⺌, 龸, 亻, 亼, 亽, 仒, 冖, 冂, 冃, 冄, 宀, 罒, 㓁, 罓, 冈, 凵, 厶, 刂, 勹, 匚, 匸, 卩, 阝, 厂, 丆, 广, 壬, 訁, 讠, 釒, 钅, 飠, 饣, 龺, 攵, 夂, 夊, 尢, 尣, 兂, 旡, 巜, 巛, 彐, 彑, 彡, 彳, 龰, 辶, 廴, 㞢, 忄, 㣺, 扌, 爫, 龵, 廾, 歺, 癶, 氵, 氺, 火, 灬, 爿, 丬, 疒, 牜, ⺶, 犭, 豕, 豸, 虍, 艹, 卝, 龷, 丗, 龶, 芈, 丵, 菐, 黹, 礻, 衤, 糸, 糹, 纟, 龻, 镸, 髟, 襾, 覀, 吅, 㗊, 㠭, 㸚, 叕]
|
||||
'vkx': [ 一, 丨, 丶, 丿, 乙, 亅, 二, 亠, 人, 儿, 入, 八, 冂, 冖, 冫, 几, 凵, 刀, 力, 勹, 匕, 匚, 匸, 十, 卜, 卩, 厂, 厶, 又, 口, 囗, 土, 士, 夂, 夊, 夕, 大, 女, 子, 宀, 寸, 小, 尢, 尸, 屮, 山, 巛, 工, 己, 巾, 干, 幺, 广, 廴, 廾, 弋, 弓, 彐, 彡, 彳, 心, 戈, 戶, 手, 支, 攴, 文, 斗, 斤, 方, 无, 日, 曰, 月, 木, 欠, 止, 歹, 殳, 毋, 比, 毛, 氏, 气, 水, 火, 爪, 父, 爻, 爿, 片, 牙, 牛, 犬, 玄, 玉, 瓜, 瓦, 甘, 生, 用, 田, 疋, 疒, 癶, 白, 皮, 皿, 目, 矛, 矢, 石, 示, 禸, 禾, 穴, 立, 竹, 米, 糸, 缶, 网, 羊, 羽, 老, 而, 耒, 耳, 聿, 肉, 臣, 自, 至, 臼, 舌, 舛, 舟, 艮, 色, 艸, 虍, 虫, 血, 行, 衣, 襾, 見, 角, 言, 谷, 豆, 豕, 豸, 貝, 赤, 走, 足, 身, 車, 辛, 辰, 辵, 邑, 酉, 釆, 里, 金, 長, 門, 阜, 隶, 隹, 雨, 靑, 非, 面, 革, 韋, 韭, 音, 頁, 風, 飛, 食, 首, 香, 馬, 骨, 高, 髟, 鬥, 鬯, 鬲, 鬼, 魚, 鳥, 鹵, 鹿, 麥, 麻, 黃, 黍, 黑, 黹, 黽, 鼎, 鼓, 鼠, 鼻, 齊, 齒, 龍, 龜, 龠 ]
|
||||
'vbh': [ ㇀, ㇁, ㇂, ㇃, ㇄, ㇅, ㇆, ㇇, ㇈, ㇉, ㇊, ㇋, ㇌, ㇍, ㇎, ㇏, ㇐, ㇑, ㇒, ㇓, ㇔, ㇕, ㇖, ㇗, ㇘, ㇙, ㇚, ㇛, ㇜, ㇝, ㇞, ㇟, ㇠, ㇡, ㇢, ㇣ ]
|
||||
'vbd': [ 、, 。, 「, 」, 『, 』, 【, 】, 〈, 〉, 《, 》, ₋, ⁻, ―, ˗, ˉ, _, ﹍, ﹎, ., ¡, ‼, ⁉, ¿, ؟, ⁈, ⁇, 、, 。, 〃, 〄, 々, 〆, 〇, 〒, 〓, 〔, 〕, 〖, 〗, 〘, 〙, 〚, 〛, 〜, 〝, 〞, 〟, 〠, 〰, 〱, 〲, 〳, 〴, 〵, 〶, 〷, 〻, 〼, 〽 ]
|
||||
'vbdz': [ ﹅, ﹆, ﹁, ﹂, ﹃, ﹄, ︙, ︱, ︻, ︼, ︗, ︘, ︵, ︶, ︷, ︸, ︹, ︺, ︿, ﹀, ︽, ︾, ︰, ︲, ︳, ︴, ﹉, ﹊, ﹋, ﹌, ﹍, ﹎, ﹏, ﹇, ﹈, ︐, ︑, ︒, ︔, ︕, ︖ ]
|
||||
#拼音、注音、声调
|
||||
'vpy': [ ā, á, ǎ, à, ō, ó, ǒ, ò, ê, ê̄, ế, ê̌, ề, ē, é, ě, è, ī, í, ǐ, ì, ū, ú, ǔ, ù, ü, ǖ, ǘ, ǚ, ǜ, ḿ, m̀, ń, ň, ǹ, ẑ, ĉ, ŝ, ŋ ]
|
||||
'vpyd': [ Ā, Á, Ǎ, À, Ō, Ó, Ǒ, Ò, Ê, Ê̄, Ế, Ê̌, Ề, Ē, É, Ě, È, Ī, Í, Ǐ, Ì, Ū, Ú, Ǔ, Ù, Ü, Ǖ, Ǘ, Ǚ, Ǜ, Ḿ, M̀, Ń, Ň, Ǹ, Ẑ, Ĉ, Ŝ, Ŋ ]
|
||||
'vzy': [ ㄅ, ㄆ, ㄇ, ㄈ, ㄉ, ㄊ, ㄋ, ㄌ, ㄍ, ㄎ, ㄏ, ㄐ, ㄑ, ㄒ, ㄓ, ㄔ, ㄕ, ㄖ, ㄗ, ㄘ, ㄙ, ㄧ, ㄨ, ㄩ, ㄚ, ㄛ, ㄜ, ㄝ, ㄞ, ㄟ, ㄠ, ㄡ, ㄢ, ㄣ, ㄤ, ㄥ, ㄦ, ㄪ, ㄫ, ㄬ, ㄭ, ㆠ, ㆡ, ㆢ, ㆣ, ㆤ, ㆥ, ㆦ, ㆧ, ㆨ, ㆩ, ㆪ, ㆫ, ㆬ, ㆭ, ㆮ, ㆯ, ㆰ, ㆱ, ㆲ, ㆳ, ㆴ, ㆵ, ㆶ, ㆷ ]
|
||||
'vsd': [ ˉ, ˊ, ˇ, ˋ, ˆ, ˙, ˜, ˥, ˦, ˧, ˨, ˩, ꜀, ꜁, ꜂, ꜃, ꜄, ꜅, ꜆, ꜇, '〪', '〫', '〬', '〭' ]
|
||||
#汉字+圈v弧
|
||||
'vhzq': [ ㊀, ㊁, ㊂, ㊃, ㊄, ㊅, ㊆, ㊇, ㊈, ㊉, ㊊, ㊋, ㊌, ㊍, ㊎, ㊏, ㊐, ㊑, ㊒, ㊓, ㊔, ㊕, ㊖, ㊗, ㊘, ㊙, ㊚, ㊛, ㊜, ㊝, ㊞, ㊟, ㊠, ㊡, ㊢, ㊣, ㊤, ㊥, ㊦, ㊧, ㊨, ㊩, ㊪, ㊫, ㊬, ㊭, ㊮, ㊯, ㊰, ㉄, ㉅, ㉆, ㉇ ]
|
||||
'vhzh': [ ㈠, ㈡, ㈢, ㈣, ㈤, ㈥, ㈦, ㈧, ㈨, ㈩, ㈪, ㈫, ㈬, ㈭, ㈮, ㈯, ㈰, ㈱, ㈲, ㈳, ㈴, ㈵, ㈶, ㈷, ㈸, ㈹, ㈺, ㈻, ㈼, ㈽, ㈾, ㈿, ㉀, ㉁, ㉂, ㉃ ]
|
||||
#いろは順
|
||||
'viro': [ い, ろ, は, に, ほ, へ, と, ち, り, ぬ, る, を, わ, か, よ, た, れ, そ, つ, ね, な, ら, む, う, ゐ, の, お, く, や, ま, け, ふ, こ, え, て, あ, さ, き, ゆ, め, み, し, ゑ, ひ, も, せ, す ]
|
||||
#假名
|
||||
'vjm': [ あ, ぁ, い, ぃ, う, ぅ, え, ぇ, お, ぉ, か, ゕ, が, き, ぎ, く, ぐ, け, ゖ, げ, こ, ご, さ, ざ, し, じ, す, ず, せ, ぜ, そ, ぞ, た, だ, ち, ぢ, つ, っ, づ, て, で, と, ど, な, に, ぬ, ね, の, は, ば, ぱ, ひ, び, ぴ, ふ, ぶ, ぷ, へ, べ, ぺ, ほ, ぼ, ぽ, ま, み, む, め, も, や, ゃ, ゆ, ゅ, よ, ょ, ら, り, る, れ, ろ, わ, ゎ, ゐ, ゔ, ゑ, を, ん, ・, ー, ゝ, ゞ, ゟ ]
|
||||
'vpjm': [ ア, ァ, イ, ィ, ウ, ゥ, エ, ェ, オ, ォ, カ, ヵ, ガ, キ, ギ, ク, グ, ケ, ヶ, ゲ, コ, ゴ, サ, ザ, シ, ジ, ス, ズ, セ, ゼ, ソ, ゾ, タ, ダ, チ, ヂ, ツ, ッ, ヅ, テ, デ, ト, ド, ナ, ニ, ヌ, ネ, ノ, ハ, バ, パ, ヒ, ビ, ピ, フ, ブ, プ, ヘ, ベ, ペ, ホ, ボ, ポ, マ, ミ, ム, メ, モ, ヤ, ャ, ユ, ュ, ヨ, ョ, ラ, リ, ル, レ, ロ, ワ, ヮ, ヰ, ヸ, ヴ, ヱ, ヹ, ヲ, ヺ, ン, ・, ー, ヽ, ヾ, ヿ, ㇰ, ㇱ, ㇲ, ㇳ, ㇴ, ㇵ, ㇶ, ㇷ, ㇸ, ㇹ, ㇺ, ㇻ, ㇼ, ㇽ, ㇾ, ㇿ ]
|
||||
'vjmk': [ か, ゕ, き, く, け, ゖ, こ, カ, ヵ, キ, ク, ケ, ヶ, コ ]
|
||||
'vjmg': [ が, ぎ, ぐ, げ, ご, ガ, ギ, グ, ゲ, ゴ ]
|
||||
'vjms': [ さ, し, す, せ, そ, サ, シ, ス, セ, ソ ]
|
||||
'vjmz': [ ざ, じ, ず, ぜ, ぞ, ザ, ジ, ズ, ゼ, ゾ ]
|
||||
'vjmt': [ た, ち, つ, っ, て, と, タ, チ, ツ, ッ, テ, ト ]
|
||||
'vjmd': [ だ, ぢ, づ, で, ど, ダ, ヂ, ヅ, デ, ド ]
|
||||
'vjmn': [ な, に, ぬ, ね, の, ん, ナ, ニ, ヌ, ネ, ノ, ン ]
|
||||
'vjmh': [ は, ひ, ふ, へ, ほ, ハ, ヒ, フ, ヘ, ホ ]
|
||||
'vjmb': [ ば, び, ぶ, べ, ぼ, バ, ビ, ブ, ベ, ボ ]
|
||||
'vjmp': [ ぱ, ぴ, ぷ, ぺ, ぽ, パ, ピ, プ, ペ, ポ ]
|
||||
'vjmm': [ ま, み, む, め, も, マ, ミ, ム, メ, モ ]
|
||||
'vjmy': [ や, ゃ, ゆ, ゅ, よ, ょ, ヤ, ャ, ユ, ュ, ヨ, ョ ]
|
||||
'vjmr': [ ら, り, る, れ, ろ, ラ, リ, ル, レ, ロ ]
|
||||
'vjmw': [ わ, ゐ, ゑ, を, ワ, ヰ, ヱ, ヲ ]
|
||||
'vjma': [ あ, か, が, さ, ざ, た, だ, な, は, ば, ぱ, ま, や, ら, わ, ア, カ, ガ, サ, ザ, タ, ダ, ナ, ハ, バ, パ, マ, ヤ, ラ, ワ ]
|
||||
'vjmi': [ い, き, ぎ, し, じ, ち, ぢ, に, ひ, び, ぴ, み, り, ゐ, イ, キ, ギ, シ, ジ, チ, ヂ, ニ, ヒ, ビ, ピ, ミ, リ, ヰ ]
|
||||
'vjmu': [ う, く, ぐ, す, ず, つ, づ, ぬ, ふ, ぶ, ぷ, む, る, ウ, ク, グ, ス, ズ, ツ, ヅ, ヌ, フ, ブ, プ, ム, ル ]
|
||||
'vjme': [ え, け, げ, せ, ぜ, て, で, ね, へ, べ, ぺ, め, れ, ゑ, エ, ケ, ゲ, セ, ゼ, テ, デ, ネ, ヘ, ベ, ペ, メ, レ, ヱ ]
|
||||
'vjmo': [ お, こ, ご, そ, ぞ, と, ど, の, ほ, ぼ, ぽ, も, ろ, を, オ, コ, ゴ, ソ, ゾ, ト, ド, ノ, ホ, ボ, ポ, モ, ロ, ヲ ]
|
||||
#假名+圈
|
||||
'vjmq': [ ㋐, ㋑, ㋒, ㋓, ㋔, ㋕, ㋖, ㋗, ㋘, ㋙, ㋚, ㋛, ㋜, ㋝, ㋞, ㋟, ㋠, ㋡, ㋢, ㋣, ㋤, ㋥, ㋦, ㋧, ㋨, ㋩, ㋪, ㋫, ㋬, ㋭, ㋮, ㋯, ㋰, ㋱, ㋲, ㋳, ㋴, ㋵, ㋶, ㋷, ㋸, ㋹, ㋺, ㋻, ㋼, ㋽, ㋾ ]
|
||||
#假名+半角
|
||||
'vjmbj': [ ア, ァ, イ, ィ, ウ, ゥ, エ, ェ, オ, ォ, カ, キ, ク, ケ, コ, サ, シ, ス, セ, ソ, タ, チ, ツ, ッ, テ, ト, ナ, ニ, ヌ, ネ, ノ, ハ, ヒ, フ, ヘ, ホ, マ, ミ, ム, メ, モ, ヤ, ャ, ユ, ュ, ヨ, ョ, ラ, リ, ル, レ, ロ, ワ, ヲ, ン, ・, ー, ゙, ゚ ]
|
||||
#韩文
|
||||
'vhw': [ ㄱ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ, ㅅ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ ]
|
||||
#韩文+圈v弧
|
||||
'vhwq': [ ㉠, ㉡, ㉢, ㉣, ㉤, ㉥, ㉦, ㉧, ㉨, ㉩, ㉪, ㉫, ㉬, ㉭, ㉮, ㉯, ㉰, ㉱, ㉲, ㉳, ㉴, ㉵, ㉶, ㉷, ㉸, ㉹, ㉺, ㉻, ㉼, ㉽, ㉾, ㉿ ]
|
||||
'vhwh': [ ㈀, ㈁, ㈂, ㈃, ㈄, ㈅, ㈆, ㈇, ㈈, ㈉, ㈊, ㈋, ㈌, ㈍, ㈎, ㈏, ㈐, ㈑, ㈒, ㈓, ㈔, ㈕, ㈖, ㈗, ㈘, ㈙, ㈚, ㈛, ㈜, ㈝, ㈞ ]
|
||||
|
||||
# 以下开始为自己添加的
|
||||
'vaa': [🐶, 🐮, 🐵, 🙈, 🙉, 🙊, 🐒, 🐔, 🐴, 🐷, 🐽, 🐭, 🦐, 🦀, 🐢, 🐱, 🐹, 🐰, 🐻, 🐼, 🐨, 🐧, 🐦, 🐤, 🐣, 🐥, 🐯, 🦁, 🐸, 🐙, 🦆, 🦅, 🦉, 🦇, 🐺, 🐗, 🦄, 🐝, 🐛, 🦋, 🐌, 🐞, 🐜, 🕷, 🦂, 🐍, 🦎, 🦑, 🐠, 🐟, 🐡, 🐬, 🐳, 🐊, 🐆, 🐅, 🐃, 🐂, 🐄, 🐪, 🐫, 🐘, 🦏, 🦍, 🐐, 🐏, 🐑, 🐎, 🐖, 🐀, 🐁, 🐓, 🦃, 🕊, 🐕, 🐩, 🐈, 🐇, 🐿]
|
||||
'vss': [👌, 👍, 👎, 👊, 🤝, ✌️, 💪, 🙏, ✊, 👏, 👋, 🤞, ✋, 🤚, 🖖, 🤙, 🖕, 🤟, ☝️, 👆, 👇, 👈, 👉, 🤛, 🤜, 🤲, 🤘, 🙌, 👐, ✍️, 💅]
|
||||
'vdd': [😂, ☺️, 😏, 😒, 🤔, 😳, 😔, 😱, 😭, 🙈️, 💩, 😀, 😁, 🤣, 😄, 😅, 😆, 😇, 😉, 😊, 🙂, 🙃, 😋, 😌, 😍, 😘, 😙, 😜, 😝, 🤑, 🤓, 😎, 🤗, 😶, 😑, 🙄, 😞, 😟, 😠, 😡, 😕, ☹️, 😣, 😖, 😫, 😤, 😮, 😨, 😰, 😯, 😦, 😢, 😥, 😪, 😓, 🤤, 😲, 🤥, 🤢, 🤧, 🤐, 😷, 🤒, 🤕, 😴, 😃, 😗, 😚, 😛, 🙁, 😩, 😐, 😧, 😵, 😬, 🤪, 🤨, 🧐, 🤩, 🤬, 🤯, 🤭, 🤫, 🤮, 🤡, 🤠, 😈, 👿, 👻, 💀, 👽]
|
||||
'vff': [½, ⅓, ⅔, ¼, ¾, ⅒, ‰]
|
||||
'vzz': [⌘, ⌥, ⇧, ⌃, ⎋, ⇪, , ⌫, ⌦, ↩︎, ⏎, ␣, ⏏, ⇟, ⇞]
|
||||
'vxx': [*, ×, ✱, ★, ☆, ✩, ✧, ❋, ❊, ❉, ❈, ❅, ✿, ✲]
|
||||
'vcc': [©, ®, ℗, ⓘ, ℠, ™, ℡, ␡, ♂, ♀, ☉, ☊, ☋, ☌, ☍, ☐, ☑︎, ☒, ☜, ☝, ☞, ☟, ✎, ✄, ♻, ⚐, ⚑, ⚠]
|
||||
'vvv': [👌, 👍, 😂, 😅, 😡, 😮, 😱, 😭, 😘, 😰, 💩]
|
||||
# 键盘符号
|
||||
'vcmd': [⌘] # 单个的可以不加[]
|
||||
'vctrl': [⌃]
|
||||
'vopt': [⌥]
|
||||
'vshift': [⇧]
|
||||
'vcap': [⇪]
|
||||
'vreturn': [⏎]
|
||||
'venter': [⏎]
|
||||
'vspace': [␣]
|
||||
'vbackspace': [⌫]
|
||||
'vdel': [⌦]
|
||||
'vescape': [⎋]
|
||||
'veject': [⏏]
|
||||
# 其他
|
||||
'vshang': [↑, ⬆️]
|
||||
'vxia': [↓, ⬇️]
|
||||
'vzuo': [←, ⬅️]
|
||||
'vyou': [→, ➡️, 'V 友']
|
||||
'vzuoshang': [↖]
|
||||
'vyoushang': [↗]
|
||||
'vzuoxia': [↙]
|
||||
'vyouxia': [↘]
|
||||
'vzuoyou': [↔︎, ⇔, ⇋]
|
||||
'vdian': [·]
|
||||
'vjgh': [·]
|
||||
'vgenhao': [√]
|
||||
'vdui': [✓, ✔, ✅]
|
||||
'vcuo': [✗, ✘, ❎, ❌]
|
||||
'vcheng': [×]
|
||||
'vchu': [÷]
|
||||
'vxiaoyu': [<, ≤]
|
||||
'vdayu': ['>', ≥]
|
||||
'vbudeng': [≠]
|
||||
'vbudengyu': [≠]
|
||||
'vssd': [°C]
|
||||
'vhsd': [°F]
|
||||
'vdu': [°, °C, °F]
|
||||
'vpi': [π]
|
||||
'vpai': [π]
|
||||
'vwanzi': [卍]
|
||||
'vnacui': [卐]
|
||||
'vzhengfu': [±]
|
||||
'vzhengfuhao': [±]
|
||||
'vnian': [廿]
|
||||
'vsa': [卅]
|
||||
'vxi': [卌]
|
||||
'vbai': [佰]
|
||||
'vqian': [仟]
|
||||
'vyuan': [圆]
|
535
weasel.custom.yaml
Executable file
535
weasel.custom.yaml
Executable file
@ -0,0 +1,535 @@
|
||||
patch:
|
||||
|
||||
style:
|
||||
# 选择皮肤
|
||||
color_scheme: psionics
|
||||
|
||||
font_face: Microsoft YaHei
|
||||
font_point: 14
|
||||
horizontal: false
|
||||
fullscreen: false
|
||||
inline_preedit: false
|
||||
preedit_type: composition
|
||||
display_tray_icon: false
|
||||
label_format: "%s."
|
||||
layout:
|
||||
min_width: 160
|
||||
min_height: 0
|
||||
border_width: 3
|
||||
margin_x: 12
|
||||
margin_y: 12
|
||||
spacing: 10
|
||||
candidate_spacing: 5
|
||||
hilite_spacing: 4
|
||||
hilite_padding: 2
|
||||
round_corner: 4
|
||||
|
||||
# 皮肤列表
|
||||
preset_color_schemes:
|
||||
|
||||
aqua:
|
||||
name: 碧水/Aqua
|
||||
author: 佛振 <chen.sst@gmail.com>
|
||||
text_color: 0x000000
|
||||
back_color: 0xeceeee
|
||||
border_color: 0xe0e0e0
|
||||
hilited_text_color: 0x000000
|
||||
hilited_back_color: 0xd4d4d4
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0xfa3a0a
|
||||
|
||||
azure:
|
||||
name: 青天/Azure
|
||||
author: 佛振 <chen.sst@gmail.com>
|
||||
text_color: 0xffe8ca
|
||||
candidate_text_color: 0xfff8ee
|
||||
back_color: 0x8b4e01
|
||||
border_color: 0x8b4e01
|
||||
hilited_text_color: 0xfff8ee
|
||||
hilited_back_color: 0x8b4e01
|
||||
hilited_candidate_text_color: 0x7ffeff
|
||||
hilited_candidate_back_color: 0xa95e01
|
||||
comment_text_color: 0xc69664
|
||||
|
||||
luna:
|
||||
name: 明月/Luna
|
||||
author: 佛振 <chen.sst@gmail.com>
|
||||
text_color: 0x000000
|
||||
back_color: 0xffffff
|
||||
border_color: 0xcccccc
|
||||
hilited_text_color: 0x000000
|
||||
hilited_back_color: 0x7fffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x000000
|
||||
|
||||
ink:
|
||||
name: 墨池/Ink
|
||||
author: 佛振 <chen.sst@gmail.com>
|
||||
text_color: 0x000000
|
||||
back_color: 0xffffff
|
||||
border_color: 0x000000
|
||||
hilited_text_color: 0x000000
|
||||
hilited_back_color: 0xdddddd
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x000000
|
||||
|
||||
lost_temple:
|
||||
name: 孤寺/Lost Temple
|
||||
author: 佛振 <chen.sst@gmail.com>, based on ir_black
|
||||
text_color: 0xe8f3f6
|
||||
back_color: 0x444444
|
||||
border_color: 0x444444
|
||||
hilited_text_color: 0x82e6ca
|
||||
hilited_back_color: 0x222222
|
||||
hilited_candidate_text_color: 0x000000
|
||||
hilited_candidate_back_color: 0x82e6ca
|
||||
|
||||
dark_temple:
|
||||
name: 暗堂/Dark Temple
|
||||
author: 佛振 <chen.sst@gmail.com>, based on ir_black
|
||||
text_color: 0x92f6da
|
||||
candidate_text_color: 0xd8e3e6
|
||||
back_color: 0x222222
|
||||
border_color: 0x222222
|
||||
hilited_text_color: 0xffcf9a
|
||||
hilited_back_color: 0x222222
|
||||
hilited_candidate_text_color: 0x92f6da
|
||||
hilited_candidate_back_color: 0x333333
|
||||
comment_text_color: 0x606cff
|
||||
|
||||
starcraft:
|
||||
name: 星際我爭霸/StarCraft
|
||||
author: Contralisk <contralisk@gmail.com>, original artwork by Blizzard Entertainment
|
||||
text_color: 0xccaa88
|
||||
candidate_text_color: 0x30bb55
|
||||
back_color: 0x000000
|
||||
border_color: 0x1010a0
|
||||
hilited_text_color: 0xfecb96
|
||||
hilited_back_color: 0x000000
|
||||
hilited_candidate_text_color: 0x60ffa8
|
||||
hilited_candidate_back_color: 0x000000
|
||||
|
||||
google:
|
||||
name: 谷歌/Google
|
||||
author: skoj <skoj@qq.com>
|
||||
text_color: 0x666666
|
||||
candidate_text_color: 0x000000
|
||||
back_color: 0xFFFFFF
|
||||
border_color: 0xE2E2E2
|
||||
hilited_text_color: 0x000000
|
||||
hilited_back_color: 0xFFFFFF
|
||||
hilited_candidate_text_color: 0xFFFFFF
|
||||
hilited_candidate_back_color: 0xCE7539
|
||||
|
||||
solarized_rock:
|
||||
name: 曬經石/Solarized Rock
|
||||
author: "Aben <tntaben@gmail.com>, based on Ethan Schoonover's Solarized color scheme"
|
||||
back_color: 0x362b00
|
||||
border_color: 0x362b00
|
||||
text_color: 0x009985
|
||||
hilited_text_color: 0x98a12a
|
||||
candidate_text_color: 0x969483
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x8236d3
|
||||
|
||||
tintin:
|
||||
name: "丁丁/ Tintin"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0xd99500
|
||||
border_color: 0xd99500
|
||||
label_color: 0xffffff
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_text_color: 0xf7d891
|
||||
hilited_back_color: 0xd99500
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x2164f1
|
||||
|
||||
dota_2:
|
||||
name: "DOTA 2"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0x120f10
|
||||
border_color: 0x120f10
|
||||
label_color: 0x5c758f
|
||||
hilited_text_color: 0x1841dd
|
||||
hilited_back_color: 0x120f10
|
||||
candidate_text_color: 0x5c758f
|
||||
comment_text_color: 0x5c758f
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x1841dd
|
||||
|
||||
brasil:
|
||||
name: "笆悉/Brasil"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0x559311
|
||||
border_color: 0x559311
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0xffffff
|
||||
hilited_back_color: 0x7d3617
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x16c7f7
|
||||
|
||||
doraemon:
|
||||
name: "銅鑼衛門/Doraemon"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0x1200e5
|
||||
back_color: 0xffffff
|
||||
border_color: 0xe89f00
|
||||
label_color: 0xe89f00
|
||||
hilited_text_color: 0xffffff
|
||||
hilited_back_color: 0x1200e5
|
||||
candidate_text_color: 0xe89f00
|
||||
comment_text_color: 0xe89f00
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0xe89f00
|
||||
|
||||
espagna:
|
||||
name: "埃斯巴尼亞/España"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0x230dc3
|
||||
border_color: 0x230dc3
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0xffffff
|
||||
hilited_back_color: 0x2cb5f7
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x2cb5f7
|
||||
|
||||
gholabok:
|
||||
name: "胡蘿菔/Gholabok"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0x2939e8
|
||||
border_color: 0x2939e8
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0xffffff
|
||||
hilited_back_color: 0x437b00
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x3d6ded
|
||||
|
||||
kuma_shuzboz:
|
||||
name: "熊出沒/Kuma Shuzboz"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0x000000
|
||||
back_color: 0x2db6f8
|
||||
border_color: 0x2db6f8
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0x2db6f8
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x000000
|
||||
|
||||
kuon:
|
||||
name: "琨/Kuon"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0x70b33e
|
||||
border_color: 0x70b33e
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0x70b33e
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0x70b33e
|
||||
hilited_comment_text_color: 0x70b33e
|
||||
hilited_candidate_back_color: 0xffffff
|
||||
|
||||
macau:
|
||||
name: "澳門/Macau"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0x00d9ff
|
||||
back_color: 0x81a300
|
||||
border_color: 0x81a300
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0xffffff
|
||||
hilited_back_color: 0x00d9ff
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0x00d9ff
|
||||
hilited_comment_text_color: 0x00d9ff
|
||||
hilited_candidate_back_color: 0xffffff
|
||||
|
||||
nba:
|
||||
name: "NBA"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0xb76a00
|
||||
border_color: 0xb76a00
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0x541ed7
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x541ed7
|
||||
|
||||
ps4:
|
||||
name: "遊驛四/PS4"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0x000000
|
||||
border_color: 0x000000
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0xffffff
|
||||
hilited_back_color: 0x575759
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0xe89f00
|
||||
|
||||
skype:
|
||||
name: "斯蓋普/Skype"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0xefad00
|
||||
border_color: 0xefad00
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0xefad00
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xefad00
|
||||
hilited_comment_text_color: 0xefad00
|
||||
hilited_candidate_back_color: 0xffffff
|
||||
|
||||
xbox_silver:
|
||||
name: "銀色叉盒/Xbox Silver"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0x1fc28d
|
||||
back_color: 0xefeeee
|
||||
border_color: 0xefeeee
|
||||
label_color: 0x5bf0b5
|
||||
hilited_text_color: 0xffffff
|
||||
hilited_back_color: 0x5bf0b5
|
||||
candidate_text_color: 0x1fc28d
|
||||
comment_text_color: 0x1fc28d
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x448c28
|
||||
|
||||
youtube:
|
||||
name: "YouTube"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0x000000
|
||||
back_color: 0xdedede
|
||||
border_color: 0xdedede
|
||||
label_color: 0x000000
|
||||
hilited_text_color: 0x230dc3
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0x000000
|
||||
comment_text_color: 0x000000
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x230dc3
|
||||
|
||||
so_young:
|
||||
name: "致青春/So Young"
|
||||
author: "五磅兔 <zcunlin@foxmail.com>"
|
||||
text_color: 0x8236d3
|
||||
back_color: 0xe3f6fd
|
||||
border_color: 0xd5e8ee
|
||||
label_color: 0xa1a193
|
||||
candidate_text_color: 0x837b65
|
||||
comment_text_color: 0xd28b26
|
||||
hilited_text_color: 0x969483
|
||||
hilited_back_color: 0xd5e8ee
|
||||
hilited_candidate_text_color: 0xd5e8ee
|
||||
hilited_comment_text_color: 0xd5e8ee
|
||||
hilited_candidate_back_color: 0x98a12a
|
||||
|
||||
smurfs:
|
||||
name: "藍精靈/Smurfs"
|
||||
author: "skoj <skoj@qq.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0xbf7817
|
||||
border_color: 0xf5ede0
|
||||
label_color: 0xbf7817
|
||||
hilited_text_color: 0xdbbc6d
|
||||
hilited_back_color: 0xbf7817
|
||||
candidate_text_color: 0xf6f6f6
|
||||
comment_text_color: 0xf6f6f6
|
||||
hilited_candidate_text_color: 0xf6f6f6
|
||||
hilited_comment_text_color: 0xf6f6f6
|
||||
hilited_candidate_back_color: 0xdbbc6d
|
||||
|
||||
wii:
|
||||
name: "Wii"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0x575759
|
||||
back_color: 0xefefef
|
||||
border_color: 0xefefef
|
||||
label_color: 0xcac9c8
|
||||
hilited_text_color: 0xffcc33
|
||||
hilited_back_color: 0xefefef
|
||||
candidate_text_color: 0x575759
|
||||
comment_text_color: 0xcac9c8
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0xffcc33
|
||||
|
||||
android:
|
||||
name: "安卓/Android"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0x99731c
|
||||
border_color: 0x99731c
|
||||
label_color: 0xc18835
|
||||
hilited_text_color: 0x50c4a8
|
||||
hilited_back_color: 0x99731c
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x50c4a8
|
||||
|
||||
cool_breeze:
|
||||
name: "清風/Cool Breeze"
|
||||
author: "skoj <skoj@qq.com>"
|
||||
text_color: 0x0000FF
|
||||
back_color: 0xFFFBFB
|
||||
border_color: 0xFFAAAA
|
||||
hilited_text_color: 0x0000CE
|
||||
hilited_back_color: 0xFFFBFB
|
||||
candidate_text_color: 0x009100
|
||||
hilited_candidate_text_color: 0x6F003A
|
||||
hilited_candidate_back_color: 0xFFD6AC
|
||||
|
||||
google_plus:
|
||||
name: "Google+"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xcac9c8
|
||||
back_color: 0xffffff
|
||||
border_color: 0x394bdd
|
||||
label_color: 0xcac9c8
|
||||
hilited_text_color: 0x394bdd
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0x394bdd
|
||||
comment_text_color: 0xcac9c8
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0x394bdd
|
||||
|
||||
modern_warfare:
|
||||
name: "現代戰爭/Modern Warfare"
|
||||
author: P1461
|
||||
text_color: 0x14bc70
|
||||
back_color: 0x0a1b0d
|
||||
border_color: 0x4bad83
|
||||
hilited_text_color: 0xfbfdfc
|
||||
hilited_back_color: 0x030e06
|
||||
candidate_text_color: 0xabfedc
|
||||
comment_text_color: 0xfcfdfb
|
||||
hilited_candidate_text_color: 0xabfedc
|
||||
hilited_candidate_back_color: 0x676f63
|
||||
|
||||
brisk:
|
||||
name: "輕盈/Brisk"
|
||||
author: "skoj <skoj@qq.com>"
|
||||
text_color: 0x2238dc
|
||||
back_color: 0xffffff
|
||||
border_color: 0x333333
|
||||
hilited_text_color: 0x2238dc
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0x575757
|
||||
hilited_candidate_text_color: 0x2238dc
|
||||
hilited_candidate_back_color: 0xffffff
|
||||
|
||||
starcraft_ii:
|
||||
name: "星際爭霸Ⅱ/StarCraft Ⅱ"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xffffff
|
||||
back_color: 0x29190a
|
||||
border_color: 0x534b46
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0xffffff
|
||||
hilited_back_color: 0x17100a
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xffffff
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0xefad1e
|
||||
|
||||
steam:
|
||||
name: "Steam"
|
||||
author: "Patricivs <ipatrickmac@me.com>"
|
||||
text_color: 0xcd8c52
|
||||
back_color: 0x141617
|
||||
border_color: 0x353638
|
||||
label_color: 0xffffff
|
||||
hilited_text_color: 0xc9cfd1
|
||||
hilited_back_color: 0x141617
|
||||
candidate_text_color: 0xffffff
|
||||
comment_text_color: 0xa7a7a9
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xa7a7a9
|
||||
hilited_candidate_back_color: 0x594231
|
||||
|
||||
flypy:
|
||||
# description: |
|
||||
# 小鹤飞扬:白底蓝字,红色高亮。
|
||||
# 根据小鹤双拼官网图片制作
|
||||
# http://www.flypy.com/images/mr.png
|
||||
name: "小鹤飞扬/flypy"
|
||||
author: "Pal.lxk <Pal.lxk@gmail.com>"
|
||||
text_color: 0x000000
|
||||
back_color: 0xffffff
|
||||
border_color: 0xc6c6c6
|
||||
label_color: 0xff8000
|
||||
hilited_text_color: 0xff8000
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0xff8000
|
||||
comment_text_color: 0xff8000
|
||||
hilited_candidate_text_color: 0x0000b0
|
||||
hilited_comment_text_color: 0x0000b0
|
||||
hilited_candidate_back_color: 0xffffff
|
||||
|
||||
metroblue:
|
||||
name: "现代蓝/Metro Blue"
|
||||
author: "Prcuvu <prcuvu@gmail.com>"
|
||||
text_color: 0x000000
|
||||
back_color: 0xffffff
|
||||
border_color: 0xd77800
|
||||
label_color: 0x838383
|
||||
hilited_text_color: 0x000000
|
||||
hilited_back_color: 0xffffff
|
||||
candidate_text_color: 0x000000
|
||||
comment_text_color: 0x000000
|
||||
hilited_candidate_text_color: 0xffffff
|
||||
hilited_comment_text_color: 0xffffff
|
||||
hilited_candidate_back_color: 0xd77800
|
||||
hilited_label_color: 0xffffff
|
||||
|
||||
psionics:
|
||||
name: 幽能/Psionics
|
||||
author: 雨過之後、佛振
|
||||
text_color: 0xc2c2c2
|
||||
back_color: 0x444444
|
||||
border_color: 0x444444
|
||||
candidate_text_color: 0xeeeeee
|
||||
hilited_text_color: 0xeeeeee
|
||||
hilited_back_color: 0x444444
|
||||
hilited_candidate_label_color: 0xfafafa
|
||||
hilited_candidate_text_color: 0xfafafa
|
||||
hilited_candidate_back_color: 0xd8bf00
|
||||
comment_text_color: 0x808080
|
||||
hilited_comment_text_color: 0x444444
|
BIN
zh-hans-t-essay-bgw.gram
Executable file
BIN
zh-hans-t-essay-bgw.gram
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user