vimの使い方をKoRoNさんに助けを求めて感動したことについて

(本題は大分下)


・以下、前置きの前置き
学生時代にLinuxの存在を知り、そのときにvimエディタも知った。
最初は奇っ怪で取っ付きにくく、扱いづらいと思っていた。
それは十数年経った今でも変わらない感想だ。

社会人 数年経過後、Windowsゲームで遊べないように、MacBookProを買った。
そこで、Vimの環境構築をして、数年経過した。
まま快適な環境だったとは言え、標準設定のまま、プラグインをつけずに使う日々だった。
というのも派遣先で扱うときは、ネットワークに繋がっていないばかりか、自前のキーボードを使えないため、用意されたフルキーボードを右手だけで操作しようと頑張っていたほどだからな(Escキーを右手打ち^^)。
Vimどころではなかったが、仕事だから仕方ない。



















# OSの差異(本題の前置き)
今までMac使いだったが、ひょんな事でWindowsマシンを手に入れた。
そして、同じようにVim環境を構築して使おうと思ったが、Macでの挙動と異なる。
[.vimrc](https://github.com/chesscommands/dotfilesVim/blob/master/_vimrc)は同じのを使っているのに、挙動が異なる。


















## Vimの勉強方法
ある程度は書籍から学ぶが、情報量が多く、とてもじゃないが理解できる範囲を軽く超える。


![9784048916592.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/e3b46e5b-320b-5e04-5777-d15fc485e09d.jpeg)


手を動かしながらでも情報量が多く、吸収できない。












### 太古の書籍
今まで読んだVimの本で、改訂版を出してほしいと切望する本が1冊ある。


![4774120189.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/b1787d12-eae2-5b62-5848-bc64c308b359.jpeg)




如何せん、索引がかなり最悪で、使い物にならない。
ここを引きやすいように修正してくれたら紙と電子媒体(出てないけど)の両方を買う。
それぐらい細かく説明してくれてて役立ちそうだった。
索引から調べられないので、実際は役立たせることができない。




















## Vim搭載のヘルプ機能
当然ながら書籍だけでなく、Vim本体にも[ヘルプ](https://vim-jp.org/vimdoc-ja/)がある。
呼び出し方は至って普通だが、例を出す。

全体を出すにはexコマンド上で'help'と打てばいいだけ。

```Vim:vim
:help
```

![メインヘルプファイル.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/c6aeef5f-6e3e-6a20-d886-4c75b8333fa6.jpeg)


特定のコマンドを調べる場合は、そのコマンド名を後ろにつければ、そのコマンドに関するヘルプが開く。



















### 特定コマンドのヘルプの開き方
Vimの終了はExコマンド上で'q'を打てば終了する。

```Vim:vim
:help :q
```

その逆で、終了方法がわからない場合、ヘルプから’q'を引き出す方法が必要になる。
いわゆる逆引きだ。

```vim:vim
:help 終了
```

全く引けない。

![終了検索err.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/056c9fff-2c96-5ec6-f290-92e3989b5abc.jpeg)

やはり、逆引きはできないようだ。

しかし、検索はできるようだ。

```vim:vim
:helpgrep 終了
```

そして、求めた結果と違う’終了’が出てきた。

![ヘルプグレップ.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/5a1b3e94-0145-beb2-2834-810d92b849dd.jpeg)

まっしゃ〜んめぇ。



ここまでは前座に過ぎない。

※ちなみに、タイトルに"[KoRoNさん](https://www.kaoriya.net)"と付けているが、[香り屋さん](https://plus.google.com/+TaroMURAOKA)のこと。















# ヘルプを使えずヘルプを出した(本題)
今まで書籍で勉強し、ヘルプコマンドの使い方も知っている。
しかし、どうしても調べられないコマンドがあった。
仕方ないため、恥を忍んで[MURAOKA Taro](https://twitter.com/kaoriya)さんに確認することにした。

ノーマルモードで大文字Lを打つ場合、Mac版Vimではカーソルが画面下部まで移動するが、Windows版Vimでは画面下部より上で止まってしまう。
どうすればいいのかわからないことを相談した。

答えをもらったときは恥ずかしさもあったが、それ以上に感動を覚えた。

















## 私の問題解決に至る(本題の本題)
kaoriyaさんからの返答は、ヘルプでLを調べれば出てくるというもの。
Lの使い方で問題が出てきたのだから`L`について調べれば済む話だった(デスノートの話ではない)。

要は

```vim:vim
:help L
```

で、欲しい答えが得られる。

![大文字エル.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/3f37ce9f-b700-3c79-2b38-269261efc80a.jpeg)

たったこれだけのことだが、なぜかこの使い方に行き着かなかった。
私が調べようとした方法は、**カーソルを画面下部に移動させる方法**ばかりを調べていた(要は、逆引きすることしか思いつかなかった)。
インターネットで検索を掛けるが、同じ問題を抱えた人を見つけられず、かなり困っていた(検索方法にも問題があったのだろう)。
上記通り、書籍の索引は使い物にならず、途方に暮れていた。

そこで[kaoriya](https://qiita.com/koron)さんに助けを求めるという愚行に走ったと言うわけだ。
何年Vimと付き合ってきたのか・・・心が折れそうだ。

そして、恥ずかしい。調べ方を教えてもらったことが尋常ではないぐらい恥ずかしかった。
恥ずかしいが、それ以上にヘルプの使い方を知ることができたのは感動だった。

今まで使い方を知っていたはずなのに、なぜか逆引きで調べることばかりに執着していた自分が恥ずかしくてたまらなかった。


### 問題解決用の設定
以下の設定をすれば解決した。

```vim:.vimrc
set scrolloff=0
```

この設定に行き着くまで、どれほどの時間と労力が費やしたのか・・・。
仕事ではなく、私独りでやっていることだから湯水のごとく垂れ流したところで文句は付けられないが・・・。














# 感動を伝えたい
今回アドベントカレンダに投稿したのは、書籍で勉強し、ヘルプの使い方も知っているのに、実際困ったら解決できずに壁にぶち当たるだけで終わるようなところに、[koronさん](https://github.com/koron)からの助言をもらえて、異常なほどの感動を覚えたことを伝えたいがために、投稿した。

知っているからと言って使いこなせるというわけではない。
使えるからと言って熟知しているわけでもない。

勉強して、頭でっかちになっただけでは生きていくのも辛いだけだと分かった(もちろん私の頭は大きくない。むしろ、小さいよ)。
そんな私は、今やニートです。
色々私が不器用なだけだからだろう。


















## 香り屋版Windows用Vim
香り屋さん配布のVimは、[特有の設定](https://sites.google.com/site/fudist/Home/vim-nihongo-ban/kaoriya-trouble "WindowsのKaoriya版vim/gvimの問題と対処")が組み込まれていることを知らなかった。
そのため、設定ファイルを共有するだけで同じ環境ができあがるとばかり思っていた。































# 派遣先でのVimの扱い　←今回の問題を自己解決できなかった序章
派遣先ではLinuxやUnixなど複数のOSを扱う現場があった。
そこでは、リーダがVimエディタを使いこなせないため、我々派遣社員に対して、使いにくいエディタを使うことは効率を落とすことになるため、WindowsOSにファイルを落としてきて、そこでサクラエディタなどを使って作業するように押し付けてくる現場だった。
自分が使いこなせず、使う気がサラサラ無いため、他の人も使いこなせないことを前提にした指示を出してきた。
小学生の頃から親に言われたであろう教養を忠実に守っているとも言える人のようだ。
我々世代は、”自分がされて嫌なことは他の人にもしないように”という教えを受けたからな。ゆえに、自分が使いこなせないエディタは他の人も使いこなせないという気遣いの出来るリーダだった。
そんな人はそれ以外の部分でも全く仕事ができなかったのは言うまでもない。
そして、そんな人は、派遣社員の行動を理解できないため、派遣社員は仕事ができないやつばかりだとため息をついて終わっていた。


私は派遣社員なので、現場の指示に従うのが仕事になる。
そのため、従った。
[サクラエディタ](https://sakura-editor.github.io)最高だよ。




## 正社員の目的は派遣社員の目的ではない　←今回の問題をヘルプの使い方に紐付けられない原因
例
正社員の仕事の目的に、”健康を保つこととして食事をすること”を掲げている場合、派遣社員に健康を保つ指示を出したり、食事する指示を出すのはお門違い。
通じない指示を出したところで行動できないため、無駄な指示になる。
そのため、正社員が達成する目的を共有するのは無駄であり、無意味なことになる。
正社員がやるべきことは、具体的な指示を出すことに尽きる。
例えば、派遣社員に、
　　1.箸を持つように指示を出し、
　　2.その箸でご飯をつまむように指示を出し、
　　3.そのご飯を口に運んでよく噛む指示を出し、
　　4.その後飲み込む指示を出す。
上記のように、1つの目的を達成するために、複数の指示から構成された指示として仕事を与える必要がある。
そうすれば、必然的に食事をする目的が達成される。
そのため、指示に従いさえすれば目的を達成することを考えれば、目的を共有するのは時間と労力の無駄遣いになる。
また、派遣社員は、具体的な指示もないのに、正社員の目的を達成するための自発的な行動はルール違反になる。

それを考えれば、誰からも指示を与えられなかったため、大文字Lをヘルプで調べることを思いつかなかったのかもしれない。

私は物心ついた頃から言われたことしかしないし、言われていないことには一切関わらなかった。
幼少時から社畜の派遣社員特性が身についていたのかもしれない(特殊能力持ちだとうらやましがってくれたらうれしい)。



## 勉強
派遣社員の場合は、自分から調べて勉強したところで、それを仕事に活かせることはごく稀にしか無いように思う。
そのため、ヘルプを舐め回すように調べ尽くし、すべてを身に着けたところで、正社員からVimを使うなという指示を受ければ、使ってはならず、勉強も無駄になる。
しかし、家に帰れば好き放題できるため、鍛錬は欠かせない。

### 勉強ついでの息抜き
香り屋さんとの会話動画
[Vimの教祖KoRoN氏登場！ #151](https://www.youtube.com/watch?v=zPvnd1_Eii4 "drikinによるチャンネル")
[Vim-sideがやってくる！ KoRoN氏が語るVim8の進化 #b013](https://www.youtube.com/watch?v=eWJuRFoMrZk "drikinのサブによるチャンネル")






## 就職活動
今回の問題が発覚したことで、今後の就職活動の軌道修正も視野に入れる必要があるだろう。
今まで派遣社員で頑張ってきた。
フトした気の迷いで正社員として頑張っていた時期はあるが、対応できずにすぐに退職した。
やはり、今後も指示を受ける立場である派遣社員を選ばなければ、仕事をこなすことは難しいだろう。

ベルトコンベアで流れてきたパンの上に胡麻を載せる仕事が良いかもしれない。
きっとVimの勉強も役に立つ。


## 自作キーボード
QMK搭載のキーボードは、好きなキー配列をキーボードに割り当てることが可能だ(Helixはゴミだがorz)。
そのため、Ctrlキーを親指に割り当てているため、とりあえず使いやすいと思いこみながらVimを家で使っている。
今後もVimを使いこなせるように勉強していこうと思う。

### 自作キーボードにはキーキャップが必要
矢印キーの使い方は、一般的なキーボードには存在しないため、[adeonhy](https://twitter.com/adeonhy/status/1057857517399695363)により、Viエディタ用の矢印を印字されたキーキャップが便利かも知れない。
他にも[KBDFANSからPre order Enjoypbt Vim keys](https://kbdfans.cn/collections/keycaps/products/enjoypbt-vim-keys)が販売されている。

![ヴィムキー.jpg](https://qiita-image-store.s3.amazonaws.com/0/82414/c1165ac2-b24a-40e0-4a86-088147900401.jpeg)


キーボードを見ながら打つような人は居ますまいが・・・。
だったら[高級キーキャップ](https://kbdfans.cn/collections/keycaps/products/gbtitanium-honeycomb-keycaps)を使う方が良い？



# 
以上。

香り屋さん、あのときは助けて頂きありがとうございました。