I'm running Ubuntu 9.10. Whenever I open the gvim application, I have to select a custom font (Edit→Select font). I would like gvim to remember my choice. Perhaps I need to edit the ~/.vimrc file, I am not sure.

How can I make gvim remember my preference?


Close. Set the font through the gui, then use the command (: to get the prompt) set gfn? to get the current font string. It should look something like this:

guifont=Mono Uralic 10

Then edit/create ~/.gvimrc and add the line:

set gfn=Mono\ Uralic\ 10

Note: You need to escape the spaces from the output (as I have above)

  • 4
    gfn is just shorthand for guifont, so the command could also be set guifont=Mono\ Uralic\ 10. And it works if you put it in .vimrc too. – frabjous Sep 3 '10 at 16:21
  • 2
    @frabjous: gvim, not vim, should be the one to read .gvimrc; so I think a gvim related option belongs to .gvimrc. – ΤΖΩΤΖΙΟΥ Sep 4 '10 at 0:27
  • Dec. 2019 - not working in ~/.vim/vimrc for me, but works in ~/.vim/gvimrc – Terry Brown Dec 16 '19 at 18:23

Here's an automated approach. (I've also made the code below a plugin.)

Select the font you want to use.

Paste this into Gvim in command mode (to set up the map):

map -- :let @a=&gfn<CR>:e ~/.gvimrc<CR>Go<Esc>"apV:s/ /\\ /g<CR>Iset guifont=

Then type -- (to activate the mapping).

You should now be editing your .gvimrc with your current font set at the bottom. Save the file and open another Gvim to test that it works correctly.

What the mapping does:

  • :let @a=&gfn<CR> Copy the current font setting into our a register
  • :e ~/.gvimrc<CR> Edit our gvimrc (whether it exists or not)
  • Go<Esc> Add a new line to the end of the file
  • "ap Paste the font setting
  • V:s/ /\\ /g<CR> Escape spaces
  • Iset guifont= Put the set variable text before our setting

two options here to save font choice for Gvim

  1. in $HOME/.vimrc file (this config file is for terminal Vim):
if has('gui_running')
    set guifont=Consolas\ Regular\ 12
  1. make a separate config file for Gvim, $HOME/.gvimrc:
" use vim config
source $HOME/.vimrc
" set gui font
set guifont=Consolas\ Regular\ 12

Currently, I am using Vim8.0, thus the vimscript grammar is different from version 7.x

Not the answer you're looking for? Browse other questions tagged or ask your own question.