秋のVim祭り Rubyを添えて

53
2014/10/07 ogura01@nop

description

vimの基礎から各種プラグインの紹介をします。 atcoderの簡単な問題をrubyで解きながらvimの使い方に慣れようというものです

Transcript of 秋のVim祭り Rubyを添えて

Page 1: 秋のVim祭り Rubyを添えて

2014/10/07 ogura01@nop

Page 2: 秋のVim祭り Rubyを添えて

ogura01@nopper

Vimmer / Rubist / C++er / 黒魔術師

嫁は電ちゃんです

Page 3: 秋のVim祭り Rubyを添えて

VimとRubyに触れてもらって中毒にさせる

たまにC++もでてくる

Page 4: 秋のVim祭り Rubyを添えて

一緒にAtCoderしながら

vimrcを作りましょ、そうしましょ

http://atcoder.jp/

Page 5: 秋のVim祭り Rubyを添えて

Ruby をインストール (2.0系がいいかも)

Windows http://www.artonx.org/data/asr/

Linux yum とか apt-get でおk

Page 6: 秋のVim祭り Rubyを添えて

kaoriya (windows)http://www.kaoriya.net/

ogura-vim-builder (linux)https://raw.githubusercontent.com/nop7/problems/master/settings/ogura01/viminstaller.sh wget ↑ chmod +x viminstaller.sh && ./viminstaller.sh

Page 7: 秋のVim祭り Rubyを添えて

この設定ファイルを使います丸ごとコピーするのではなく、解説があるたびに自分のvimrcに移してください

https://github.com/nop7/problems/blob/master/settings/ogura01/_1011_vimrc

Page 8: 秋のVim祭り Rubyを添えて

インストールお願いします。

話を聞きながら進めちゃってくださいね

あ!忘れてました、Gitも入れといてください

Page 9: 秋のVim祭り Rubyを添えて

プラグインいっぱい入れるぜ、ひゃっほー

・・・の前に

プラグインを管理するプラグインを召喚!

Page 10: 秋のVim祭り Rubyを添えて

GitHubと連携してプラグイン管理できる!!設定ファイルにリポジトリを書くだけ!!

アップデートもコマンド一発

Page 11: 秋のVim祭り Rubyを添えて

作業だよ!

Windowsの場合 C:/Users/ユーザ名/vimfiles/bundle/ ↑ に neobundleを解凍したやつを置く

Linuxの場合 neobundleのgithubを見たほうがいいよ

Page 12: 秋のVim祭り Rubyを添えて

Vimの設定ファイルがvimrcです! Linuxなら ~/.vimrc

Windowsなら C:/Users/ユーザ名/_vimrc

そう、これが闇への入り口だったのです

Page 13: 秋のVim祭り Rubyを添えて
Page 14: 秋のVim祭り Rubyを添えて

とりあずcolorschemeだけ

Page 15: 秋のVim祭り Rubyを添えて

最後のこれも入れておくよ!

Page 16: 秋のVim祭り Rubyを添えて

windowsはgvim使うといいと思いますgvimのGUI関係は別途設定が必要なんです

Page 17: 秋のVim祭り Rubyを添えて

hybridプラグインが自動でインストールされて背景が黒くなりましたか?

windowsの人はgvimrcにあるcolorschememorningをコメントアウトしようね

Page 18: 秋のVim祭り Rubyを添えて
Page 19: 秋のVim祭り Rubyを添えて
Page 20: 秋のVim祭り Rubyを添えて

いっぱい移動するときはSHIFTを押しながら

いちいちgtするのはめんどいので

Page 21: 秋のVim祭り Rubyを添えて

Vimを起動したらチュートリアルをやりましょう

:Tutorial と打ちましょう

Page 22: 秋のVim祭り Rubyを添えて

ファイルの種類ごとに設定分けできるんです vimfiles/ftplugin/ruby.vim

Page 23: 秋のVim祭り Rubyを添えて

ここからの設定は・・・スライドに載せません

ogura01のvimrc見てね

https://github.com/nop7/problems/blob/master/settings/ogura01/_1011_vimrc

https://github.com/nop7/problems/blob/master/settings/ogura01/_1011_gvimrc

Page 24: 秋のVim祭り Rubyを添えて

NeoBundle “thica/vim-quickrun” filetypeに応じて、バッファをビルド & 実行

NeoBundle “osyo/shabadou.vim” quickrunの色んなところに処理を挟めるやつ

実行中はSAN値!ピンチ!するなど

Page 25: 秋のVim祭り Rubyを添えて
Page 26: 秋のVim祭り Rubyを添えて

入出力 STDIN.gets # 1行とってくる puts :hogehoge # 1行出力 :hogehogeはシンボルと呼ぶ. “hogehoge”のハッシュ値みたいなもん

配列を作る[ 1, 2, 3, 4] とか [1, “hoge”, :hello] とか

Page 27: 秋のVim祭り Rubyを添えて

型変換 ‘123’.to_i # 整数値型に変換 123.to_s # 文字列型に変換

破壊的メソッド内部的に値が書き換わるメソッド String#chomp … 非破壊的メソッド String#chomp! … 破壊的メソッド

Page 28: 秋のVim祭り Rubyを添えて

RUBYで解こう!

STDIN.getsで1行取れます

QuickRunで入力ファイルを指定するには? :QuickRun –input “ファイル名”

ちなみにQuickRunは \r で実行できるよ

Page 29: 秋のVim祭り Rubyを添えて

puts STDIN.gets.capitalize

Page 30: 秋のVim祭り Rubyを添えて

補完プラグイン

NeoBundle 'Shougo/neocomplete.vim'

Page 31: 秋のVim祭り Rubyを添えて

定型文挿入だよ!

NeoBundle ‘Shougo/neosnippet.vim’ “ スニペット補完

NeoBundle 'Shougo/neosnippet-snippets' " スニペット集

cpp.snipとかftごとにオリジナルの定型文を作れるよ

Page 32: 秋のVim祭り Rubyを添えて

これが

こうじゃ

Page 33: 秋のVim祭り Rubyを添えて

リファレンス参照だよ!

NeoBundle 'thinca/vim-ref ‘

rubyのリファレンス > gem install refe2

> bitclust setup

Page 34: 秋のVim祭り Rubyを添えて
Page 35: 秋のVim祭り Rubyを添えて

:Ref refe Array#combination #=> メソッドに直行

:Ref refe Array#c #=> メソッド一覧がでる

:Ref refe Array #=> クラスの説明がみられる

Rubyのコード上でカーソルを合わせて+ を押す!

Page 36: 秋のVim祭り Rubyを添えて

NeoBundle ‘itchyny/lightline.vim’

Page 37: 秋のVim祭り Rubyを添えて

NeoBundle ‘osyo-manga/vim-watchdogs’

静的解析ツール保存する度に非同期で実行してくれる

Page 38: 秋のVim祭り Rubyを添えて

rubyの静的解析ツール一般的なコーディング規約に沿ってるかチェック

gem install rubocop

Page 39: 秋のVim祭り Rubyを添えて
Page 40: 秋のVim祭り Rubyを添えて

n = STDIN.gets.to_i

times = n.times.map { STDIN.gets.to_i }

Page 41: 秋のVim祭り Rubyを添えて

http://arc029.contest.atcoder.jp/submissions/247114

肉焼き器1 = select { i番目のビットが立ってる }

肉焼き器2 = reject { i番目のビットが立ってる }

Page 42: 秋のVim祭り Rubyを添えて

関数型的配列操作 select … マッチした要素だけでNew配列を作る reject … マッチした要素を外してNew配列 reduce … 配列を操作する reduce(&:+) reduce {|a, b| a+b }

Page 43: 秋のVim祭り Rubyを添えて

vim界のgoogle検索 Unite file_mru … 最近開いたファイル

Unite buffer … 今開いているファイル Unite everything !?

Page 44: 秋のVim祭り Rubyを添えて
Page 45: 秋のVim祭り Rubyを添えて

Everythingをインストールしてみよ es.exeも別途ダウンロードしてパス通そうね

ogura01では “,a” で発動するよ!

Page 46: 秋のVim祭り Rubyを添えて
Page 47: 秋のVim祭り Rubyを添えて
Page 48: 秋のVim祭り Rubyを添えて

補完とも連携できるんです!

Page 49: 秋のVim祭り Rubyを添えて
Page 50: 秋のVim祭り Rubyを添えて

ヒント: UnionFind

スニペットに登録しておこう

Page 51: 秋のVim祭り Rubyを添えて
Page 52: 秋のVim祭り Rubyを添えて

木DP

Page 53: 秋のVim祭り Rubyを添えて