initial commit
This commit is contained in:
+17
@@ -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
|
||||
@@ -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>.
|
||||
@@ -0,0 +1,65 @@
|
||||
# 雾凇拼音
|
||||
|
||||

|
||||
|
||||
功能齐全,词库体验良好,长期更新修订。
|
||||
|
||||
## 基本套路
|
||||
|
||||
- 简体全拼
|
||||
- 鼠须管 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/)
|
||||
File diff suppressed because it is too large
Load Diff
+467084
File diff suppressed because it is too large
Load Diff
+143008
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
四个土
|
||||
# 其他。。。
|
||||
男女男
|
||||
女男女
|
||||
File diff suppressed because it is too large
Load Diff
Executable
+1136961
File diff suppressed because it is too large
Load Diff
Executable
+231
@@ -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
|
||||
@@ -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
|
||||
Executable
+320
@@ -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
|
||||
Executable
+6369
File diff suppressed because it is too large
Load Diff
Executable
+1691
File diff suppressed because it is too large
Load Diff
+98811
File diff suppressed because it is too large
Load Diff
@@ -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]*$"
|
||||
Executable
+14
@@ -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 # 中英混输词库
|
||||
...
|
||||
Executable
+67
@@ -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
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
反引号 反引号 `
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 111 KiB |
@@ -0,0 +1,26 @@
|
||||
# iRime 方案
|
||||
|
||||
直接拖进去就是全键盘方案。
|
||||
|
||||
然后有两组补丁。
|
||||
|
||||
<br>
|
||||
|
||||
一组九宫格的:
|
||||
|
||||
九宫格和 iRime 自带的主要区别:能输入英文,即「43556」上屏「hello」。
|
||||
|
||||
九宫格体验:重码时不能选拼音,太难受了,要了命了。
|
||||
|
||||
<br>
|
||||
|
||||
一组全键盘的:
|
||||
|
||||
开启模糊拼音,输入单字时比较困扰,不过实在离不开这个功能。
|
||||
|
||||
单引号改为了删除自造词(下滑 L 键)。
|
||||
|
||||
调整了标点符号的键盘映射,一些上下滑时的操作,比如上滑是两个括号,下滑是单个括号。
|
||||
|
||||
「符」按钮直接跳转到「更多」那个页面。
|
||||
|
||||
Executable
+10
@@ -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/
|
||||
Executable
+61
@@ -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
|
||||
Executable
+18
@@ -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 }
|
||||
@@ -0,0 +1,3 @@
|
||||
Name: iPhone默认键盘_custom
|
||||
Author: 筋斗云
|
||||
SupportPlatform: iOS,iPadOS
|
||||
+279
@@ -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: "'"}
|
||||
@@ -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
|
||||
)
|
||||
@@ -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=
|
||||
@@ -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("--------------------------------------------------")
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
# 含有需要注音的字的列表:
|
||||
# 例如在 ext tencent 无注音的词库中,检测到词库中有含有「伎俩」的词汇,但是没有注音,
|
||||
# 列出来,手动注音放到 main 中。
|
||||
欻
|
||||
伎俩
|
||||
万俟
|
||||
会计
|
||||
# 偻
|
||||
龟兹
|
||||
拱券
|
||||
单于
|
||||
单县
|
||||
南无
|
||||
参差
|
||||
召陵
|
||||
恐吓
|
||||
恫吓
|
||||
否极泰来
|
||||
臧否
|
||||
引吭
|
||||
伸吭
|
||||
伍员
|
||||
呢子
|
||||
呢料
|
||||
呢喃
|
||||
呢绒
|
||||
呱呱坠地
|
||||
尖沙咀
|
||||
吟哦
|
||||
哕哕
|
||||
哪吒
|
||||
啁哳
|
||||
唼喋
|
||||
嘁嘁喳喳
|
||||
嘚儿
|
||||
噌吰
|
||||
尉犁
|
||||
尉迟
|
||||
工尺
|
||||
崆峒
|
||||
繁峙
|
||||
巷道
|
||||
弄堂
|
||||
里弄
|
||||
倔强
|
||||
差忒
|
||||
戆直
|
||||
屈戌
|
||||
扁舟
|
||||
咋舌
|
||||
咋呼
|
||||
力能扛鼎
|
||||
拾级
|
||||
逼拶
|
||||
提防
|
||||
提溜
|
||||
摩挲
|
||||
南无
|
||||
期年
|
||||
期月
|
||||
蚌山
|
||||
白术
|
||||
朴树
|
||||
枞阳
|
||||
枸橼
|
||||
柜柳
|
||||
柞水
|
||||
栅极
|
||||
栎阳
|
||||
椑柿
|
||||
殷红
|
||||
沌阳
|
||||
沌口
|
||||
泌阳
|
||||
泌城
|
||||
洪洞
|
||||
浚县
|
||||
洴浰
|
||||
溃脓
|
||||
澹台
|
||||
瀑河
|
||||
# 炅
|
||||
炮烙
|
||||
犍为
|
||||
番禺
|
||||
碌碡
|
||||
秘鲁
|
||||
稽首
|
||||
筠连
|
||||
糜子
|
||||
纶巾
|
||||
自给
|
||||
补给
|
||||
给养
|
||||
配给
|
||||
家给人足
|
||||
络子
|
||||
绿林
|
||||
鸭绿江
|
||||
缉鞋口
|
||||
缉边儿
|
||||
缩砂密
|
||||
纰缪
|
||||
体胖
|
||||
脉脉
|
||||
腌臜
|
||||
膀胱
|
||||
膻中
|
||||
无臭
|
||||
乳臭
|
||||
怨艾
|
||||
自艾
|
||||
艾安
|
||||
芫
|
||||
芾
|
||||
茈
|
||||
荑
|
||||
荸荠
|
||||
莎草
|
||||
莘莘
|
||||
莨
|
||||
落枕
|
||||
蔚县
|
||||
枕藉
|
||||
慰藉
|
||||
蕴藉
|
||||
蚌埠
|
||||
裨
|
||||
匕首见
|
||||
匕见
|
||||
解池
|
||||
解数
|
||||
卖解
|
||||
解州
|
||||
博闻强识
|
||||
强识
|
||||
游说
|
||||
说客
|
||||
句读
|
||||
冠豸山
|
||||
贲
|
||||
趑趄
|
||||
趵
|
||||
蹊
|
||||
迫击
|
||||
铅山
|
||||
饼铛
|
||||
阿弥陀佛
|
||||
阿房宫
|
||||
不阿
|
||||
阿胶
|
||||
山阿
|
||||
东阿
|
||||
家雀
|
||||
雀盲眼
|
||||
脖颈
|
||||
颉颃
|
||||
驮子
|
||||
龟兹
|
||||
龟裂
|
||||
般若
|
||||
File diff suppressed because it is too large
Load Diff
Executable
+61
@@ -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)
|
||||
Executable
+168
@@ -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()
|
||||
@@ -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
|
||||
-------------------------------------------------------------
|
||||
Executable
+15
@@ -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 # *******私人词库(联系人之类的),请删除此行再部署,否则鼠须管会报错,小狼毫会只能输入英文******* #
|
||||
...
|
||||
Executable
+304
@@ -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
|
||||
Executable
+318
@@ -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
|
||||
@@ -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': [圆]
|
||||
Executable
+535
@@ -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
|
||||
Executable
BIN
Binary file not shown.
Reference in New Issue
Block a user