秋のvim祭り rubyを添えて

Post on 02-Jul-2015

355 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

2014/10/07 ogura01@nop

ogura01@nopper

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

嫁は電ちゃんです

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

たまにC++もでてくる

一緒にAtCoderしながら

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

http://atcoder.jp/

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

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

Linux yum とか apt-get でおk

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

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

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

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

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

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

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

・・・の前に

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

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

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

作業だよ!

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

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

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

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

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

とりあずcolorschemeだけ

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

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

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

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

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

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

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

:Tutorial と打ちましょう

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

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

ogura01のvimrc見てね

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

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

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

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

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

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

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

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

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

RUBYで解こう!

STDIN.getsで1行取れます

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

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

puts STDIN.gets.capitalize

補完プラグイン

NeoBundle 'Shougo/neocomplete.vim'

定型文挿入だよ!

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

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

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

これが

こうじゃ

リファレンス参照だよ!

NeoBundle 'thinca/vim-ref ‘

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

> bitclust setup

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

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

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

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

NeoBundle ‘itchyny/lightline.vim’

NeoBundle ‘osyo-manga/vim-watchdogs’

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

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

gem install rubocop

n = STDIN.gets.to_i

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

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

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

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

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

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

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

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

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

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

ヒント: UnionFind

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

木DP

top related