$cat2koban->blog;

猫の手も借りたい

vim-startify + figlet + boxes を利用して vim を起動したときにロゴを表示させる

f:id:sorehaedamame:20200614230710p:plain

経緯

黒い画面と睨みっこをしていて、なんとなく遊び要素が欲しいなとふと思ったのでやってみました。

環境

github.com

boxes.thomasjensen.com

www.figlet.org

インストール

vim-startify

vim-plug を使用している場合

Plug 'vim-startify'

figlet

$ brew install figlet

boxes

$ brew install boxes

vim-startify の設定

自分は以下のように vim の設定ファイルに記入しています。 人によって異なると思いますが、プラグイン別に設定ファイルを分けていないようであれば、 neovim だと、 ~/.config/nvim/init.vim で、 vim だと ~/.vimrc になるのかなと思ってます。

  " vim 起動時に vim-startify も一緒に起動させる
  " ref: https://github.com/mhinz/vim-startify/blob/master/doc/startify.txt#L309
  let g:startify_session_autoload = 0

  " ref: https://vim.blue/startify/
  " file 表示数
  let g:startify_files_number = 5

  " ref: http://mewbies.com/acute_terminal_fun_01_get_ascii-fied_on_the_terminal.htm
  " ref: https://github.com/ascii-boxes/boxes/blob/master/boxes-config
  let g:startify_custom_header = ([
  \'                         \\\///                         ',
  \'                        / _  _ \                        ',
  \'                      (| (.)(.) |)                      ',
  \' +------------------.OOOo--()--oOOO.------------------+ ',
  \' |               __ ___   __         __               | ',
  \' |   _________ _/ /|__ \ / /______  / /_  ____ _____  | ',
  \' |  / ___/ __ `/ __/_/ // //_/ __ \/ __ \/ __ `/ __ \ | ',
  \' | / /__/ /_/ / /_/ __// ,< / /_/ / /_/ / /_/ / / / / | ',
  \' | \___/\__,_/\__/____/_/|_|\____/_.___/\__,_/_/ /_/  | ',
  \' |                   _   __                __         | ',
  \' |                  / | / /__  ____ _   __/_/___ ___  | ',
  \' |                 /  |/ / _ \/ __ \ | / / / __ `__ \ | ',
  \' |                / /|  /  __/ /_/ / |/ / / / / / / / | ',
  \' |               /_/ |_/\___/\____/|___/_/_/ /_/ /_/  | ',
  \' |                                                    | ',
  \' +------------------.oooO-----------------------------+ ',
  \'                    (   )   Oooo.                       ',
  \'                     \ (    (   )                       ',
  \'                      \_)    ) /                        ',
  \'                            (_/                         ',
  \'',
  \])

以下の部分にロゴを書いていきます。

  let g:startify_custom_header = ([
  \ ..
  \ ...
  ])

ロゴの作り方

今回僕は、figlet と呼ばれるアスキーアートを生成してくれる CLIツールと、boxes と呼ばれる文字をいろんなデザインの箱で囲ってくれる CLIツールを用いてロゴを作りました。 ちょっと手間なんですが、僕の場合 cat2kobanneovim の2行構成にしたかったので、わざわざ2個目の neovim の方をコピペしてはキリ貼りしながら、なんとか2行にしました。

$ figlet -f slant cat2koban | boxes -d ian_jones

f:id:sorehaedamame:20200614234331p:plain

f:id:sorehaedamame:20200614234648p:plain

ちなみに、 figlet 単体だとこういう感じで表示されて、この出力結果が パイプ ( | )boxes というコマンドに渡されているのがわかるかと思います。 f:id:sorehaedamame:20200614234550p:plain

f:id:sorehaedamame:20200614235455p:plain

あとは結果を | pbcopy するなり コピーするなりして、vim の設定ファイルに貼りつけます。ここで注意なんですが、文字列としてこのロゴを扱っているので、\" ... ", というようにして、ロゴを一行一行囲む必要があります。

  let g:startify_custom_header = ([
  \'                         \\\///                         ',
  \'                        / _  _ \                        ',
  \'                      (| (.)(.) |)                      ',
  \' +------------------.OOOo--()--oOOO.------------------+ ',
  \' |               __ ___   __         __               | ',
  \' |   _________ _/ /|__ \ / /______  / /_  ____ _____  | ',
  \' |  / ___/ __ `/ __/_/ // //_/ __ \/ __ \/ __ `/ __ \ | ',
  \' | / /__/ /_/ / /_/ __// ,< / /_/ / /_/ / /_/ / / / / | ',
  \' | \___/\__,_/\__/____/_/|_|\____/_.___/\__,_/_/ /_/  | ',
  \' |                   _   __                __         | ',
  \' |                  / | / /__  ____ _   __/_/___ ___  | ',
  \' |                 /  |/ / _ \/ __ \ | / / / __ `__ \ | ',
  \' |                / /|  /  __/ /_/ / |/ / / / / / / / | ',
  \' |               /_/ |_/\___/\____/|___/_/_/ /_/ /_/  | ',
  \' |                                                    | ',
  \' +------------------.oooO-----------------------------+ ',
  \'                    (   )   Oooo.                       ',
  \'                     \ (    (   )                       ',
  \'                      \_)    ) /                        ',
  \'                            (_/                         ',
  \'',
  \])

そしてターミナルで引数なしで vim を起動させてみると、こうなります。

f:id:sorehaedamame:20200614230710p:plain

皆さんも自分のロゴを作ったりして、vim に少しの遊び要素を追加してみてはいかがでしょうか?