Home > イベント

イベント Archive

Vim勉強会#5が開催されました

2010年1月31日(日)、第五回目となる関西でのVim勉強会が開催され、大盛況の中終了しました。

Vim5

関西vim勉強会#5

  1. ujihisaさん: Vim初級者レッスン(前半)
  2. ujihisaさん: Vim初級者レッスン(後半)
  3. Sixeightさん: text-object
  4. 少佐さん: はじめてのVim
  5. tsukkeeさん: .vimrcの書き方
  6. .vimrc hackathon

Vim勉強会は、家に帰って感想記事を書いてブログを書いてトラックバック等を送るまでがVim勉強会です。

食べ放題のお菓子、カナダ土産の美味しいお菓子、活発な質問、居心地の良い空間、エネミー、そしてVimへの愛にあふれたすばらしい勉強会でした。勉強会の後の懇親会では、乾杯のときに「Vim」という声が自然と出てきたとか。いやはや、高まるVim熱は、とどまるところを見せません。

次回のVim勉強会は5月中旬に行なわれる予定です。

Vim勉強会#5 ujihisa発表資料

Vim勉強会5 初級者向け講座

ujihisa

初級者とは

「初級者向け講座」 … 具体的に、初級者とは?

Vim使いのレベル10

  • Lv1 vimtutorを終わらせた。あるいは、hjklで移動できて保存と終了ができる
  • Lv2 ビジュアルモードを使うのをやめ、y}やdawなどの素晴らしい操作性に自己陶酔する
  • Lv3 自分でインストールしたプラギンの数が5を越え、ダメプラギンはすぐに判別できるようになる
  • Lv4 自分で作ったプラギンをvim.orgでリリースし、何人かをLife Changingさせる
  • Lv5 他のアプリケーション使用時にescやiを打鍵してしまい、イラっとする日々を送る
  • Lv6 シェルは当然vimshell。ネオコンなど大規模プラギンのバグを発見し、パッチ付きで報告する
  • Lv7 Vim本体のソースコードを読み、あまりの魔界に発狂する
  • Lv8 他言語インタフェースif_***を作り、vim_devに投稿する。当然採用されない
  • Lv9 Vim本体の開発への貢献が日常になる。投稿し採用されたパッチ数が10を越える
  • Lv10 神になる

つまり

  • Lv1~Lv4 初級者
  • Lv4~Lv7 中級者
  • Lv7~Lv10 上級者

今日の目標

Lv4 自分で作ったプラギンをvim.orgでリリースし、何人かをLife Changingさせる

全員ここまでやる

Be Lv1

  • Lv1 vimtutorを終わらせた。あるいは、hjklで移動できて保存と終了ができる

VimをインストールしてVimtutorを全部やる。25~30分。

$ vimtutor

Lv1の重要な点

  • u
    • undo。無制限
    • Vimは終了しない
    • キャンセルは<C-r>
  • A
    • その行の行末から文字入力開始!
  • dw
    • (delete 'word)
    • カーソル位置からその単語の終わりまでまとめて削除!
  • d$
    • カーソル位置から行末まで削除!
  • dd
    • その行を削除
  • p, P
    • 消した文字を貼付け。PだとVim以外のソフトのペーストのような挙動
  • 0
    • 行頭に移動

ビジュアルモード

  • v
    • 一文字単位のビジュアルモード
  • V
    • 行単位のビジュアルモード
  • <C-v>
    • 矩形選択

vしてyでヤンク、あるいはdで削除できる!

Be Lv2

  • Lv2 ビジュアルモードを使うのをやめ、y}やdawなどの素晴らしい操作性に自己陶酔する

非オブジェクト指向言語

値x に対して、 引数2 で、 関数f を実行する

f(x, 2)

オブジェクト指向言語

値x に対して、 引数2 で、 関数f を実行する

# f(x, 2)
x.f(2)

Vimのビジュアルモード

範囲x に対して、 引数2 で、 操作f を実行する

# f(x, 2)
# x.f(2)
x2f

Vimの非ビジュアルモード

範囲x に対して、 引数2 で、 操作f を実行する

# f(x, 2)
# x.f(2)
# x2f
2fx

例: 次の空行まで削除

ビジュアルモード

v}d

非ビジュアルモード

d}

非ビジュアルモードの薦め

  • 自分で画面を確認する必要がない! EP確保 (後述)
  • キータイプ数が少ない!
  • 範囲の大きさに依存しない!

dawは?

text-objectの一つ。

詳しくは次のSixeightさんによるtext-objectのためだけのプレゼンに刮目せよ!

Be Lv3

  • Lv3 自分でインストールしたプラギンの数が5を越え、ダメプラギンはすぐに判別できるようになる

Vim plugins

インストール: 単にファイルを置くだけ

  • (大抵の場合) ビルドとかいらないよ!

便利で小さいプラギン

  • quickrun
    • 編集中バッファを「実行」する
  • git-vim
    • gitをラクに使う
  • smartchr
    • いい感じに文字入力をラクにする

便利で大きいプラギン

  • neocomplcache
    • 補完!
  • vimshell
    • Vim scriptで実装されたシェル
  • blogger.vim
    • blogspot.comにブログを投稿する

自己紹介

ujihisa

自分のプロジェクト

  • quickrun.vim (現在はthincaさんがメインブランチ)
  • blogger.vim
  • few

関わっているプロジェクト

  • Termtter
  • Ruby Core

最近の活動

  • アメリカの大学院入試。いまは結果待ち
  • 明後日カナダに帰ります
  • アセンブリ言語勉強しています (LLVM, IA-32)

Be Lv4

  • Lv4 自分で作ったプラギンをvim.orgでリリースし、何人かをLife Changingさせる

プラギンの作り方

  1. Vimを使いまくる
  2. こんな機能があればラクなのになあと思う
  3. Vim標準でその機能があるか調べる :h
  4. www.vim.orgにそのスクリプトがあるか調べる

#

  1. 大抵はすぐにいくつか見つかる
  2. 実際に使ってみる
  3. ヒドい出来具合に発狂する
  4. 自分で実装する
  5. githubで公開する
  6. vim.orgで公開する

今後の発展

  • Vim用語を抑える
  • Vim hacksを毎日読む
  • Lingr Vim Roomに常駐する

Vim用語

  • Bram
  • 教皇
  • エネミー
  • hkn

Vim Hacks

http://vim-users.jp/

  • kana, ujihisa, thinca, Shougo, ukstudioらが執筆
  • 時々ゲスト執筆者も。

ゲスト執筆者は常時募集中!

Lingr Vim Room

http://lingr.com/room/vim/

  • 大勢が常に常駐
  • tsukkeeさんのlingr-vimを使うとさらに快適に!

let g:loaded_vimlectur = 1

USSR#1: neocomplcache ソースコード読解会

文責: ujihisa, Shougo, sorah

今日は neocomplcache-4.0.3/autoload/neocomplcache.vim を読みました。

勉強会チャットログはこちら: http://lingr.com/room/vim/archives/2009/12/22

特にしっかりと読んだ関数:

  • function! neocomplcache#enable()
  • function! s:complete()
  • function! s:integrate_completion(complete_result)

APIとなるneocomplcache#ではじまる関数群がautoload/neocomplcache.vimの上部にまとめて定義されています。 また、内部で使う関数群が続いて下部にスクリプトローカルで定義されています。

興味深い部分の抜粋:

echo ''
redraw

redraw!だと画面がちらつくので、そういうときはこの二行で、ということだそうです。

まとめ

“neocomplcacheのソースコードは魔界

コード自体はすばらしく整理されているものの、 Vim自体とその周囲の問題を解決するために涙が止まらない努力が随所に見られます。

  • ATOK
  • 画面のチラツキ
  • 速度 (skip)
  • プラグイン
  • 補完の統合
  • 頻度解析

Online.sg #5「Vim」が無事終了しました。

ソラです。

Online.sg #5 Vimが無事終了しました。

オンラインながら参加者とギャラリーがかなり多く Vim熱を実感しました。

各発表の内容

  1. ソラ “Vimで簡単なプラグインを作ってみよう” (30分の予定が10分)
  2. thinca “LiveCoding” (ライフゲーム) (40分)
  3. HSPMaker “とりあえずVimをつかってみよう” (20分)

お詫び

  • thincaさんのLiveCodingで、なかなかネタが決まらずアンケートの減点対象になっていました。
  • 録画ができてませんでした(自分の発表) ごめんなさい。

ログや動画

そのうちアップロードします。

参加者の声

  • LiveCoding gdgd
  • ソラの発表速い
  • ネタまだ決まらないのか
  • (sun)

VimM#4 ログ (ujihisa)

VimM#4のログというかメモです。

Vim server 入門 with bonar

Vimをserverとしてperlとかのコマンドを送れる

  • +clientserverが必要
  • vim --servername FOO --remote temp
  • --remote-expr "getline(2) #=> ...

VimをWEBサーバにする

  • listenできない -> proxy作れば解決 (perl)
  • vimにリクエストが来るので、その場でhtmlを書いて返す
  • :wして:bdするとレスポンスがくる
    • 非常に柔軟
    • スケールできないことができる
  • 用途はおそらくGUIの右クリックで既存のVimで開く機能

Vimでコード印刷 with taku-o

  • Windowsとプリンタ
  • :help printing
  • コード印刷 (highlight)
    • hardcopyコマンドで印刷範囲指定
  • 白黒印刷はcolorschemeによっては読めない
  • VM上のWinでデモ (香り屋gvim)
  • 範囲指定して:hardcopy

人類の絶滅 with ssig33

  • growlに激しく邪魔されながら発表
  • テレビ番組のプロデューサの仕事
  • Eclim
  • 日本語プログラミング言語
    • 動的型付け言語
    • 文法が柔軟
    • フレームワークがない
    • 変数名が言語仕様で決まっている
    • 要素を記述するだけで代名詞変数が束縛される

blogger.vim with ujihisa

(自分の発表につき、まとめなし)

IDEからVimに移行する11の方法 with hagino_3000

  • Vim暦2週間
  • KeyRemap4MacBook
    • EISUU to Esc
    • KANA to return
  • Ctrl-Shift-r (eclipse)
    • fuzzyfinder.vim
  • Vimに乗り換えた理由: かっこいいから

Vim on Emacs with Ubuntu

Vimとはなにか, 人はなぜVimを使うのか

  • Lispインタプリタ+elicp = Emacs
  • 唯一の違い = 言語
  • Vimの良さ: netrw, モード
  • 新規オープン時EmacsのViewモードを強制
  • EmacsでVimを実現 (viperではなく)
  • VimにLispがあってもVimがLispじゃない

これからVimを極めたい人が読むべきたった一つの文書 with kana

Vimマスターへの道しるべ by kana

  • Web+DB Press 2009-08-24 発売
  • アフィリエイト経由で買ってね(はぁと)
  • およそ30ページ

基調講演 with ujihisa

  • 参加していただいた方はブログに書いて、ここにトラックバック的行為をしてくれるとうれしい
  • 誰でも主催できるのでVim勉強会を各地でゲリラ的に開催し、そしてVimKaigi2010
  • Vim Hacks Projectが水面下ではじまっている

おまけ

  • 8:00pmから冷房が切れ、既に定員を超過している会場はすさまじい熱気となる。
  • hyoshiokさん、nishioさん、ko1さんらによるプログラミングキャンプの宣伝も行なわれる。
  • 勇士によるお菓子、ジュースの配布あり。ありがとうございます!
  • カナダ直輸入のtwizzlersなども配布あり。カラフルな方はマシだが、黒はヤバい。
  • ujihisaは飛行機が遅れてギリギリの到着 (この日夕方に成田空港について、その足でそのままVimM会場にやってきた)
  • その後何人かは和民(わたみ)という飲み屋で懇親会的な行為を行なう。

blogger.vim talk with ujihisa on VimM#4

 1 blogger.vim
 2 ===========
 3 <http://www.vim.org/scripts/script.php?script_id=2638>
 4 * ブログサービスbloggerに記事を投稿したり
 5   修正したりするためのプラグイン
 6   http://***.blogspot.com
 7 * http://github.com/ujihisa/blogger.vim
 8
 9 ## 開発の動機
10 * ブログサービスnowaをnowa.vimで快適に利用
11 * nowaが終了
12 * (旧)blogger.vimを使用、快適
13 * (旧)blogger.vimが破壊
14 * 憤慨してblogger.vimを作ることに
15 * 折角ならmetarw
16
17 ## metarw
18 * ファイルでない何かをファイルであるかのように取り扱う
19   プラグインを書くためのライブラリプラグイン
20 * kana
21
22 ## blogger.vimの使い方
23 netrw同様
24 * (事前に.vimrcなどにパスワード記述)
25 * 記事一覧取得 `:e blogger:list`
26 * 特定記事取得 `:e blogger:http://…`
27   または記事一覧画面で<Enter>
28 * 記事新規投稿 `:w blogger:create`
29 * 記事上書き保存 `:w blogger:http://…`
30
31 ## 実装
32 * Blogger API
33 * metarw (by kana)
34 * Ruby (nokogiri, rspec, etc)
35 * Haskell (pandoc)
36
37 ## 構成
38 80% of Ruby, 20% of Vim script
39 * if_rubyの:rubyではなくsystem()
40
41 ## 歴史
42 * mixi.vim (if_ruby)
43 * nowa.vim (metarw)
44
45 おわりに
46 ========
47 伝えたいこと、覚えてもらいたいことが3つあります。
48
49 * 参加費はブログに書いてトラックバック的行為をすること
50 * 誰でも主催できるのでVim勉強会を各地でゲリラ的に開催し、
51   そしてVimKaigi2010でBram召還
52 * Vim Hacks Project
53

VimM#4が無事終了しました

VimM#4が無事終了しました。 当日は約45名もの参加者が冷房の切れた会場に集合するという非常にVim熱の高まった時間 となりました。

各発表の内容

  1. ujihisa“はじめに” VimM#4自体の説明 (1分)
  2. ko1“宣伝” プログラミングキャンプ (5分)
  3. bonar“Vim Server 入門” — 簡単な使い方と使いどころ (5分)
  4. taku-o“Vimでコード印刷” — いろいろな意味で環境依存な話をする予定。 (5分)
  5. hagino_3000“IDEからvimへ移行するための11(?)の方法” (5分)
  6. ssig33“人類の絶滅” |日本語 (5分)
  7. ujihisa“blogger.vim” *.blogspot.comを快適に扱うVim plugin (5分)
  8. Kinesis — “Kinesis体験会” — 本物のVim使いはKinesisを使う (5分)
  9. Ubuntu“Vim on Emacs” — Emacsの発表をします。 (5分)
  10. kana“これからVimを極めたい人が読むべきたった一つの文書” — (1分)
  11. ujihisa“おわりに” 基調講演 (1分)

参加者の声

VimM#4 開催のお知らせ

参加方法

http://atnd.org/events/809で参加申請してください。

日時

  • 2009-06-22(月) 7:30pm ~ 10:30pm
  • 7:30pm開場、8:00pm開演

会場

持ち物

  • 名札/名刺 (あると便利)
  • Vim (必須)
  • 発表者、会場提供者へのねぎらいの何か (お菓子とか 冷たい飲み物 とかみんなで共有できそうなもの)

内容

  1. ujihisa“はじめに” VimM#4自体の説明 (1分)
  2. ko1“宣伝” プログラミングキャンプ (5分)
  3. bonar“Vim Server 入門” — 簡単な使い方と使いどころ (5分)
  4. taku-o“Vimでコード印刷” — いろいろな意味で環境依存な話をする予定。 (5分)
  5. hagino_3000“VimでJavaScript” helloworldレベルの内容 (5分)
  6. ssig33“人類の絶滅” |日本語 (5分)
  7. ujihisa“blogger.vim” *.blogspot.comを快適に扱うVim plugin (5分)
  8. Kinesis — “Kinesis体験会” — 本物のVim使いはKinesisを使う (5分)
  9. Ubuntu“Vim on Emacs” — Emacsの発表をします。 (5分)
  10. kana“これからVimを極めたい人が読むべきたった一つの文書” — (1分)
  11. ujihisa“おわりに” 基調講演 (1分)

発表時間に質疑応答は含まれておりません。(5分)の場合、発表5分に加えて質疑応答が入り、それから次の人に交代します。おおかた10分に一人の順になると思います。

備考

  • 8:00pmから冷房が切れます。覚悟しておいてください。
  • 懇親会は特に企画していませんが、VimM#4開始前に会場近くで日本が世界に誇る伝統的料理うどんを食べる会を企画する幹事を募集中です。

Vim勉強会 in MTLが無事終了しました

多数のご参加ありがとうございました。

また、こういう機会を提供してくださった永和システムマネジメントの皆さん及びメディアテクノロジーラボの皆さん、本当にありがとうございました。

当日のLingrのログその様子

MTL(新橋)でVim勉強会が開催されます。

MTL(メディア・テクノロジー・ラボ)でVim勉強会が開催されるのでお報せします。

開催日時 : 2009/04/03 19:30~21:30 (開場 19:00)
開催場所 : 東京都中央区銀座 8-4-17 リクルート GINZA8 ビル

http://atnd.org/events/482

ホーム > イベント

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • プラグイン
  • vimrc
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top