競プロerにオススメのvimキーマッピング(mac)

(2019-02-10 修正) 日本語的にわかりずらい表現を修正しました.

 
こんにちは,杏にんです.今月から頑張って毎月19日に何か記事を書こうと決めました.一ヶ月で勉強したことのまとめやこれは便利だと思ったこと,趣味に関することとかを書きたいと思っています.

 

今月は競プロ界の端の端にいる競プロerの私が,競プロでvimを使っていてよかったと思ったキーマッピング(mac限定)を書きたいと思います.

 

ちなみに私は2019年1月19日現在AtcoderのGrayCoderです...(problemsではABCのC問が解ける時と解けない時があるぐらいなので,BrownCoderぐらいの実力はあると思う.コンテストに真面目に出始めたのが遅かったから(言い訳).精進します)

 

なお,vimの基本的なキーマッピングの仕方がわかっている前提で話をするので,わかっていない人は他の人の記事やvim日本語マニュアルなどをみてください.(英語が読める人は:helpを叩きましょう)

 

 

現在開いているファイルを一発でテキストエディットで開く

vimで:set numberや:set relativenumberを使用していると,command+cでコピーして提出画面で提出する時に数字までコピーしてしまい邪魔ですよね.

あれを解決する方法の一つは,テキストエディットというアプリで現在のファイルを開くことです.テキストエディットとは,mac版のメモ帳のようなものです.

.vimrcに以下のように記述します.

f:id:annin401:20190119221437p:plain

ccoにこれを割り当てているのは,個人的にccをあまり使わないからです.ccは1行削除してインサートモードに移行ですが,ぶっちゃけddとiを自然と使っちゃうので...

ちなみに<CR>でも<LF>でもどっちでも動く理由があまり理解できてないのでわかる人は教えてください(>_<)

 

現在開いているファイルを一発でコンパイルしてさらに実行する

個人的に競プロでvimを使うなら絶対した方が良いと思う設定です.ただし標準で今開いてるファイルをコンパイルして走らせるコマンドは多分ないので,つくらないといけません.ただし,これは簡単なシェルスクリプトで書くことができます.

まず以下のようなコードを書き,保存してください.

f:id:annin401:20190119224554p:plain

ファイル名はccrにしています.ccである理由は先ほど述べた理由と一緒です.なおccrじゃダサくてイヤって人はccrの部分を自分の好きなコマンド名に変えてください.

この段階では実行できません.なので実行権限を与え,実行できるようにします.

f:id:annin401:20190119225638p:plain

これで./ccrと書き,コンパイルしたいファイルを引数に与えれば動きます.

次にこのコマンドを検索パスに保存します.これは~/binがコマンド検索パスとして登録されているものとします.(デフォルトで多分設定されているはずです.)

f:id:annin401:20190119230440p:plain

これでコマンド名だけで実行できるはずです.

ここまでくれば後は簡単です..vimrcに次のキーマッピングを書き込みましょう.

f:id:annin401:20190119230655p:plain

真ん中の:!clear<CR>はエラーを見やすくするために書いています.

 

これで完成です.

f:id:annin401:20190119231249g:plain