22

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?

3 Answers 3

33

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)

3
  • 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, 2010 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, 2010 at 0:27
  • Dec. 2019 - not working in ~/.vim/vimrc for me, but works in ~/.vim/gvimrc Dec 16, 2019 at 18:23
2

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
1

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
endif
  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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .