Skip to content

Instantly share code, notes, and snippets.

@sooop
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sooop/9326451 to your computer and use it in GitHub Desktop.
Save sooop/9326451 to your computer and use it in GitHub Desktop.
"SECTION: color change function {{{1
"===============================================================================
"TOPIC: Functions {{{2
"FUNCTION: PrepareColorList
"---------------------------
let s:colorindex = 0
function! PrepareColorList()
let s:colorlist = []
if !exists('s:colorlist[0]')
let s:colorlist = split(glob("$VIMRUNTIME/colors/*.vim"), "\n")
if has('win32')
" ??? glob() : get all filelist fron given path and pattern.
" ??? split() : split text into a list, using given saperator.
" ??? map() :
call extend(s:colorlist, split(glob("$HOME/vimfiles/colors/*.vim"), "\n"))
call map(s:colorlist, 'strpart(v:val, strridx(v:val, "\\")+1, strlen(v:val) - strridx(v:val, "\\") - 5)')
else
call extend(s:colorlist, split(glob("$HOME/.vim/colors/*.vim"), "\n"))
call map(s:colorlist, 'strpart(v:val, strridx(v:val, "/") +1, strlen(v:val) - strridx(v:val, "/") - 5)')
endif
endif
endfunction
"FUNCTION: NextColor
"--------------------
function! NextColor()
call PrepareColorList()
if s:colorindex == len(s:colorlist) -1
let s:colorindex = 0
else
let s:colorindex += 1
endif
let s:colorname = get(s:colorlist, s:colorindex)
execute "color ".s:colorname
endfunction
"FUNCTION: DispColorName
"-------------------------
function! DispColorName()
"call PrepareColorList()
echo s:colorname
endfunction
"FUNCTION: PrevColor
"---------------------
function! PrevColor()
call PrepareColorList()
if s:colorindex == 0
let s:colorindex = len(s:colorlist) - 1
else
let s:colorindex -= 1
endif
let s:colorname = get(s:colorlist, s:colorindex)
execute "color ".s:colorname
endfunction
"TOPIC: key maps for color change {{{2
nnoremap <leader>ui :call DispColorName()<cr>
nnoremap <F10> :call NextColor()<cr>:call DispColorName()<cr>
nnoremap <s-F10> :call PrevColor()<cr>:call DispColorName()<cr>
nnoremap <leader>uu :call NextColor()<cr>
@sooop
Copy link
Author

sooop commented Mar 3, 2014

map()

map({표현식}, {문자열})

  1. 표현식은 리스트나 사전형식의 데이터이다.
  2. 문자열은 문자열로 감싼(?), 그러니까 따옴표로 감싼 표현식이다. 이 문자열 내 표현식을 리스트의 각 요소에 적용한 결과로 주어진 리스트의 내용을 교체한다.
  3. 2)에서 표현식에서 각각 개별 원소는 v:val로 표현한다.

예시

:let x = [ 1, 2, 3, 4 ]
:map(x, "v:val + 1")
:echo x
 [2, 3, 4, 5]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment