먼저 .vimrc
하위 목록 및 하위 하위 목록이있는 목록과 같이 자신의 범주를 정의 하고 모든 플러그인 / 설정 / 기능을 해당 범주에 추가하는 것이 좋습니다. 맞춤형 폴딩과 결합하면 다음과 같이 효과적입니다.
위의 예는 my을 구성하는 데 도움이되는 가능한 범주를 보여줍니다 .vimrc
. 다음과 같은 사용자 정의 접기 설정을 사용합니다.
""""""""""""""""""""""""
" THIS IS A CATEGORY "
""""""""""""""""""""""""
"" Autofolding .vimrc
" see http://vimcasts.org/episodes/writing-a-custom-fold-expression/
""" defines a foldlevel for each line of code
function! VimFolds(lnum)
let s:thisline = getline(a:lnum)
if match(s:thisline, '^"" ') >= 0
return '>2'
endif
if match(s:thisline, '^""" ') >= 0
return '>3'
endif
let s:two_following_lines = 0
if line(a:lnum) + 2 <= line('$')
let s:line_1_after = getline(a:lnum+1)
let s:line_2_after = getline(a:lnum+2)
let s:two_following_lines = 1
endif
if !s:two_following_lines
return '='
endif
else
if (match(s:thisline, '^"""""') >= 0) &&
\ (match(s:line_1_after, '^" ') >= 0) &&
\ (match(s:line_2_after, '^""""') >= 0)
return '>1'
else
return '='
endif
endif
endfunction
""" defines a foldtext
function! VimFoldText()
" handle special case of normal comment first
let s:info = '('.string(v:foldend-v:foldstart).' l)'
if v:foldlevel == 1
let s:line = ' ◇ '.getline(v:foldstart+1)[3:-2]
elseif v:foldlevel == 2
let s:line = ' ● '.getline(v:foldstart)[3:]
elseif v:foldlevel == 3
let s:line = ' ▪ '.getline(v:foldstart)[4:]
endif
if strwidth(s:line) > 80 - len(s:info) - 3
return s:line[:79-len(s:info)-3+len(s:line)-strwidth(s:line)].'...'.s:info
else
return s:line.repeat(' ', 80 - strwidth(s:line) - len(s:info)).s:info
endif
endfunction
""" set foldsettings automatically for vim files
augroup fold_vimrc
autocmd!
autocmd FileType vim
\ setlocal foldmethod=expr |
\ setlocal foldexpr=VimFolds(v:lnum) |
\ setlocal foldtext=VimFoldText() |
" \ set foldcolumn=2 foldminlines=2
augroup END
자신의 범주와 하위 범주를 정의하려면 다음 구문을 사용하십시오.
""""""""""""""
" Category "
""""""""""""""
"" Subcategory
""" Subsubcategory
" Just a comment, gets ignored no matter where
vim- 스 니펫 을 사용하는 경우 최상위 카테고리를 쉽게 만들 수 있습니다 (예 : UltiSnips 사용 ) : vim- 스 니펫에서 제공 하는 box
또는 bbox
스 니펫을 확장하기 만하면 됩니다 ( 확장 트리거 작성 box
또는 bbox
누르기).
공간을 두 번 눌러 접기를 더 빠르게 열고 닫으려면 :
let mapleader = "\<space>"
" Toggle folds
nnoremap <silent> <leader><Space> @=(foldlevel('.')?'za':"\<Space>")<CR>
vnoremap <leader><space> zf
그렇게하면 .vimrc
쉽게 탐색 할 수 있는 잘 구조화 되어 있습니다.
"{{{
일을하는 방법이 가장 '와 같은 정력'의 솔라리 플러그인이 사용하고 그것은 당신에게 수동 주름 설정의 가장 표준적인 방법 제공 소음이 될 수도 있지만입니다