Powerlineでカッコよく - エディタ編(Vim)

【連載】

にわか管理者のためのLinux運用入門

【第211回】Powerlineでカッコよく - エディタ編(Vim)

[2020/01/07 08:00]後藤大地 ブックマーク ブックマーク

Linuxディストリビューションでは「Vim」がデフォルトのエディタに設定されていることが多い。コマンド名は「vim」だったり、「vi」だったりするが、いずれにせよ実体はVimだ。本連載で取り上げているUbuntu 18.04 LTSでも、Vimがviで実行される仕組みになっている。

Ubuntu 18.04 LTSのデフォルトVimの挙動

Vimでは下部のステータスラインを結構アグレッシブにカスタマイズできるのだが、この部分はPowerlineで”クール”に設定可能だ。Cascadia Code PLフォントやCascadia Mono PLフォントが使えるようになったので、VimでもPowerlineを使ってみよう。

設定ファイル~/.vimrc

Vimの設定ファイルは~/.vimrcだ。Vimはさまざまな設定ができるし、この部分はユーザーや開発者の好みが大きく出る部分なので、説明し始めるときりがない。ここではそうした設定ファイルのサンプルの1つとして、~/.vimrcを掲載しておく。~/.vimrcに何も設定をしていないのなら、以下のサンプルをそのままコピー&ペーストしてもらえればと思う。

" evim.vim will already have done these configuration.
if v:progname == "evim"
  finish
endif

" ----------------------------------------------------------------------
" Dein plug-ins management
" ----------------------------------------------------------------------
if &compatible
    set nocompatible
endif

set runtimepath+=~/.cache/dein/repos/github.com/Shougo/dein.vim
if dein#load_state('~/.cache/dein')
    call dein#begin('~/.cache/dein/')
    call dein#add('Shougo/dein.vim')
    call dein#add('Shougo/unite.vim')
    call dein#add('junegunn/seoul256.vim')
    call dein#add('vim-airline/vim-airline')
    call dein#add('vim-airline/vim-airline-themes')
    call dein#end()
    call dein#save_state()
endif

filetype plugin indent on

if dein#check_install()
    call dein#install()
endif

" unite
nnoremap <silent> <C-o> :<C-u>Unite file buffer<CR>
autocmd FileType unite nmap <silent><buffer> <ESC><ESC> q

" seoul256
let g:seoul256_background = 233
colo seoul256

" vim-airline
let g:airline_powerline_fonts = 1
let g:airline_theme = 'minimalist'
let g:airline_theme = 'tomorrow'
let g:airline_theme = 'molokai'

" ----------------------------------------------------------------------
" How to install Dein:
"   mkdir -p ~/.cache/dein
"   cd ~/.cache/dein/
"   curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
"   sh ./installer.sh .
"   rm ./installer.sh
" ----------------------------------------------------------------------

" allow [Backspace] over insert mode to remove charactors
"  start - allow all charactors to remove
"  eol - allow to remove eol and join lines
"  indent - allow to remove indent in autoindent mode
set backspace=start,eol,indent

" allow some keys to move the cursor left/right to move to 
" the previous/next line when the cursor is on the first/last
" character in the line.
"  b - [Backspace]  normal visual 
"  s - [Space]      normal visual
"  < - [Left]       normal visual
"  > - [Right]      normal visual
"  [ - [Left]       insert replace
"  ] - [Right]      insert replace
"  ~ - ~            normal
set whichwrap=b,s,[,],<,>,~,h,l

" mouse feature off
set mouse=

" syntax highlight on
syntax on
set nohlsearch " non-highlight for search keyword
set cursorline " use cursorline indicator

" line numbers on
set number

" status line on
set laststatus=2 " always displaying status line
set statusline=%F%r%h%= " statusline format

" incremental search and not case-sensitive on
set incsearch
set ignorecase

" use extended menu complementation feature
set wildmenu wildmode=list:full

" use decimal instead of octal
set nrformats=

" set tab indent depth
autocmd Filetype xml set tabstop=1 shiftwidth=1 softtabstop=1
autocmd Filetype html set tabstop=1 shiftwidth=1 softtabstop=1

" displayed line movement gj/gk as default instead of j/k
nnoremap k gk
nnoremap gk k
nnoremap j gj
nnoremap gj j

" for useful argdo mutli-files replaces
set hidden

" autoload configurations files
set runtimepath+=~/.vim/
runtime! userautoload/*.vim

" load user .vimrc configuration file
if filereadable(expand('~/.vimrc.mine'))
  source ~/.vimrc.mine
endif

この~/.vimrcは、Vimの基本的な設定とプラグイン管理機能のセットアップ、Powerline風ステータスラインを実現するためのプラグインの設定と、そのほかいくつかのプラグインを設定している。

プラグイン管理「Dein」と「vim-airline」

Vimはプラグインで機能を拡張することができる。Vimでは通常、手動でプラグイン管理を行うか、サードパーティ製のプラグイン管理機能を使用する。自分の慣れたプラグイン機能を使ってもらえればよいのだが、ここではDeinを使って管理を行っている。

Deinを使う場合、次のように最初にDeinをインストールする必要がある。

mkdir -p ~/.cache/dein
cd ~/.cache/dein/
curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
sh ./installer.sh .
rm ./installer.sh

パスは先程の~/.vimrcの内容と合わせてある。パスを変えるなら~/.vimrcの内容とこちらのコマンド内容の双方を変更していただきたい。

最初の起動でプラグインを自動インストール

~/.vimrcの内容はおいおい説明するとして、ここでは先に掲載した~/.vimrcとDeinを使う場合のセットアップ方法を紹介しておこう。まず、ここまで準備した状態でvimを実行すると、次のような感じでいつもとちょっと違う表示が行われる。

最初の起動でDeinがほかのプラグインをインストール中

キー入力しても、おかしな反応をするはずだ。実はこの段階で、Deinによってほかのプラグインのインストールが行われる。画面が変わるまでおとなしく待とう。

表示が次のように切り替われば、プラグインのインストール完了だ。

Deinによるプラグインインストール完了

これでPowerline風のステータスラインを実現するvim-airlineプラグインが動作するようになった。Cascadia Code PLフォントかCascadia Mono PLフォントがインストール済みで、Windows Terminalなどのターミナルアプリケーションがそのフォントを使うように設定してあれば、次のようにVimのステータスラインがPowerline風の表示になっていることを確認できる。

vim-airlineでPowerline風ステータスラインを実現した状態

vim-airlineではVimのモードに合わせて表示が切り替わる。慣れてくると、この動きもなかなか心地良い。

モードでステータスラインの表示が切り替わる

VimのステータスラインがPowerline風の表示になったから編集効率が上がるとか、開発効率がアップするとか、そういうことはあまりないかもしれないが、デフォルトのステータスラインより何となくカッコよくなった気はする。たまにはこうした設定で気分を変えてみるのも良いのではないだろうか。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
対話システムをつくろう! Python超入門
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
PowerShell Core入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る