mkdir700

mkdir700

NeovimとWezTermでコードのキーワードを斜体で表示する方法

前書き#

あなたは VIM のコードで、一部が正体で、一部が斜体になっているのを見たことがありますか?例えば、以下のように:

image

私はこのスタイルが好きです:

プログラミングフォントに関しては、比較的細くて相対的にコンパクトなものが好きですが、コメントや特定のキーワードなどの目立つ部分には、より非公式で流れるような人間的なスタイルが好きです。
引用元:https://rubjo.github.io/victor-mono/

この記事では、Neovim + Wezterm を使用して、上記の斜体スタイルを実現します。

フォントのインストール#

victor-mono 公式サイトへのリンク

victor-mono のダウンロードリンク

  1. フォントをダウンロードします。

  2. ZIP ファイルを解凍します。

  3. フォントファイルをインストールします。

Windows では、ttf 形式を選択して、私は victor-mono の斜体しか使用しないため、VictorMono-Italic.ttfVictorMono-BoldItalic.ttfのみをインストールしました。

Wezterm の設定#

現在のユーザーディレクトリで.wezterm.lua を見つけます。存在しない場合は、新しく作成します。

config.fontconfig.font_ruleを設定します。私の場合、デフォルトでは Cascadia Mono を使用し、斜体の場合は Victor Mono を使用する方針です。

config.font = wezterm.font_with_fallback {
	'Cascadia Mono',
	'DengXian'
}
config.font_rules = {
	{
	  intensity = 'Bold',
	  italic = true,
	  font = wezterm.font {
		family = 'Victor Mono',
		weight = 'Bold',
		style = 'Italic',
	  },
	},
	{
	  italic = true,
	  intensity = 'Half',
	  font = wezterm.font {
		family = 'Victor Mono',
		weight = 'DemiBold',
		style = 'Italic',
	  },
	},
	{
	  italic = true,
	  intensity = 'Normal',
	  font = wezterm.font {
		family = 'Victor Mono',
		style = 'Italic',
		weight = 'Bold',
	  },
	},
}

Neovim の設定#

Neovim では、斜体表示をサポートするテーマを使用する必要があります。私はcatppuccinを使用しています。これは、lsp と tressitter と組み合わせて使用することで、コードの特定の構文部分を異なるスタイルで表示することができます。例えば、コードのキーワードを斜体で表示します。

require("catppuccin").setup({       
  styles = {                        
    comments = { "bold" },          
    properties = { "bold" },        
    functions = { "bold" },         
    keywords = { "italic" },        
    operators = { "bold" },         
    conditionals = { "italic" },    
    loops = { "italic" },           
    booleans = { "bold", "italic" },
    numbers = {},                   
    types = {},                     
    strings = {},                   
    variables = {},                 
  },                                
}

効果#

キーワード部分のみが斜体で表示され、他の部分は通常通りです。

image

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。