download

Sign in or create your account | Project List | Help

download Git Source Tree

Root/catn.vim

1:scriptencoding utf-8
2" 1度スクリプトを読み込んだら、2度目は読み込まない
3:if &cp || exists("g:loaded_catn")
4    :finish
5:endif
6:let g:loaded_catn = 1
7
8" ユーザの初期設定を逃がす
9:let s:save_cpo = &cpo
10:set cpo&vim
11
12" 引数の数で処理を分岐する。
13:function! s:Catn(...) range
14    :if len(a:000) == 0
15        :call s:CatnFormat("%d ", 1, a:firstline, a:lastline)
16    :elseif len(a:000) == 1
17        :call s:CatnFormat("%d ", a:1, a:firstline, a:lastline)
18    :else
19        :call s:CatnFormat(a:1, a:2, a:firstline, a:lastline)
20    :endif
21:endfunction
22
23" 指定範囲の先頭に、指定フォーマットの連番を挿入する。
24:function! s:CatnFormat(format, start_no, start, end)
25    " 順番に行を置き換えていく
26    :let l:i = 0
27    :while (a:start + l:i) <= a:end
28        " 連番の作成
29        :let l:no_fmt = printf(a:format, a:start_no + l:i)
30        " 行の置き換え
31        :let l:line_fmt = printf("%s%s", l:no_fmt, getline(a:start + l:i))
32        :call setline(a:start + l:i, l:line_fmt)
33        :let l:i += 1
34    :endwhile
35:endfunction
36
37" 引数可変のコマンドの定義。
38:command! -narg=* -range Catn :<line1>,<line2>call s:Catn(<f-args>)
39
40" 退避していたユーザのデータをリカバリ
41:let &cpo = s:save_cpo
42" スクリプトはここまで
43:finish
44
45==============================================================================
46catn.vim : 行先頭に連番を挿入するスクリプト
47------------------------------------------------------------------------------
48$VIMRUNTIMEPATH/plugin/catn.vim
49==============================================================================
50author : 小見 拓
51url : http://nanasi.jp/
52email : mail@nanasi.jp
53version : 2009/12/19 16:00:00
54==============================================================================
55選択した範囲の先頭に連番を挿入する。Unixの"cat -n"
56
57:'<,'>Catn {フォーマット} {開始値}
58:'<,'>Catn [{開始値}]
59
60:'<,'>Catn
61:'<,'>Catn 1000
62:'<,'>Catn %08d\ 500
63
64==============================================================================
65" vim: set et ft=vim nowrap :
66

Archive Download this file

Branches:
master