輪ごむの空き箱

Vim,Neovimのフォント変更方法について

Last updated on

はじめに(言い訳)

この記事はVim駅伝2023年03月13日の記事です。

本来、「闇の力への入門 - dein編 -」というタイトルで記事を書くつもりにしていたのですが、仕事が忙しくなかなか時間が取れなかったため書き切ることができませんでした。そのため急遽記事の内容を変更することとしました。Vim駅伝はこれからも続いていくと思うので別の機会に書こうとおもいます。

発端

年始に年末に注文していたThinkpadが届きました。

買ってまず最初にすることといえば、、、、そうVimとNeovimを導入することです。

そしてgVimとnvim-qtのフォント設定をしようと思ったのですが、設定方法がわからないという初歩的な問題にぶつかりました。Windowではコントロールパネルのフォント設定・windowsの設定から見れるフォント・そのフォントをダブルクリックした時に表示されるウィンドウと、複数箇所からフォントの名前の確認が行えます。しかし、それぞれ微妙に表示名が違うものがありどの名前をvimの設定ファイルに記載すればよいのかわからなくなりました。

ですので、今回は初歩的な問題かもしれませんがこの問題の解決方法を共有できたらと思います。

結論

:help guifontを見よう!!

解決方法

:help guifontを確認するとこのような記述があります。

	For Win32 and Mac OS:
	    :set guifont=*
 	will bring up a font requester, where you can pick the font you want.

set guifont*を渡すことで、フォントリクエスター(GUIで選択できるフォントウィンドウのこと?)が表示されて好きなフォントを選択することができます。

それぞれset guifont=*を実行した際に表示されるフォント設定ウィンドウはこのような感じです。

ここでフォントを設定したらこれで解決すると思いましたが、一時的に設定されているだけなので、vimを落とすと設定が初期化されてしまいます。そのため、設定したフォント名を設定ファイル(vimrcやinit.vim)に追記しましょう。

インサートモードでset guifont=<C-r>=&guifont<CR>とすることでguifontに設定した内容をバッファに挿入することができます。

フォント名に空白が含まれる場合は空白を_または¥ とすることで空白をエスケープすることができるそうです。

	- A '_' can be used in the place of a space, so you don't need to use
	  backslashes to escape the spaces.

2023.03.13 追記

set foo=bar の形式に拘らないのであれば、インサートモードでlet &guifont = <C-r>=string(&guifont)<CR>でもできるとthincaさんに教えていただいた。

おわりに

vimのヘルプは丁寧に書かれてあるので問題がおきたらまずはヘルプを叩きましょう。