diff --git a/README.markdown b/README.markdown index 0317e62..bc2741f 100644 --- a/README.markdown +++ b/README.markdown @@ -105,3 +105,11 @@ Stick this in your vimrc: > Can I have different highlighting for different file extensions? See here: https://github.com/scrooloose/nerdtree/issues/433#issuecomment-92590696 + +> How can I change default arrows? + +Use these variables in your vimrc. Note that below are default arrow symbols + + let g:NERDTreeDirArrows = 1 + let g:NERDTreeDirArrowExpandable = '▸' + let g:NERDTreeDirArrowCollapsable = '▾' diff --git a/autoload/nerdtree/ui_glue.vim b/autoload/nerdtree/ui_glue.vim index 1f922df..e706ee5 100644 --- a/autoload/nerdtree/ui_glue.vim +++ b/autoload/nerdtree/ui_glue.vim @@ -312,7 +312,7 @@ function! s:handleLeftClick() endfor if currentNode.path.isDirectory - if startToCur =~# g:NERDTreeUI.MarkupReg() && startToCur =~# '[+~▾▸] \?$' + if startToCur =~# g:NERDTreeUI.MarkupReg() && startToCur =~# '[+~'.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsable.'] \?$' call currentNode.activate() return endif diff --git a/lib/nerdtree/tree_file_node.vim b/lib/nerdtree/tree_file_node.vim index b4924d7..5c38641 100644 --- a/lib/nerdtree/tree_file_node.vim +++ b/lib/nerdtree/tree_file_node.vim @@ -383,13 +383,13 @@ function! s:TreeFileNode._renderToString(depth, drawText, vertMap, isLastChild) if self.path.isDirectory if self.isOpen if g:NERDTreeDirArrows - let treeParts = treeParts . '▾ ' + let treeParts = treeParts . g:NERDTreeDirArrowCollapsable . ' ' else let treeParts = treeParts . '~' endif else if g:NERDTreeDirArrows - let treeParts = treeParts . '▸ ' + let treeParts = treeParts . g:NERDTreeDirArrowExpandable . ' ' else let treeParts = treeParts . '+' endif diff --git a/lib/nerdtree/ui.vim b/lib/nerdtree/ui.vim index 22e450c..5632ab0 100644 --- a/lib/nerdtree/ui.vim +++ b/lib/nerdtree/ui.vim @@ -154,7 +154,7 @@ function! s:UI.getPath(ln) if !g:NERDTreeDirArrows " in case called from outside the tree - if line !~# '^ *[|`▸▾ ]' || line =~# '^$' + if line !~# '^ *[|`'.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsable.' ]' || line =~# '^$' return {} endif endif @@ -261,9 +261,9 @@ endfunction "FUNCTION: s:UI._indentLevelFor(line) {{{1 function! s:UI._indentLevelFor(line) - let level = match(a:line, '[^ \-+~▸▾`|]') / s:UI.IndentWid() + let level = match(a:line, '[^ \-+~'.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsable.'`|]') / s:UI.IndentWid() " check if line includes arrows - if match(a:line, '[▸▾]') > -1 + if match(a:line, '['.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsable.]') > -1 " decrement level as arrow uses 3 ascii chars let level = level - 1 endif @@ -278,7 +278,7 @@ endfunction "FUNCTION: s:UI.MarkupReg() {{{1 function! s:UI.MarkupReg() if g:NERDTreeDirArrows - return '^\([▾▸] \| \+[▾▸] \| \+\)' + return '^\(['.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsable.'] \| \+['.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsable.'] \| \+\)' endif return '^[ `|]*[\-+~]' diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim index 966838c..7b3dff0 100644 --- a/plugin/NERD_tree.vim +++ b/plugin/NERD_tree.vim @@ -68,6 +68,8 @@ call s:initVariable("g:NERDTreeShowHidden", 0) call s:initVariable("g:NERDTreeShowLineNumbers", 0) call s:initVariable("g:NERDTreeSortDirs", 1) call s:initVariable("g:NERDTreeDirArrows", !nerdtree#runningWindows()) +call s:initVariable("g:NERDTreeDirArrowExpandable", "▸") +call s:initVariable("g:NERDTreeDirArrowCollapsable", "▾") call s:initVariable("g:NERDTreeCascadeOpenSingleChildDir", 1) if !exists("g:NERDTreeSortOrder") diff --git a/syntax/nerdtree.vim b/syntax/nerdtree.vim index 5f7b49c..1d09788 100644 --- a/syntax/nerdtree.vim +++ b/syntax/nerdtree.vim @@ -23,12 +23,13 @@ syn match NERDTreeLinkDir #.*/ ->#me=e-3 containedin=NERDTreeDir syn match NERDTreeDirSlash #/# containedin=NERDTreeDir if g:NERDTreeDirArrows - syn match NERDTreeClosable #▾# containedin=NERDTreeDir,NERDTreeFile - syn match NERDTreeOpenable #▸# containedin=NERDTreeDir,NERDTreeFile + exec 'syn match NERDTreeClosable #'.g:NERDTreeDirArrowCollapsable.'# containedin=NERDTreeDir,NERDTreeFile' + exec 'syn match NERDTreeOpenable #'.g:NERDTreeDirArrowExpandable.'# containedin=NERDTreeDir,NERDTreeFile' - syn match NERDTreeDir #[^▾▸ ].*/# + let s:dirArrows = g:NERDTreeDirArrowCollapsable.g:NERDTreeDirArrowExpandable + exec 'syn match NERDTreeDir #[^'.s:dirArrows.' ].*/#' syn match NERDTreeExecFile #^ .*\*\($\| \)# contains=NERDTreeRO,NERDTreeBookmark - syn match NERDTreeFile #^[^"\.▾▸] *[^▾▸]*# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmark,NERDTreeExecFile + exec 'syn match NERDTreeFile #^[^"\.'.s:dirArrows.'] *[^'.s:dirArrows.']*# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmark,NERDTreeExecFile' "highlighting for readonly files syn match NERDTreeRO # *\zs.*\ze \[RO\]# contains=NERDTreeIgnore,NERDTreeBookmark,NERDTreeFile