これはVim Advent Calendar 2018 その2
の14日目の記事です。
この記事の概要
まずは一句。
ビムヘルプ
使ってみると
あら便利
vimの:help
がよくできていることに最近、今更ながらに気づきました(おそすぎる)。
この記事は私と同じように、まだ:help
を読んでいなかった方の、その背中を押すような内容となります。
というわけで、まずはVim
の:help
のどこがよくできるかについて三点、簡潔に書いていきます。
(本当はもっとありますが)
vim :helpがユニークな3つのポイント
1. 基本的に両手をキーボードから離さずにドキュメントを読み進められる
両手をキーボードに置いたまま、ドキュメントを自由に読み進めていけるのは本当に素晴らしい体験です。そして、vim
を使う楽しさも併せて感じさせてくれます。
ドキュメントを読み進めていくうちに、操作にも慣れてきて、さらに素早くドキュメントの中を駆け回れるようになる...するともっと楽しくなって、気づくと、もうvim
の虜
2. ページ間の移動が爆速(ローディング時間なし)で、ストレスフリー
ドキュメント自体がローカルにあるというのが要因なのですが、待ち時間なしでドキュメント内を移動できるというのは本当に素晴らしい体験だということを改めて感じさせてくれるのが、このvim
の:help
の素晴らしいところ。
気になる事柄を瞬時に検索できます。
3. 読んだ傍から実践できる
ドキュメントを見たそばから学んだことを実践できるなんて、そんな素晴らしいことがあるでしょうか!?vim
を深く知ろうと思うモチベーションにもなりますし、vim
のドキュメントはそういう意味からもよく考えられているなと思った次第。
:helpの歩き方
では早速実践。
:help
、:h
でヘルプが起動します。
また、:h terminal
などで知りたい内容についてのhelpを直接開けます。
:h | only
と打つことで最初から画面を分割せずにヘルプを開けます。
後述しますがfzf.vim
のセットアップが完了していれば:Helptags
と打つと、いい感じにvim
で:help
内のコンテンツを検索できます。
:help
の使い方についてはhelpのトップによく書かれているので、これを読み込んでおけばまず問題ないと思います。
と、これだけだと、流石に味気ないので、よく使うことコマンドと用途を下に書きます。
まずはこれだけ認識して、ひとまずヘルプの中を歩き回ってみると楽しい気分になれます。
よく使うコマンド
文字通り項目ジャンプ
-
Ctrl+]
-> 項目へジャンプ -
Ctrl+T
,Ctrl+O
-> 元の場所へ戻る
ジャンプしたい項目のタグへ移動するために
-
W(Shiftありなし、どちらも)
-> 次の単語の先頭にジャンプ -
B(Shiftありなし、どちらも)
-> 直前の単語の先頭にジャンプ
サクサクーっと流し読み用途で主に使う
-
Ctrl+D
-> 半画面下へ移動 -
Ctrl+U
-> 半画面上へ移動
気になるワードは検索かけて調べる。検索もキーボードから手を離さなくて良いので便利
-
/{検索ワード}
-> 文字通り検索
以上のようなコマンドを主に使いながら、気になる項目のタグ上で(※)、Ctrl+]
を押してその項目に飛び、そこから説明を読み進めて、また気になるタグがあればさらに飛んで...という形で際限なく読み進めていくことができます。
(※実際に見てみると分かりますが、タグはそれと分かるように文字の色が変わっています)
先ほども書きましたが。help
自体の動作も軽く、Ctrl+]
打つと瞬時に項目へジャンプが完了するので、結構サクサク読み進められて、それがまた快感だったりします。
ある種の読書体験として非常にクオリティの高いものを提供しているのではないでしょうか?
ウィンドウ分割して、複数の内容を一度に参照できるのも便利です。
さらなるhelpの歩き方(h_eastさんに感謝!)
h_eastさんより、さらなるhelpの歩き方
を教えていただきました!
(コメント欄も参照してみてください)
-
<C-D>
をタイプすると入力したキーワードを含む項目を一覧表示します。
例えば下記のように:h 'wildm
と入力した状態でCtrl-D
と入力すると、入力したキーワードを含む項目を一覧で表示してくれます。
:h 'wildm{ここでCtrl-Dを押す}
'wildmenu'@en 'wildmode'@en 'wildmenu'@ja 'wildmode'@ja
-
<Tab>
をタイプするとコマンドライン補完がおこなえます。
コメントにも書いていただいたように:set wildmenu
と打つか、.vimrc
にset wildmenu
を追記しておけば、項目メニューが表示されるようになって便利
:h 'wildm{ここでTab押す}
キーワードの後ろに@jaを付けてをタイプすると、日本語ヘルプの項目のみを一覧表示してくれます。
コメントにも記載していただいた例として、下記のように:h wildm@ja
と入力すれば、wildm
に対する日本語項目のみを一覧で表示してくれます。
:h 'wildm@ja{ここでCtrl-Dを押す}
'wildmenu'@ja 'wildmode'@ja
-
:helpgrep
でhelp内を検索できます。結果はquickfixウィンドウに表示されます。
:helpgrep Terminal↵
:copen↵
- キーワードの後ろに
@ja
を付けると日本語ヘルプだけを検索対象にできます。
(8.1.0315 以降でないと正しく動作しません)
:helpgrep Terminal@ja
さらなるVimの歩き方、その2(rbtnnさんに感謝!)
rbtnnさんより、さらに:help
内を効率良く駆け回れる方法を教えていただきました!
(コメント欄も参照してみてください)
:set keywordprg=:help
とVim上で打つか、.vimrc
に
set keywordprg=:help
と追記することで、:help
内のキーワード上でShift-K
を押すことで、そのキーワードのヘルプを引くことができるので、これでさらに爆速で:help
の中を歩き回れますね!
vim :helpを読むための敷居を下げる3つの事柄
ここまでで、今まで:help
を読んだことのない方にも、少しはvim :help
に興味を持っていただけたのではないでしょうか?
ここから、より:help
を読んでみようと思えるかもしれない事柄を3つ書いていきます。
1. Docker上に最新のVimを構築し、:helpを日本語で読んでいく
せっかく:help
を読んでいくなら、最新のvim
をビルドしたてで読んでいきたいですよね。
ただこの場合、:help
は英語となっています。
でも、日本語で読みたい方も多いですよね。
というわけで、最新のVim環境をローカルに構築し、日本語ドキュメントを表示させる方法を下に記載していきます。
手頃に試せるvim
環境がない方、vimに興味なかったけど...なんか試してみようかなって方は、下記のリポジトリを参照することで、環境を汚さずに気軽にローカルのdocker
上で最新のvim
環境を試すことが可能です。
(ただしDocker
環境は必要ですがね。また、dockerのインストールについてはここでは触れません。)
このリポジトリ自体は、元は自身が最新のvim
環境で色々と気軽に試せるように作ったものです。
最新のvim
のみをインストールしたdocker image
が出来上がります。
# セットアップ
git clone https://github.com/shinshin86/vimrc-dev-starter-kit-at-docker.git
cd vimrc-dev-starter-kit-at-docker
docker build -t vimrc-dev .
docker run -it --rm --name vimrc-dev-01 vimrc-dev /bin/bash
上記手順を行った後、vim
と打つと最新のVimが立ち上がるかと思います。
(ちなみにmac
上でしか動作検証していないので、もし動かないなどあればコメントかgithub
にissue
飛ばしてもらえると幸いです。)
ちなみにこの状態でvim
から:help
と打つと英語のhelpが立ち上がるかと思います。
ここから:help
の日本語化を行っていきます。
日本語で表示するためのプラグインを使います。
プラグイン管理にはvim-plug
を使うことにします。理由は特にありません。
https://github.com/junegunn/vim-plug
# curlインストール
apt-get install -y curl
# vim-plugインストール
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
次に~/.vimrc
に下記の内容をコピペします。
""""""""""""""""""""""""""""""
" プラグインセットアップ
""""""""""""""""""""""""""""""
call plug#begin('~/.vim/plugged')
" 日本語help
Plug 'vim-jp/vimdoc-ja'
call plug#end()
""""""""""""""""""""""""""""""
set encoding=utf-8
set helplang=ja,en
あとはvim
を起動させてから:PlugInstall
と打てば、セットアップ完了です。
:h
と打って日本語のhelp
が表示されることを確認してください。
2. fxf.vimを使って、より本能的に:helpの中を駆け回る
より高速に:helpを駆け回るために、fzfを使用してみようと思います。
fzf
の説明はたくさん出ているので、検索してみてください。
例えば下記の記事など(実体験談)
https://qiita.com/kamykn/items/aa9920f07487559c0c7e
では、先ほどのDocker
内で作業していきます。
# fzfをインストール
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
source ~/.bashrc
fzf
をvim
から使うために、fzf.vim
をvim-plug
にてインストールします
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
再びvimを起動して、:PlugInstall
でfzf.vim
の設定が完了します。
そして:help
を開き、:Helptags
と打つことで、より効率的にHelp内のtagsを検索できるようになります。
(別に:help
を開いていなくとも、:Helptags
で開けるので困ったときにも便利。)
例えばchannel
の何かしらについて知りたいと思ったら、
:Helptags
と打ち、channel
と打ったあたりで候補がずらずらと出てきます。
目的もなく見ているだけでも結構楽しめます。
3. vim - help関連の面白そうな記事を読んで、いろんな楽しみ方を知る。
今回アドベントカレンダーで:help
関連のことを書こうと思ったとき、試しにvim help
で検索をしてみたら、素晴らしいhelp
関連の記事がたくさん見つかりました。
(それはもう、help
のポストをやめようと思うぐらいに素晴らしい記事が沢山...)
その中でいくつかの興味深い記事をこちらに貼ります。これを見ると、:help
を読むためのモチベーションがさらにアップするでしょう。
最後に
駆け足ですが、vim
の:help
の面白いところ・興味深いところについて好き勝手に書かせてもらいました。
上に載せたDocker image
ですが、失敗しても気軽に構築できる点を利用して、vimrc
をいろいろいじりながら:help
を開いてみるのも面白いかもしれません。
というわけで、皆様、年末も良いVimライフを!