LoginSignup
2

More than 3 years have passed since last update.

学校や職場で宗教弾圧を受けているvimmerにおすすめのzshrc

Posted at

vim is GOD

僕の学校の人間の9割以上がGUIのemacsを使っています。というのも、最初にそれでプログラムを教わるのでそのまま使っているひとが多いのです。
せっかくターミナルが使えるのだから、せめてCUIのemacsを使えばいいのに...
ほとんどの人間がemacs使いなのでvimmerは肩身が狭い思いをしています。
「vim?開いてもいきなり入力できないんでしょ?」「IDEがあるから...」「nanoだろやっぱ(第三勢力)」「は?メモ帳だろ?」そんな声が聞こえてきます。
ぶっちゃけ否定できません。エディタなんて一つ覚えておけば十分だし、わざわざ慣れない他のエディタを体験してよさを探したりなんて現実的ではありません(特にvimとemacsは)。僕もemacsのよさもあるのかなと触ってみようとしたことがありますが、3分持ちませんでした。
結局、人間は争うことを止めることはできないのかも知れません。悲しいですね。

自衛

しかし、学校の規則でもコーディングルールでもないのに少数派だというだけでvimmerが弾圧されている事態は看過できません。
せめて自分の環境だけでも、vimmerのプライドを保ち宗教弾圧と戦いたいものです。
zshrcに以下の設定を追加しましょう。

# vim ~/.zshrc
zshrc
alias emacs='(){echo "
                  ■■                                        ■■                                                                                    
                 ■■■■                                      ■■■■                               ■■■■■■■             ■■■■■■           ■■■■■■■■■      
                 ■■■■                                      ■■■■                             ■■■■■■■■■■          ■■■■■■■■■■         ■■■■■■■■■■■    
                                                                                           ■■■■■■ ■■■■■■       ■■■■■ ■■■■■■        ■■■    ■■■■■■  
                                                                                          ■■■■       ■■       ■■■■      ■■■■       ■■■       ■■■  
                                                                                         ■■■■                ■■■         ■■■■      ■■■        ■■■ 
                                                                                         ■■■                 ■■■          ■■■      ■■■        ■■■■
■■■         ■■■   ■■      ■■   ■■■■      ■■■■               ■■       ■■■■■■             ■■■                 ■■■           ■■■      ■■■         ■■■
 ■■■        ■■    ■■      ■■  ■■■■■■■  ■■■■■■■              ■■      ■■■■■■■■■           ■■■                 ■■■            ■■■     ■■■         ■■■
 ■■■       ■■■    ■■      ■■■■■■ ■■■■ ■■■■■■■■■             ■■     ■■■■   ■■■           ■■■                 ■■■            ■■■     ■■■         ■■■
  ■■       ■■■    ■■      ■■■■     ■■■■■    ■■■             ■■     ■■■                  ■■■                 ■■■            ■■■     ■■■          ■■
  ■■■      ■■     ■■      ■■■      ■■■       ■■■            ■■     ■■                   ■■■                 ■■■            ■■■     ■■■          ■■
  ■■■     ■■■     ■■      ■■       ■■■       ■■■            ■■     ■■■                  ■■■      ■■■■■■■    ■■■            ■■■     ■■■          ■■
   ■■     ■■■     ■■      ■■       ■■■       ■■■            ■■     ■■■■■                ■■■      ■■■■■■■    ■■■            ■■■     ■■■         ■■■
   ■■■    ■■      ■■      ■■       ■■■       ■■■            ■■       ■■■■■■             ■■■          ■■■    ■■■            ■■■     ■■■         ■■■
   ■■■   ■■■      ■■      ■■       ■■■       ■■■            ■■         ■■■■■            ■■■          ■■■    ■■■            ■■■     ■■■         ■■■
    ■■   ■■■      ■■      ■■       ■■■       ■■■            ■■           ■■■■           ■■■          ■■■    ■■■           ■■■      ■■■         ■■■
    ■■■  ■■       ■■      ■■       ■■■       ■■■            ■■             ■■            ■■■         ■■■     ■■■          ■■■      ■■■        ■■■ 
    ■■■ ■■■       ■■      ■■       ■■■       ■■■            ■■             ■■■           ■■■■        ■■■     ■■■■        ■■■■      ■■■        ■■■ 
     ■■ ■■■       ■■      ■■       ■■■       ■■■            ■■     ■       ■■             ■■■■       ■■■      ■■■■      ■■■■       ■■■      ■■■■  
     ■■■■■        ■■      ■■       ■■■       ■■■            ■■    ■■■■    ■■■              ■■■■■■ ■■■■■■       ■■■■■ ■■■■■■        ■■■    ■■■■■   
      ■■■■        ■■      ■■       ■■■       ■■■            ■■     ■■■■■■■■■                ■■■■■■■■■■■         ■■■■■■■■■■         ■■■■■■■■■■■    
      ■■■         ■■      ■■       ■■■       ■■■            ■■       ■■■■■■                   ■■■■■■■             ■■■■■■           ■■■■■■■■■      
" && sleep 1 && if [[ "$@" =~  - ]]; then vim $2; else vim $@; fi}'

vim is GOD.(本音)

# emacs -nw .zshrc

みたいなオプションとか引数があったら、エラーが起こる(vimに無いオプションだから)から結構困りました。
: (なにもしないコマンド)を使ってみたりしたんですが、今度はファイルに対応できなくなったり...
結局、引数に" -"(半角スペース+-)が含まれていたらオプションだと見なして、二番目の引数だけをとることにしました。(ガバガバ)
シェルスクリプトに軽く起こすとこんな感じ。

#vim is GOD と表示(AA略
echo "vim is GOD" &&

#よく見えるように1秒待機
sleep 1 &&

#もし、引数にオプションが含まれていたら、
if [[ "$@" =~  - ]];
then
    #2番目の引数だけ実行
    vim $2;
else 
    #そうでないなら全体を実行
    vim $@;
fi

aliasだから軽く一行で書きましたが、もっと厳密に書くこともできます。
動かすとこんな感じ。
Screenshot from 2019-04-29 20-27-46.png
Screenshot from 2019-04-29 20-27-49.png
綺麗に起動しましたね。(vimが)

最後に

意外とzshrcとかaliasとかって柔軟に動くんですね。感動しました。
ジョークスクリプトのつもりでさっさと書いて出そうと思っていたので、思いがけず勉強になりました。
まさか無いとは思いますが、他の記事とネタかぶりしてたらperlワンライナーと組み合わせた複雑なやつも書いてみようかなと思います。
よいこの皆さんはemacs派の友達のzshrcにこれをこっそり書いてはいけませんよ。

参考

Zshのエイリアスの好きなところに引数を取りたい - Qiita

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2