独自のカラースキームを作成するにはどうすればよいですか?


16

どのファイルを作成する必要がありますか?これらのファイルの中には何がありますか?使用し、それに応じて色の値を変更できるデフォルトのカラースキームファイルはどこかにありますか?

回答:


15

カラースキームの場所

まず、Vimはランタイムフォルダーでcolorsディレクトリを探します。すべてのカラースキームを保存する場所です(:help 'runtimepath'

これは、~/.vim/colorsフォルダに存在するファイルが1つ必要になることを意味します。デフォルトcolorschemesはに位置している$VIMRUNTIME/colors場合には、$VIMRUNTIME通常、/usr/share/vim/vim74または/usr/local/share/vim/vim74(Vimのバージョン7.3のためのvim73の代替vim74)のVimがインストールされている方法に応じて、ディレクトリ

さあ、楽しいところに行きましょう。

カラースキームを作成する

独自のカラースキームの作成を始めるために、デフォルトのカラースキームを見て、それらを変更してみることを強くお勧めします。

そのため、デフォルトのカラースキームを$VIMRUNTIME/colorsフォルダーからフォルダーにコピーし~/.vim/colorsます。デフォルトのカラースキーム名と区別できる名前を付けてください。したがって、desertデフォルトでVimに付属しているカラースキームをコピーした場合は、ファイルdefault_mod.vimにその名前を付けてください。colorschemeファイルを開き、を変更しlet g:colors_nameて、デフォルトのcolorschemeファイルとも区別します。慣例により、これはcolorschemeファイル名と同じにする必要があります。

カラースキームでは、あなたがしなければならないすべてはの色を与えているctermbgctermfgguibgguifgハイライトグループに組み込まれた異なるため(端末背景、ターミナルフォアグラウンド、GUI背景、それぞれのGUIフォアグラウンドカラー用)。変更可能なハイライトグループのリストを確認するには、をチェックしてください:help highlight-default。オプションで、ctermおよびgui属性を使用して、強調表示グループを太字または斜体にすることを指定することもできます。

たとえば、これは文字列に緑色を設定します:

highlight String ctermbg=NONE ctermfg=107 guibg=NONE guifg=#95B47B

ハイライトリンクを使用して、ハイライトグループを別のグループにリンクすることもできます。これは、2つのハイライトグループを同じ色にする場合に便利です。

たとえば、diffAdded上記で定義した文字列ハイライトグループにハイライトグループをリンクできます。

highlight link diffAdded String


colorscheme.vimファイルの1つをコピーして別のフォルダーに入れるだけで、他のマシンで再利用できますか?たとえば、githubのリポジトリに配置すると、プラグインマネージャーのいずれかでクローンを作成したり、有効にしたりできますか?
dkns

@dkns、うん、まさに。たとえば、colorschemeに「dkns_colorscheme.vim」という名前を付け、colors /ディレクトリに配置してからGithubにプッシュできます。プラグインマネージャーがインストールされている場合、このリポジトリを複製すると、colorschemeがVimで利用可能になります。
akshay

別の質問。コメントとしてここに投稿するか、別の一般的な質問をするべきかはわかりません。ctermの色の値を見つけるにはどうすればよいですか?このテーマをGUIとターミナルで同じように見せたいのですが、16進値をcterm値に変換する方法がわかりません。
dkns

1
@dkns端末の色は、端末エミュレータで使用されるカラーパレットに大きく依存しているため、これを行うのはかなり困難です。カラースキームを作成していたとき、256色のそれぞれがどのように見えるかを表示すると便利でした。binフォルダーでこの小さなスクリプトを使用します。カラーピッカーを使用して色を選択するだけで、同じguiとctermの色を確保できます。gui vimにはより多くの色があるので、cterm-> guiから行きます。お役に立てば幸いです。
akshay


0

これを自動化するツールがいくつかあります。

  • vivify:非常に複雑で、各ハイライトグループの各色を手動で選択する必要があります。
  • vimcolors.org:非常にシンプルで簡単。いくつかの色を選択するだけで、自動的にスキームが生成されます。

0

もう1つの優れたツールは、ERBを使用するromainlによるRNBです。ERB(Embedded RuBy)は、テンプレートからテキストを生成できるRubyの機能です。

したがって、このツールの使用法は非常に簡単です:まず、カラースキームの命名法と、もちろん実際のコンテンツ(色の見え方、使用するグループなど)に対応するさまざまな変数を定義する必要があります著者があなたを助けるためにたくさんのコメントを書いたので、かなり簡単です。次に、カスタマイズしたテンプレートをerbに渡すだけで、適切なファイルが生成されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.