Using Vim as an input method editor for X11 applications.
In the above demo, I used fcitx with vime to input Japanese sentences.
Clone this repo recursively, and then apply patches to the dependencies:
$ git clone https://github.com/algon-320/vime.git --recursive
$ ./apply_patches.sh
Copy the configuration files:
$ mkdir -p ~/.config/vime
$ cp config_example/* ~/.config/vime
Install the terminfo for toyterm
, which is a terminal emulator vime uses to run Vim:
$ tic -x -o ~/.terminfo/ toyterm/toyterm.info
(Optionally) Install vime:
$ cargo install --path ./vime
To uninstall vime, do the opposite:
$ cargo uninstall vime
$ rm -r ~/.config/vime
$ rm ~/.terminfo/t/toyterm.info
$ cargo run --release
or if you installed vime:
$ vime
Note for those who are using another input method, you can use it with vime.
To do that, please make sure $XMODIFIERS
is defined properly for the vime process.
For example to use fcitx
with vime:
$ XMODIFIERS="@im=fcitx" vime
$ export XMODIFIERS="@im=vime" # for X11 apps
$ export GTK_IM_MODULE="xim" # for GTK apps
$ export QT_IM_MODULE="xim" # for Qt apps
NOTE: vime might not work in Qt apps for now. I am going to create a Qt plugin to work properly, but it is WIP yet.
:wq
normally.Since vime starts a Vim with ~/.config/vime/vimrc
by default,
you can customize vim behavior by editing it.
If your favorite text editor is runnable in a terminal, then you should be able to use it as input method.
To change the editor to use, set VIME_EDITOR
environment variable for the vime process.
If the variable is not defined, vime will use /usr/bin/vim -u ~/.config/vime/vimrc
instead.
The following example shows how to use Emacs as an input method:
$ VIME_EDITOR='/usr/bin/emacs -nw' vime
To change the key combination to trigger vime, edit trigger_key_state
and trigger_key_keycode
fields in ~/.config/vime/config.toml
.
trigger_key_state
is the state of modifier keys.trigger_key_keycode
is the keycode of the key.You can use the xev
utility to lookup the values of your favorite key combination.
You can also configure the terminal by editing ~/.config/vime/config.toml
.
See the toyterm repo for details about toyterm.
patches/xcb-imdkit-rs.patch
, the patch file for xcb-imdkit-rs, is licensed under LGPLv2.1patches/winit.patch
, the patch file for winit, is licensed under Apache-2.0