SlideShare une entreprise Scribd logo
1  sur  53
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/proble 
ms/master/settings/ogura01/viminstaller.sh 
 wget ↑ 
 chmod +x viminstaller.sh && ./viminstaller.sh
 この設定ファイルを使います 
 丸ごとコピーするのではなく、解説があるたび 
に自分のvimrcに移してください 
https://github.com/nop7/problems/blob/master/s 
ettings/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にあるcolorscheme 
morningをコメントアウトしようね
いっぱい移動するときはSHIFTを押しながら 
いちいちgtするのはめんどいので
 Vimを起動したらチュートリアルをやりましょう 
 :Tutorial と打ちましょう
 ファイルの種類ごとに設定分けできるんです 
 vimfiles/ftplugin/ruby.vim
 ここからの設定は・・・スライドに載せません 
 ogura01のvimrc見てね 
https://github.com/nop7/problems/blob/master/set 
tings/ogura01/_1011_vimrc 
https://github.com/nop7/problems/blob/master/set 
tings/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/24 
7114 
肉焼き器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
秋のVim祭り Rubyを添えて

Contenu connexe

Tendances

Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1
cohama
 
(初心者向け) Vim の機能紹介@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1(初心者向け) Vim の機能紹介@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1
cohama
 

Tendances (20)

Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
 
第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村第6回鹿児島node.jsの会資料_内村
第6回鹿児島node.jsの会資料_内村
 
Tricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft floatTricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft float
 
Javaで最強のfizz buzz
Javaで最強のfizz buzzJavaで最強のfizz buzz
Javaで最強のfizz buzz
 
Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1Vim script と vimrc の正しい書き方@nagoya.vim #1
Vim script と vimrc の正しい書き方@nagoya.vim #1
 
SoftlayerのCLIで遊ぼうとしたら
SoftlayerのCLIで遊ぼうとしたらSoftlayerのCLIで遊ぼうとしたら
SoftlayerのCLIで遊ぼうとしたら
 
Inside casper
Inside casperInside casper
Inside casper
 
Ruby build
Ruby buildRuby build
Ruby build
 
ノンコーディング防犯
ノンコーディング防犯ノンコーディング防犯
ノンコーディング防犯
 
Programming camp 2010 debug hacks
Programming camp 2010 debug hacksProgramming camp 2010 debug hacks
Programming camp 2010 debug hacks
 
DartVM on Android
DartVM on AndroidDartVM on Android
DartVM on Android
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
Open VZ
Open VZOpen VZ
Open VZ
 
FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話FreeBSD jail+vnetと戯れた話
FreeBSD jail+vnetと戯れた話
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
 
MINCS – containers in the shell script
MINCS – containers in the shell scriptMINCS – containers in the shell script
MINCS – containers in the shell script
 
パケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmapパケットジェネレータipgenから見るnetmap
パケットジェネレータipgenから見るnetmap
 
(初心者向け) Vim の機能紹介@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1(初心者向け) Vim の機能紹介@nagoya.vim #1
(初心者向け) Vim の機能紹介@nagoya.vim #1
 
Opencv by-yancya
Opencv by-yancyaOpencv by-yancya
Opencv by-yancya
 

Similaire à 秋のVim祭り Rubyを添えて

関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
Takuro Iizuka
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
 
Python開発環境三種の神器
Python開発環境三種の神器Python開発環境三種の神器
Python開発環境三種の神器
Yukitaka Uchikoshi
 
Php in ruby
Php in rubyPhp in ruby
Php in ruby
do_aki
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
hiro345
 

Similaire à 秋のVim祭り Rubyを添えて (20)

Real world rails
Real world railsReal world rails
Real world rails
 
LinAction Theme Docker
LinAction Theme DockerLinAction Theme Docker
LinAction Theme Docker
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
「とても小さいVim」vim tiny
「とても小さいVim」vim tiny「とても小さいVim」vim tiny
「とても小さいVim」vim tiny
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
 
SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)
SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)
SIerによるSIerのためのRaspberry Pi 入門4 (タイムラプス、Lチカ)
 
Python開発環境三種の神器
Python開発環境三種の神器Python開発環境三種の神器
Python開発環境三種の神器
 
Sinatra and heroku for mac
Sinatra and heroku for macSinatra and heroku for mac
Sinatra and heroku for mac
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
Php in ruby
Php in rubyPhp in ruby
Php in ruby
 
Railsの開発環境作るぞ
Railsの開発環境作るぞRailsの開発環境作るぞ
Railsの開発環境作るぞ
 
Word bench7月号
Word bench7月号Word bench7月号
Word bench7月号
 
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
 
ocamloptの全体像
ocamloptの全体像ocamloptの全体像
ocamloptの全体像
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
 

Dernier

Dernier (7)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

秋のVim祭り Rubyを添えて

Notes de l'éditeur

  1. 発表はogura01です、よろしくお願いします。
  2. 今回の発表はどっちかというとワークショップに近い形で行います。やるのはもちろんvimとrubyですよ、時間があったらC++もやりますね。お楽しみに。
  3. 具体的には何やるかっていうと、atcoderをやりながらvimとrubyに慣れていきまっしょい、
  4. ということで、まずはRubyをインストールしましょう。 2.0がいいと思います。Kaoriya-VimのRubyインターフェイスが2.0なんですよね。
  5. そんでもって次はvimをインストールしましょう。Linuxでよくあるvimはluaインタフェースがないことが多いので自分でビルドしましょうね。
  6. インストールしながら話を聞いててくださいね、まずは…使い方に慣れ…ヒャッハー拡張だー!!いいんだよ拡張しようぜべいべ
  7. プラグイン管理プラグインのNeoBundleの登場だ!GitHubと連携していて、設定ファイルにリポジトリ名を書いておくだけでいいんです。
  8. 見えますかー?タブとかいろいろ設定してますよー
  9. カラー系の設定です
  10. jjとか便利ですよ、シフト押しながらjkするといっぱい動くのも便利です
  11. Ruby の設定しておこうぜ
  12. さて、次はquickrunプラグインだ!こいつはquickにrunできる最高なプラグインだぜ