VimScriptでHashTableを実装する

2008-09-08

VimM#2のメモ(自分用): 第一部 plugin使おう

| 23:43

ブログは最近リアル知人が見ることが多くなったため、本業ではないイベントはこちらにおこうかと。


kana, maedana, ukstudio, yoshuki, ujihisa

pluginとは?

実態はvim script

1.global

起動されるとロードされる。

2.filetype

Vim: Filetype pluginを極める- while (“im automaton”);


3.compiler

quickfixで利用される。(?)


How to?
  • doc/plugin.txt(ドキュメント。:helpで読める)
  • plugin/plugin.vim(本体)
  • インストール方法
    • ファイルをコピーするだけ。
    • :set runtimepath # :help runtimepath

~/.vim(ディレクトリ)

# この指定は.vimrcだっけ?


実際の使い方
  • Exコマンド
    • ex :: Edit :writeなどのこと
    • プラグ印によっては独自にコマンド提供

  • keymapping

キーシーケンスを別のキーシーケンスに変更

Vim: Key mappingを極める- while (“im automaton”);

  • e.g. surround.vim
    • cs'" , ysi})

  • nmap s <Plug>Tsurround

かんすうとは
  • exコマンドの羅列をまとめたもの
  • 値を返す。(Exコマンドは返せない)
  • e.g. smartchr
    • 設定しておくと、=押すたびに' = ' , ' == ', '='を順に。*1


はじめてのcompiler plugin

maedanaさん

派遣プログラマ。フリーを目指す

SKIPって社内向けSNSつくってる.今年6月に

  • vimではテキストを解析して結果を返すものはcompilerとみなしていい(?)

特定のテキストのコンパイルサイクルを:makeprg, :errorformat

compilerを使うことで
makeprgと:errorformatを設定
comp,
make, :cn, :cp, :clist, :copen

:help usr_30

  • compiler pluginでvimのなかだけで実行でき、エラー行に飛ぶことが出来る。
  • quickfix
    • :makeはQuickFixコマンドのひとつ
    • :help QuickFixCmdPre
    • 標準のcompilerプラグイン

ukstudio の rails.vim

RAWHIDE, vim暦1.5年

まず:Rails demo

Rscript generate scaffold string
title

:Rlog, Rak, Rserverなどなど

Aとか
Rで関係するファイルが開く。関係ファイルは定義されている。
Rmodel,
Rviewなどで開ける。候補がM, V, Cで選べる

:Rabbrev。Rails独特の表現に略語を割り当てている

:RSpecに対応させる #今対応してない

id;secondlifeさんがバッチ

validates_hogehogeは便利。


yoshiyukiさん"project.vim"

フリーエンジニア

RubyPHP, Vim1年ちょっと。

no title中の人

vimpluginの更新情報を取得。vim.orgから絞込み

Demo:

  1. treeにディレクトリを登録
    • \c
  2. ファイルを開く
    • enter
  3. tree情報更新 # cat > aaa.txt
    • \r
  4. 複数ファイルを同時に開く
  5. treeファイルをgrep
    • \g

ツリーはテキストファイルになっており、追加してファイルを作成とか。

:h project-mapping

filter="*"など。"**/*"とか。

翌日は:Projectを打つだけで前回のプロジェクト。



ujihisa

中二vim。まともにvim触ったのは今年から*2

Ruby, Haskell, Vimscript

来年からCS.Stanford.Edu

Vim勉強会2,5,8月。

Ctrlキーを叩くとき。薬指第一関節より小指が短ければ。


quickrun

<space>rで編集中rubyファイル実行

<space>w :<C-u>write<Cr>

<space>q :<C-u>quit<Cr>

metarw(めたりら)

ファイルでないものをファイルであるかのように扱うようなプラグインを書くためのプラグイン

fakepath

edit,
writeの挙動を上書き

e.g. :e git:master:src/ui.c

metarw-git, metarw-nowaとか。

git/dotfiles

VimM#2のメモ(自分用):第二部: pluginを作ろう

| 23:43

kana, ujihisa

(ここは試験的にマインドマップでまとめた)

f:id:Hash:20080908235438j:image:w200f:id:Hash:20080908235439j:image:w200

f:id:Hash:20080908235440j:image:w200f:id:Hash:20080908235441j:image:w200

nnoremap <Plug>Hello :call Hello()<Return>

nmap <Leader>h <Plug>Hello

<Plug>Hello *<Plug>Hello*

書きながら横にリンク張っておく

カスタマイズ

:nmap ,

callは範囲指定を取る

<C-u>は、間違って押してる内容をリセットする意味がある。カウント指定を無意味に。

:help key-mapping


setfiletype ifb

vimruby binding

ドキュメント。:h runtimepath


おまけ: Hashthonのメモ

  • YRShow
  • i_CTRL-o
  • au FileType changelog <buffer> <Leader>......
    • 開いたときのファイルタイプ限定
  • insertmodeで
    • autocmdの次にC-x C-V
    • C-x C-fファイル補完
    • C-x C-lライン補完

*1:おもろげ

*2:極めるのはええ

ka-nachtka-nacht2008/09/09 02:39マインドマップのtypoっぽいの:

×Vim 7.2新機能タブ
○Vim 7.0

×マルチセットは鬼門
○マルチスレッド

HashHash2008/09/10 19:08おお、ありがとうございます><
マインドマップ本体の方は直しておきます。

LetticeLettice2011/07/09 15:43Wow, this is in every resepct what I needed to know.

tzcrogshmtzcrogshm2011/07/10 00:15U7Ouj1 <a href="http://vxfnxbohiwjr.com/">vxfnxbohiwjr</a>

xzceaqyxzceaqy2011/07/10 20:53iwYlYj , [url=http://aypzosshvgqw.com/]aypzosshvgqw[/url], [link=http://wtycrbnxcfvt.com/]wtycrbnxcfvt[/link], http://hzqjwuligrzl.com/

qhcsiaqhcsia2011/07/11 20:07NIYiUc <a href="http://fdnzybllpbwb.com/">fdnzybllpbwb</a>

tyfkujntyfkujn2011/07/12 22:17Jp8z7n , [url=http://banfopefshot.com/]banfopefshot[/url], [link=http://ydhjjzvibycz.com/]ydhjjzvibycz[/link], http://qkitqzjvjfjy.com/

NeniNeni2013/05/03 11:58Thanks for tkanig the time to post. It's lifted the level of debate

kcvrqezuzjkcvrqezuzj2013/05/05 14:32AOdJ81 , [url=http://usaavpftotea.com/]usaavpftotea[/url], [link=http://gpnlxfwtuwhl.com/]gpnlxfwtuwhl[/link], http://ycncumxhirjn.com/