.vimrc
(サブリストとサブサブリストのリストのように)最初に独自のカテゴリを定義し、すべてのプラグイン/設定/機能をそれぞれのカテゴリに追加することをお勧めします。カスタマイズされた折り畳みと組み合わせると、これは非常に効果的です:
上記の例は、カテゴリを構成するのに役立つと思われるカテゴリを示しています.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-snippetsを使用する場合(たとえばUltiSnipsを使用)、最上位のカテゴリを非常に簡単に作成できます。vim -snippetsが提供する、box
またはbbox
スニペットを展開するだけです(書き込みトリガーbox
またはbbox
展開トリガーを押します)。
スペースを2回押して、折り畳みの開閉をさらに高速に切り替えるには:
let mapleader = "\<space>"
" Toggle folds
nnoremap <silent> <leader><Space> @=(foldlevel('.')?'za':"\<Space>")<CR>
vnoremap <leader><space> zf
そうすれば、.vimrc
簡単にナビゲートできる適切に構造化されたものができます。
"{{{
物事のやり方で最も「のような、Vimは」solarizedプラグインはこれを使用しているし、それはあなたのマニュアル折り目を設定する最も標準的な方法を提供しますNOISYそれがあるかもしれませんが