download

Sign in or create your account | Project List | Help

download Git Source Tree

Root/hl.vim

1" {{{
2scriptencoding utf-8 " {{{
3if &cp || exists("g:loaded_hl")
4    finish
5endif
6let g:loaded_hl = 1
7
8let s:save_cpo = &cpo
9set cpo&vim
10" }}}
11
12
13" command {{{
14command! -narg=0 -range HLLine <line1>,<line2>call s:HLLine()
15command! -narg=0 HLWord call s:HLWord()
16command! -narg=0 -range HLSelect call s:HLSelect()
17" map
18nmap HL :HLLine<CR>
19vmap HL :HLLine<CR>
20nmap HW :HLWord<CR>
21vmap HS :HLSelect<CR>
22" }}}
23
24" function: s:HLLine / highlight current line {{{
25function! s:HLLine() range
26    let l:save_cursor = getpos(".")
27    let @/ =
28                \ '\%>' . (a:firstline - 1) . 'l' .
29                \ '\%<' . (a:lastline + 1) . 'l'
30    call feedkeys("n")
31    " not beautiful
32    call feedkeys("h")
33    call setpos('.', l:save_cursor)
34endfunction " }}}
35
36" function s:HLWord / highlight current word {{{
37function! s:HLWord()
38    let l:save_cursor = getpos(".")
39    let [l:bufnum, l:lnum, l:col, l:off] = l:save_cursor
40
41    let l:cword = expand("<cword>")
42    let l:cword_len = strlen(l:cword)
43
44    let l:l = l:col - 1
45    let l:r = l:col + l:cword_len
46
47    let @/ =
48                \ '\%' . l:lnum . 'l' .
49                \ '\%>' . l:l . 'c' .
50                \ '\%<' . l:r . 'c'
51
52    call feedkeys("n")
53    " not beautiful
54    call feedkeys("h")
55    call setpos('.', l:save_cursor)
56endfunction " }}}
57
58" function s:HLSelect / highlight selected area {{{
59function! s:HLSelect()
60    let l:save_cursor = getpos(".")
61
62    let [l:bufnuml, l:lnuml, l:coll, l:offl] = getpos('''<')
63    let [l:bufnumr, l:lnumr, l:colr, l:offr] = getpos('''>')
64
65    " in a line
66    if l:lnuml == l:lnumr
67        let l:u = l:lnuml - 1
68        let l:b = l:lnumr + 1
69        let l:l = l:coll - 1
70        let l:r = l:colr + 1
71
72        let @/ =
73                    \ '\%>' . l:u . 'l' .
74                    \ '\%<' . l:b . 'l' .
75                    \ '\%>' . l:l . 'c' .
76                    \ '\%<' . l:r . 'c'
77
78    " in some lines
79    else
80        let @/ =
81                    \ '\%(' .
82                    \ '\%' . l:lnuml . 'l' .
83                    \ '\%>' . (l:coll - 1) . 'c' .
84                    \ '\)' .
85                    \ '\|' .
86                    \ '\%(' .
87                    \ '\%' . l:lnumr . 'l' .
88                    \ '\%<' . (l:colr + 1) . 'c' .
89                    \ '\)' .
90                    \ '\|' .
91                    \ '\%(' .
92                    \ '\%>' . (l:lnuml) . 'l' .
93                    \ '\%<' . (l:lnumr) . 'l' .
94                    \ '\)'
95    endif
96
97    call feedkeys("n")
98    " not beautiful
99    call feedkeys("h")
100    call setpos('.', l:save_cursor)
101endfunction " }}}
102
103let &cpo = s:save_cpo " {{{
104finish " }}}
105" }}}
106==============================================================================
107hl.vim : ハイライト用スクリプト
108------------------------------------------------------------------------------
109$VIMRUNTIMEPATH/plugin/hl.vim
110==============================================================================
111author : 小見 拓
112url : http://nanasi.jp/
113email : mail@nanasi.jp
114version : 2009/12/19 16:00:00
115==============================================================================
116現在行、カーソル下単語、選択範囲をhlsearchオンによる強調表示でハイライトする
117プレゼンテーション用スクリプトです。
118
119------------------------------------------------------------------------------
120[ノーマルモード用]
121" カレント行をハイライト表示する。
122:HL
123
124" カーソル下単語をハイライト表示する。
125" カーソルは単語の先頭位置でなければならない。
126:HW
127
128------------------------------------------------------------------------------
129[ビジュアルモード用]
130" 選択した範囲の行をハイライト表示する。
131:'<,'>HL
132
133" ビジュアルモードで選択したテキストをハイライト表示する。
134:'<,'>HS
135
136------------------------------------------------------------------------------
137[更新履歴]
1382009.12.01 ハイライトの形式を修正。
1392008.10.01 initial upload.
140
141==============================================================================
142" vim: set et ft=vim nowrap foldmethod=marker :
143

Archive Download this file

Branches:
master