https://github.com/tonyfettes/fcitx5.nvim
Fcitx5 client in Neovim
https://github.com/tonyfettes/fcitx5.nvim
fcitx5 input-method lua neovim neovim-plugin
Last synced: 7 days ago
JSON representation
Fcitx5 client in Neovim
- Host: GitHub
- URL: https://github.com/tonyfettes/fcitx5.nvim
- Owner: tonyfettes
- License: gpl-3.0
- Created: 2021-11-27T03:01:22.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-03-17T19:59:55.000Z (almost 4 years ago)
- Last Synced: 2025-03-21T08:46:48.780Z (11 months ago)
- Topics: fcitx5, input-method, lua, neovim, neovim-plugin
- Language: Lua
- Homepage:
- Size: 54.7 KB
- Stars: 26
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fcitx5.nvim
[WIP but already in maintenance] Fcitx5 client in neovim
## Reminds
This plugin needs to be run with corresponding input method frontend **disabled**
in either your Neovim UI (terminal emulator or GUI), or Fcitx5.
## Demo
## Install
If you use `packer.nvim`,
```lua
use {
'tonyfettes/fcitx5.nvim'
tag = 'v0.0.1-alpha',
rocks = {'dbus_proxy', 'lgi'}
}
```
Then, check if corresponding Input method frontend is disabled in Fcitx5
configuration, if your terminal/GUI support that. Otherwise, your terminal/GUI
will capture your keystrokes and sent them to Fcitx5 instead of Neovim.
## Setup
The example below shows the default values.
```vim
lua< to toggle between most recent two input methods.
vim.cmd[[inoremap lua require'fcitx5'.toggle()]]
},
-- Add luarocks dependencies
rocks = { 'lgi', 'dbus_proxy' }
}
```
## Roadmap
- [x] Fix error on exit
- [x] Switchable input method and group (currently hardcoded to 'rime')
- [x] Break into two windows for pre-edit and candidate list respectively
- [x] Select candidates with function
- [x] Highlight
- [x] Pre-edit highlight
- [x] UI glitch on first keystroke after insert
- [x] Candidate list margin
- [ ] Commit when focus out
- [ ] True Client side pre-edit support.
- [ ] Double-line mode, i.e. pre-edit is embedded in input method panel.
- [ ] Horizontal/Vertical layout
- [ ] Command-line support
- [ ] \(Perhaps\) `CursorMovedI/InsertCharPre` to `nvim_buf_attach()`
- [ ] \(Perhaps\) Show current input method and input group using dedicated window
- [ ] If `'wrap'` is not set, scroll horizontal if pre-edit is too long, otherwise move to next line. Too hard.