新着記事

2008年02月25日

calendar.vimには日記をつける機能があったらしい。

vimスクリプトによる日付の処理の仕方を学ぼうと考えて、 calendar.vimスクリプトのコードを のぞいてみたら、日記をつける機能がついてて驚いた。

今までカレンダーを表示するだけのスクリプトだとばかり、 思っておりました。

calendar_vim.jpg
 ↓(日付をクリック。)

calendar_vim_diary.jpg

日記の昨日を使うには、「diary」ディレクトリを事前に作成しておく必要がある。
calendar_vim_dialog.jpg

posted by 小見 拓 at 01:03| Comment(1) | TrackBack(0) | 基本 (vimエディタ) | このブログの読者になる | 更新情報をチェックする

2008年02月14日

vim勉強会

2008年02月24日(日)
vim勉強会
http://cotocoto.jp/event/18157

大阪かー

posted by 小見 拓 at 02:21| Comment(0) | TrackBack(0) | 日記、報告、期間限定な記事 | このブログの読者になる | 更新情報をチェックする

2008年02月11日

最近よく見るようになったvimスクリプトのコメントの書き方

所有するサイトの関係上、相当な数のvimエディタのスクリプトを読んでいますが、
最近、このようなコメントの書き方をよく見かけるようになりました。
:if exists('loaded_undobranch_viewer')
    :finish
:endif
:let loaded_undobranch_viewer = 1

:command! -nargs=0 UndoBranchViewer :call s:UndoBranchViewer()

:function! s:UndoBranchViewer()
    :let g:undolistHandlers = [
        \ {'key': 16, 'agent': s:SNR().'AgentUndoPreview', 'key_name': '<c-p>', 'help': 'Undo preview'},
        \ {'pick_last_item': 0},
        \ ]
    :let s:undolists = tlib#cmd#OutputAsList('undolist')
    :call tlib#input#List('s', 'UndoBranch', s:undolists, g:undolistHandlers)
:endfunction

:function! s:AgentUndoPreview(world, selected)
    :return a:world
:endfunction

:function! s:SNR()
    :return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSNR$')
:endfunction

finish
==============================================================

スクリプトのコメントとか、
履歴とか記述。
「finish」と書いて、そこでスクリプトの読み込みを停止、
その後ろにコメントを書くらしい。

コメントアウトする手間もかからず、ハイライトも有効と。

流行ってるの?

posted by 小見 拓 at 00:15| Comment(2) | TrackBack(0) | 基本 (vimエディタ) | このブログの読者になる | 更新情報をチェックする

2008年02月07日

OSXのlaunchdでCVS pserverを立てる。

とある理由でMac OSXにCVS pserverを用意することになった。 せっかくだからOSXのlaunchd使ってみた。
OSはTiger、cvsサーバーとして使用中だったから"cvs init"とかは既に 実行済みの状況から。
おそらく、Leopardでも大丈夫ではないかな。
テキストエディタで下のようなファイルを 「cvspserver.plist」というファイル名で作成する。
UserNameと、CVSレポジトリの位置は、各自の環境に合わせて修正しておいてください。

ダウンロード

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.apple.cvspserver</string>
  <key>UserName</key>
  <string>username</string>
  <key>Program</key>
  <string>/usr/bin/cvs</string>
  <key>ProgramArguments</key>
  <array>
    <string>cvs</string>
    <string>-f</string>
  	<string>--allow-root=/Volumes/DATA/cvs</string>
    <string>pserver</string>
  </array>
  <key>Sockets</key>
  <dict>
    <key>Listeners</key>
    <dict>
      <key>SockPassive</key>
      <true/>
      <key>SockServiceName</key>
      <string>cvspserver</string>
      <key>SockType</key>
      <string>SOCK_STREAM</string>
    </dict>
  </dict>
  <key>inetdCompatibility</key>
  <dict>
    <key>Wait</key>
    <false/>
  </dict>
</dict>
</plist>

作成したファイルcvspserver.plistを"/Library/LaunchDaemons"にコピーする。
cp cvspserver.plist /Library/LaunchDaemons

launchctlコマンドで、"/Library/LaunchDaemons"に置いたcvspserver.plistを読み込む。
launchctl load /Library/LaunchDaemons/cvspserver.plist

CVSサーバーに、cvsコマンドでアクセスして動作確認してみましょう。
cvs -d :pserver:loginname@serverhost login
cvs -d :pserver:loginname@serverhost checkout module
posted by 小見 拓 at 06:33| Comment(0) | TrackBack(0) | Mac OSX | このブログの読者になる | 更新情報をチェックする

2008年02月05日

エクスプローラーっぽい挙動のアプリを簡単に構築できるvimスクリプトtlibの紹介

ウィンドウを分割して、片方のウィンドウに何かのリストを表示、選択されたら何かの処理を行うという、
ファイルエクスプローラーとかでよくあるUIを、簡単に構築できてしまうvimスクリプト tlibの使い方を突き止めた。
(vimスクリプト組む人以外には、役に立たない情報ですが)

tlib_sample_view.jpg

で、下が最小のサンプル。
:UndoBranchViewerで起動して、<C-p>で選択した行のメッセージを表示する。
動かすには、もちろん、tlibが必要。

tlib#input#List()に表示する文字列のリストと、
どのキーが押されたら、どのファンクションを呼び出すかのマッピングを渡す。
keyがリストの選択に使うキーで、agentがファンクション。

スクリプトの中で使っている tlib#cmd#OutputAsList()は、
コマンドの結果で文字列のリストを作るコマンドです。

" スクリプトが何度も読まれるのを防止するためのおまじない
:if exists('loaded_undobranch_viewer')
    :finish
:endif
:let loaded_undobranch_viewer = 1

" コマンドの定義
" :UndoBranchViewerってすると、s:UndoBranchViewer()が呼び出される。
:command! -nargs=0 UndoBranchViewer :call s:UndoBranchViewer()

:function! s:UndoBranchViewer()
    :let g:undolistHandlers = [
        \ {'key': 16, 'agent': s:SNR().'AgentUndoPreview', 'key_name': '<c-p>', 'help': 'Undo preview'},
        \ {'key': 21, 'agent': s:SNR().'AgentUndoAndClose', 'key_name': '<c-u>', 'help': 'Undo and close'},
        \ {'pick_last_item': 0},
        \ ]
    :let s:undolists = tlib#cmd#OutputAsList('undolist')
    :call tlib#input#List('s', 'UndoBranch', s:undolists, g:undolistHandlers)
:endfunction

" リストから<c-p>で選択されたときに呼び出される。
:function! s:AgentUndoPreview(world, selected)
    :let l:entry = a:selected[0]
    " 選択された文字を表示。
    :echo l:entry
    " 文字を表示できるように、ちょっと待ってもらう。
    :5sleep
    :return a:world
:endfunction

" リストから<c-u>で選択されたときに呼び出される。
" 説明は省略
:function! s:AgentUndoAndClose(world, selected)
    :return a:world
:endfunction

" tlibのリストでどれが選択されたかを特定するための文字を返す
:function! s:SNR()
    :return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSNR$')
:endfunction
posted by 小見 拓 at 01:17| Comment(0) | TrackBack(0) | 基本 (vimエディタ) | このブログの読者になる | 更新情報をチェックする
記事検索
 
カテゴリ
最近のコメント
QKCのインストール [3-4/18]
 ⇒ kova (05/23)
calendar.vimには日記をつける機能があったらしい。
 ⇒ とまと (03/07)
最近よく見るようになったvimスクリプトのコメントの書き方
 ⇒ 小見 拓 (02/13)
 ⇒ kana (02/11)
vimエディタ ヘルプのgrep
 ⇒ みかん (07/15)
指定したカラム位置にテキストを流し込む (vimエディタ)
 ⇒ こみ (03/20)
 ⇒ とおりすがり (03/19)
 ⇒ こみ (03/18)
 ⇒ takayama (03/18)
tempfile -- Generate temporary files (Mac OSX)
 ⇒ take3 (01/20)
 ⇒ こみ (01/19)
 ⇒ take3 (01/18)
 ⇒ こみ (01/17)
 ⇒ take3 (01/14)
WebObjectsのオープンソースプロジェクト Project Wonderってなんじゃろな。#2
 ⇒ (06/30)
 ⇒ Tetsuya Kuramochi (06/29)
 ⇒ Tetsuya Kuramochi (06/29)
WebObjectsのオープンソースプロジェクト Project Wonderってなんじゃろな。#1
 ⇒ (06/03)
 ⇒ Tetsuya Kuramochi (06/02)
最近のトラックバック
vimエディタで「文字コード、改行コードを変更して保存する。」
 ⇒ window.closed (04/25)
 ⇒ himesuke’s STEP-log (03/18)
 ⇒ PukiWiki/TrackBack 0.2 (05/07)
vimエディタの折りたたみ機能の話。その2 (foldmethod=syntax)
 ⇒ 俺の基地 (PukiWiki/TrackBack 0.3) (04/20)
ログファイルを監視して、特定のキーワードが見つかったら、何らかのコマンドを実行する。
 ⇒ Apple Fan (10/16)
ファイル保存ダイアログの初期ディレクトリについての話 (vimエディタ話)
 ⇒ ナレッジエース (07/23)
:e <C-x> (編集中のファイルと同じディレクトリにあるファイルを開く。)
 ⇒ ボクノス (02/07)
Opening many files using wildcards.
 ⇒ PukiWiki Plus! (PukiWiki/TrackBack 0.4) (10/28)
 ⇒ 川o・-・)<2nd life (07/18)
vimエディタで印刷自由自在 その8 -エディタからの直接の印刷の代わりに、2html.vimスクリプトを使用する-
 ⇒ Knoppix Temporary Directory (PukiWiki/TrackBack 0.3) (02/19)
検索でマッチした対象に対して、置換を行う。(vimエディタ話)
 ⇒ 123net :: 開発日記 (12/31)
ごみ箱にファイルを叩き込むスクリプト。(vimエディタ)
 ⇒ "OSX" .app's :Macのアプリを便利、感動、面白をベースにほぼ日刊で紹介。 (11/26)
パーセント、%、percent でのカーソル移動 (vimエディタ話)
 ⇒ プログラミング言語 (10/11)
過去ログ
Profile
小見 拓
mail@nanasi.jp
小見と申します。
神奈川でデベロッパーやってます。
名無しのVIM使い

RSS 1.0


広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。