Cross platform Neovim front-end UI, built with F# + Avalonia.
- HiDPI support -- try dragging it across two screens with different DPIs ;)
- Proper font rendering -- respects font style, baseline, ligatures etc.
- Proper cursor rendering -- color, blink etc.
- Built-in support for Nerd font -- no need to patch your fonts!
- East Asia wide glyph display with font fallback options
- Emojis!
- High performance rendering, low latency (60FPS on 4K display with reasonable font size!)
- GPU acceleration
- Use a Windows FVim frontend with a WSL neovim:
fvim --wsl - Use the front end with a remote neovim:
fvim --ssh user@host - Use custom neovim binary:
fvim --nvim ~/bin/nvim.appimage
Try these bindings (note, fvim-specific settings only work in ginit.vim, not init.vim!):
if exists('g:fvim_loaded')
" good old 'set guifont' compatibility
set guifont=Iosevka\ Slab:h16
" Ctrl-ScrollWheel for zooming in/out
nnoremap <silent> <C-ScrollWheelUp> :set guifont=+<CR>
nnoremap <silent> <C-ScrollWheelDown> :set guifont=-<CR>
nnoremap <A-CR> :call rpcnotify(1, 'ToggleFullScreen', 1)<CR>
endifSome work-in-progress fancy cursor effects:
if exists('g:fvim_loaded')
" 1st param = blink animation
" 2nd param = move animation
call rpcnotify(1, 'SetCursorAnimation', v:true, v:true)
endifDownload the latest release package for your system, extract and run FVim!
We're now targeting netcoreapp3.0 so make sure to install the latest preview SDK from the .NET site.
We're also actively tracking the head of Avalonia, so please add their myget feed (https://www.myget.org/F/avalonia-ci/api/v2) to your nuget package manager:
# Windows:
nuget sources add -Name "Avalonia Nightly" -Source "https://www.myget.org/F/avalonia-ci/api/v2" -NonInteractive
# Others:
Edit ~/.nuget/NuGet/config.xml and insert the feed.
Then, simply:
git clone https://github.com/yatli/fvim
cd fvim
dotnet build -c Release
dotnet run -c Release
- Input method support built from scratch (wip)
- Multi-grid <=> Multi-window mapping (multiple windows in the OS sense, not Vim "frames")
- Extend with XAML -- UI widgets as NeoVim plugins
- Electron ecosystem integration