'How to change Neovim font?

VIM contains a 'set guifont' option to change the font. Neovim does not support this option, so I am wondering if it's possible to change the font Neovim uses in the Terminal?



Solution 1:[1]

This is not for a terminal, but still it might be useful to someone.

For Neovim-Qt GUI client, you can change the font by Ctrl + mouse scroll if you put the following to ginit.vim:

let s:fontsize = 12
function! AdjustFontSize(amount)
  let s:fontsize = s:fontsize+a:amount
  :execute "GuiFont! Consolas:h" . s:fontsize
endfunction

noremap <C-ScrollWheelUp> :call AdjustFontSize(1)<CR>
noremap <C-ScrollWheelDown> :call AdjustFontSize(-1)<CR>
inoremap <C-ScrollWheelUp> <Esc>:call AdjustFontSize(1)<CR>a
inoremap <C-ScrollWheelDown> <Esc>:call AdjustFontSize(-1)<CR>a

For those who prefer using keyboard, there is a nice way to use numpad's + (kPlus) and - (kMinus)

" In normal mode, pressing numpad's+ increases the font
noremap <kPlus> :call AdjustFontSize(1)<CR>
noremap <kMinus> :call AdjustFontSize(-1)<CR>

" In insert mode, pressing ctrl + numpad's+ increases the font
inoremap <C-kPlus> <Esc>:call AdjustFontSize(1)<CR>a
inoremap <C-kMinus> <Esc>:call AdjustFontSize(-1)<CR>a

Obviously you can replace Consolas with the font you prefer.

Solution 2:[2]

How to change the font depends on how you are currently using Neovim:

For terminal Neovim

If you use Neovim in a terminal, to change the font neovim used, you need to change the font your terminal uses. Check your terminal manual on how to change font style and font size, etc.

For Neovim GUI client

For Neovim GUI client, you need to set the font in the file ginit.vim. ginit.vim is located in the same folder as init.vim[^1]. Different GUI clients have different command for setting the font you use and font size. An incomplete list of GUI client I have tried:

  • nvim-qt: Use the comamnd GuiFont inside ginit.vim to change font, for example, GuiFont Hack:h12 (suppose you have installed font Hack).
  • fvim: fvim is another Neovim GUI client. You can use set guifont=Hack:12 inside ginit.vim to set the font that fvim uses.

[^1]: Inside Neovim, use :echo stdpath('config') to show where that directory is for your platform.

Solution 3:[3]

I use Neovim-qt version on my Ubuntu18.04. But I use the same config file for my vim.

After trial-and-error, I found the way to change neovim font to FiraCode Monospace. Although you could type the command :Guifont Fira Mono:h12 inside GUI to change the currently used font, it works only once. After you close the GUI, need to set up the font again. : (
Or you need another config file ginit.vim to set up GUI-related things. The same problem of setting up font for GUI, just write GuiFont Fira Mono:h12 in ginit.vim.

Solution 4:[4]

Apart from the answers in this question, the reason many scripts/plugins that works for vim/Gvim but not NeoVim (qt) is that in NeoVim, the font is defined by Guifont instead of guifont.

Solution 5:[5]

i used neovim in wsl so if you asking in wsl i could help. change the terminal font you will able to do that at list in wsl.

so download and install font of your need and cmd > properties > font and choese your font

Solution 6:[6]

Adding to the other great answers: if you prefer to have something in lua that does all that, you could use size-matters.nvim. It's little plugin I had fun writing for this purpose.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 jdhao
Solution 3 Yossarian42
Solution 4 X.Arthur
Solution 5
Solution 6 Truiiya