- 83 名前:81 mailto:sage [02/01/06 03:07]
- KoRoNさんにこんなに詳細にコメントを頂けるなんて感激です。
ありがとうございます。 このスレでvimスクリプト入門を果たしたので知らないことばかりですが これからも精進したいです。 修正したものを貼り付けます。 # マーク位置を判定 の部分は私の能力では簡潔に書き直せなかった;; "マークにジャンプする function! s:JumpToMark(mode) let markchars = "abcdefghijklmnopqrstuvwxyz" if a:mode ==? "up" let LineNo = 0 endif if a:mode ==? "down" let LineNo = line("$") + 1 endif let LineNoOrg = line(".") let MarkChar = "" let i = 0 "a-z をチェック while i <= (char2nr('z') - char2nr('a')) let x = line("'" . markchars[i]) "マーク位置を判定 if (a:mode ==? "up" && LineNoOrg > x && LineNo < x) || (a:mode ==? "down" && LineNoOrg < x && LineNo > x) let MarkChar = markchars[i] let LineNo = x endif let i = i + 1 endwhile if MarkChar != "" "移動 execute "normal `" . MarkChar redraw! echo "マーク" MarkChar "にジャンプ" else echohl ErrorMsg echo "該当するマークがない;;" echohl None endif endfunction "コマンド定義 command! JumpToMarkDown call <SID>JumpToMark('down') command! JumpToMarkUp call <SID>JumpToMark('up')
|

|