e30fca43b3
subrepo: subdir: "dotfiles/.vim/plugged/vim-devicons" merged: "71f239af2" upstream: origin: "https://github.com/ryanoasis/vim-devicons.git" branch: "master" commit: "71f239af2" git-subrepo: version: "0.4.3" origin: "???" commit: "???"
1078 lines
39 KiB
Text
1078 lines
39 KiB
Text
*devicons*
|
|
|
|
===============================================================================
|
|
Contents ~
|
|
|
|
1. Introduction |devicons-introduction|
|
|
2. Features |devicons-features|
|
|
3. Installation |devicons-installation|
|
|
4. Developers |devicons-developers|
|
|
5. Troubleshooting |devicons-troubleshooting|
|
|
6. Contributing |devicons-contributing|
|
|
1. Code of Conduct [22] |devicons-code-of-conduct-22|
|
|
2. Contributing Guide [23] |devicons-contributing-guide-23|
|
|
3. Promotion |devicons-promotion|
|
|
7. Acknowledgments |devicons-acknowledgments|
|
|
8. License |devicons-license|
|
|
9. Detailed Installation |devicons-detailed-installation|
|
|
1. Step 1 'Nerd Font' |Nerd-Font|
|
|
2. Step 2 'VimDevIcons Plugin' |VimDevIcons-Plugin|
|
|
1. Pathogen [38] |devicons-pathogen-38|
|
|
2. NeoBundle [39] |devicons-neobundle-39|
|
|
3. Vundle [40] |devicons-vundle-40|
|
|
4. Manual |devicons-manual|
|
|
3. Step 3 'Configure Vim' |Configure-Vim|
|
|
1. Set Encoding |devicons-set-encoding|
|
|
2. Set Font |devicons-set-font|
|
|
3. vim-airline |devicons-vim-airline|
|
|
4. vimrc examples |devicons-vimrc-examples|
|
|
4. That's it! You're done. |devicons-thats-it-youre-done.|
|
|
10. Usage |devicons-usage|
|
|
1. NERDTree |devicons-nerdtree|
|
|
2. Unite |devicons-unite|
|
|
3. Denite |devicons-denite|
|
|
4. Vimfiler |devicons-vimfiler|
|
|
5. CtrlP |devicons-ctrlp|
|
|
6. Airline |devicons-airline|
|
|
7. Startify |devicons-startify|
|
|
8. Lightline Setup |devicons-lightline-setup|
|
|
9. Powerline Setup |devicons-powerline-setup|
|
|
10. Flagship |devicons-flagship|
|
|
11. Detailed Features |devicons-detailed-features|
|
|
12. Extra Configuration |devicons-extra-configuration|
|
|
1. Character Mappings |devicons-character-mappings|
|
|
2. API |devicons-api|
|
|
1. Public Methods |devicons-public-methods|
|
|
2. API Examples |devicons-api-examples|
|
|
1. Status line |devicons-status-line|
|
|
2. Simple function call |devicons-simple-function-call|
|
|
3. Integration with other plugins |devicons-integration-with-other-plugins|
|
|
1. vim-startify |devicons-vim-startify|
|
|
13. FAQ |devicons-faq|
|
|
1. Why isn't it working? How come I don't see any icons? |devicons-why-isnt-it-working-how-come-i-dont-see-any-icons|
|
|
2. How did you get color matching based on file type in NERDtree? |devicons-how-did-you-get-color-matching-based-on-file-type-in-nerdtree|
|
|
3. How did you get color matching on just the glyph/icon in NERDtree? |devicons-how-did-you-get-color-matching-on-just-glyph-icon-in-nerdtree|
|
|
4. How do I solve issues after re-sourcing my |vimrc|?
|
|
5. Why do I have artifacts after (or instead) of icons? |devicons-why-do-i-have-artifacts-after-of-icons|
|
|
6. Square brackets around icons |devicons-square-brackets-around-icons|
|
|
1. from terminal |devicons-from-terminal|
|
|
7. Do I have to use a patched font such as Nerd Fonts? |devicons-do-i-have-to-use-patched-font-such-as-nerd-fonts|
|
|
8. Rationale: Why does this exist? How did this start? |devicons-rationale-why-does-this-exist-how-did-this-start|
|
|
14. References |devicons-references|
|
|
|
|
===============================================================================
|
|
*devicons-introduction*
|
|
Introduction ~
|
|
>
|
|
_ ___ ____ ____
|
|
| | / (_____ ___ / __ \___ _ __/ _/________ ____ _____
|
|
| | / / / __ `__ \/ / / / _ | | / // // ___/ __ \/ __ \/ ___/
|
|
| |/ / / / / / / / /_/ / __| |/ _/ // /__/ /_/ / / / (__ )
|
|
|___/_/_/ /_/ /_/_____/\___/|___/___/\___/\____/_/ /_/____/
|
|
<
|
|
**VimDevIcons**
|
|
|
|
Adds Icons to Your Plugins
|
|
|
|
Supports plugins such as NERDTree [1], vim-airline [2], CtrlP [3], powerline
|
|
[4], denite [5], unite [6], lightline.vim [7], vim-startify [8], vimfiler [9],
|
|
vim-workspace [10] and flagship [11].
|
|
|
|
See Screenshots [12] for more.
|
|
|
|
===============================================================================
|
|
*devicons-features*
|
|
Features ~
|
|
|
|
- Adds filetype glyphs (icons) to various vim plugins.
|
|
- Supports byte order marker (BOM).
|
|
- Customizable and extendable glyphs settings.
|
|
- Supports a wide range of file type extensions.
|
|
- Supports popular full filenames, like '.gitignore', 'node_modules',
|
|
'.vimrc'.
|
|
- Works with patched fonts, especially Nerd Fonts [13].
|
|
|
|
See Detailed Features [14] for more.
|
|
|
|
See Configuration [15] for a list of configuration and customization options.
|
|
|
|
===============================================================================
|
|
*devicons-installation*
|
|
Installation ~
|
|
|
|
1. Install a Nerd Font compatible font [16] or patch your own [17]. Then set
|
|
your terminal font (or 'guifont' if you are using GUI version of Vim).
|
|
|
|
2. Install the Vim plugin with your favorite plugin manager, e.g. vim-plug
|
|
[18]:
|
|
|
|
"vim Plug 'ryanoasis/vim-devicons'"
|
|
|
|
Always load the vim-devicons as the very last one.
|
|
|
|
3. Configure Vim
|
|
|
|
'vim set encoding=UTF-8'
|
|
|
|
No need to set explicitly under Neovim: always uses UTF-8 as the default
|
|
encoding.
|
|
|
|
See Installation [19] for detailed setup instructions
|
|
|
|
Use ':help devicons' for further configuration.
|
|
|
|
===============================================================================
|
|
*devicons-developers*
|
|
Developers ~
|
|
|
|
See DEVELOPER [20] for how to use the API.
|
|
|
|
===============================================================================
|
|
*devicons-troubleshooting*
|
|
Troubleshooting ~
|
|
|
|
See FAQ [21].
|
|
|
|
===============================================================================
|
|
*devicons-contributing*
|
|
Contributing ~
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-code-of-conduct-22*
|
|
Code of Conduct [22] ~
|
|
|
|
This project has adopted a Code of Conduct that we expect project participants
|
|
to adhere to. Check out code of conduct [22] for further details.
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-contributing-guide-23*
|
|
Contributing Guide [23] ~
|
|
|
|
Read our contributing [23] guide to learn about how to send pull requests,
|
|
creating issues properly.
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-promotion*
|
|
Promotion ~
|
|
|
|
You can help us by simply giving a star or voting on vim.org. It will ensure
|
|
continued development going forward.
|
|
|
|
- Star this repository on GitHub [24].
|
|
- Vote for it on vim.org [25].
|
|
|
|
===============================================================================
|
|
*devicons-acknowledgments*
|
|
Acknowledgments ~
|
|
|
|
Thanks goes to these people for inspiration and helping with sending PRs.
|
|
|
|
- vim-airline [2]
|
|
- nerdtree [1]
|
|
- nerdtree-git-plugin [26] by @Xuyuanp [27]
|
|
- seti-ui [28] by @jesseweed [29]
|
|
- devicons [30] by @vorillaz [31]
|
|
- development.svg.icons [32] by @benatespina [33]
|
|
- Learn Vimscript the Hard Way [34] book by Steve Losh [35]
|
|
- All contributors [36]
|
|
|
|
===============================================================================
|
|
*devicons-license*
|
|
License ~
|
|
|
|
MIT [37]
|
|
|
|
===============================================================================
|
|
*devicons-detailed-installation*
|
|
Detailed Installation ~
|
|
|
|
-------------------------------------------------------------------------------
|
|
*Nerd-Font*
|
|
Step 1 'Nerd Font' ~
|
|
|
|
Get a **Nerd Font!** [16] or patch your own. [17] Without this, things break
|
|
|
|
-------------------------------------------------------------------------------
|
|
*VimDevIcons-Plugin*
|
|
Step 2 'VimDevIcons Plugin' ~
|
|
|
|
**Set VimDevIcons to load _after_ these plugins!**
|
|
|
|
NERDTree [1] | vim-airline [2] | CtrlP [3] | powerline [4] | Denite [5] | unite
|
|
[6] | lightline.vim [7] | vim-startify [8] | vimfiler [9] | flagship [11]
|
|
|
|
Choose your favorite plugin manager
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-pathogen-38*
|
|
Pathogen [38] ~
|
|
|
|
- 'git clone https://github.com/ryanoasis/vim-devicons ~/.vim/bundle/vim-
|
|
devicons'
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-neobundle-39*
|
|
NeoBundle [39] ~
|
|
|
|
- Add to vimrc:
|
|
|
|
"vim NeoBundle 'ryanoasis/vim-devicons'" * And install it:
|
|
|
|
'vim :so ~/.vimrc :NeoBundleInstall'
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-vundle-40*
|
|
Vundle [40] ~
|
|
|
|
- Add to vimrc:
|
|
|
|
"vim Plugin 'ryanoasis/vim-devicons'" * And install it:
|
|
|
|
'vim :so ~/.vimrc :PlugInstall'
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-manual*
|
|
Manual ~
|
|
|
|
- copy all of the files into your '~/.vim' directory
|
|
|
|
-------------------------------------------------------------------------------
|
|
*Configure-Vim*
|
|
Step 3 'Configure Vim' ~
|
|
|
|
Add the following in your '.vimrc' or '.gvimrc':
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-set-encoding*
|
|
Set Encoding ~
|
|
|
|
**Set encoding to UTF-8 to show glyphs**
|
|
|
|
'vim set encoding=utf8'
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-set-font*
|
|
Set Font ~
|
|
|
|
**Set Vim font to a Nerd Font**
|
|
|
|
Linux 'vim set guifont='
|
|
>
|
|
set guifont=DroidSansMono\ Nerd\ Font\ 11
|
|
<
|
|
macOS (OS X) and Windows
|
|
>
|
|
set guifont=:h
|
|
<
|
|
|
|
>
|
|
set guifont=DroidSansMono\ Nerd\ Font:h11
|
|
" or:
|
|
set guifont=DroidSansMono_Nerd_Font:h11
|
|
<
|
|
**Note:** if you don't set 'guifont' then you'll have to set your terminal's
|
|
font, else things break!
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-vim-airline*
|
|
vim-airline ~
|
|
|
|
**If you use vim-airline you need this:**
|
|
|
|
'vim let g:airline_powerline_fonts = 1'
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-vimrc-examples*
|
|
vimrc examples ~
|
|
|
|
- Sample Windows vimrc configuration 1 [41]
|
|
- Sample Linux vimrc configuration 1 [42]
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-thats-it-youre-done.*
|
|
That's it! You're done. ~
|
|
|
|
===============================================================================
|
|
*devicons-usage*
|
|
Usage ~
|
|
|
|
If you installed and setup things correctly you should now see icons in the
|
|
supported plugins!
|
|
|
|
**Notes on include order:** _for support of these plugins: NERDTree [1], vim-
|
|
airline [2], CtrlP [3], powerline [4], Denite [5], unite [6], vimfiler [9],
|
|
flagship [11] you **must** configure vim to load those plugins__before_ vim-
|
|
devicons loads. for better nerdtree-git-plugin [26] support, you _should_
|
|
configure vim to load nerdtree-git-plugin **_before_** VimDevIcons loads. * if
|
|
you are lazy loading Denite [5] using the Dein plugin manager, you will need to
|
|
source VimDevIcons before Denite loads.
|
|
|
|
Lightline Setup and Powerline Setup require some extra setup as shown below:
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-nerdtree*
|
|
NERDTree ~
|
|
|
|
Should work "out of the box", no particular configuration should be needed.
|
|
>
|
|
" Can be enabled or disabled
|
|
let g:webdevicons_enable_nerdtree = 1
|
|
<
|
|
|
|
>
|
|
" whether or not to show the nerdtree brackets around flags
|
|
let g:webdevicons_conceal_nerdtree_brackets = 1
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-unite*
|
|
Unite ~
|
|
|
|
Should work "out of the box", no particular configuration should be needed.
|
|
>
|
|
" Can be enabled or disabled
|
|
" adding the custom source to unite
|
|
let g:webdevicons_enable_unite = 1
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-denite*
|
|
Denite ~
|
|
|
|
Should work "out of the box", no particular configuration should be needed.
|
|
>
|
|
" Can be enabled or disabled
|
|
" Adding the custom source to denite
|
|
let g:webdevicons_enable_denite = 1
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-vimfiler*
|
|
Vimfiler ~
|
|
|
|
Should work "out of the box", no particular configuration should be needed.
|
|
>
|
|
" Can be enabled or disabled
|
|
" adding the column to vimfiler
|
|
let g:webdevicons_enable_vimfiler = 1
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-ctrlp*
|
|
CtrlP ~
|
|
|
|
Should work "out of the box", no particular configuration should be needed.
|
|
>
|
|
" Can be enabled or disabled
|
|
" add glyphs to all modes
|
|
let g:webdevicons_enable_ctrlp = 1
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-airline*
|
|
Airline ~
|
|
|
|
Should work "out of the box", no particular configuration should be needed.
|
|
>
|
|
" adding to vim-airline's tabline
|
|
let g:webdevicons_enable_airline_tabline = 1
|
|
<
|
|
|
|
>
|
|
" adding to vim-airline's statusline
|
|
let g:webdevicons_enable_airline_statusline = 1
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-startify*
|
|
Startify ~
|
|
|
|
Should work "out of the box", no particular configuration should be needed.
|
|
>
|
|
" Can be enabled or disabled
|
|
" adding to vim-startify screen
|
|
let g:webdevicons_enable_startify = 1
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-lightline-setup*
|
|
Lightline Setup ~
|
|
|
|
To add the appropriate icon to lightline [7], call the function
|
|
'WebDevIconsGetFileTypeSymbol()' and/or 'WebDevIconsGetFileFormatSymbol()' in
|
|
your '.vimrc'. For example, you could set your sections to:
|
|
>
|
|
let g:lightline = {
|
|
\ 'component_function': {
|
|
\ 'filetype': 'MyFiletype',
|
|
\ 'fileformat': 'MyFileformat',
|
|
\ }
|
|
\ }
|
|
|
|
function! MyFiletype()
|
|
return winwidth(0) > 70 ? (strlen(&filetype) ? &filetype . ' ' . WebDevIconsGetFileTypeSymbol() : 'no ft') : ''
|
|
endfunction
|
|
|
|
function! MyFileformat()
|
|
return winwidth(0) > 70 ? (&fileformat . ' ' . WebDevIconsGetFileFormatSymbol()) : ''
|
|
endfunction
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-powerline-setup*
|
|
Powerline Setup ~
|
|
|
|
- _Note this is for the current Powerline [4] not the deprecated vim-
|
|
powerline [43]_
|
|
|
|
To enable for Powerline [4] some |vimrc| and powerline configuration changes
|
|
are needed:
|
|
|
|
|vimrc| changes (only required if you don't already have powerline setup for
|
|
vim):
|
|
>
|
|
set rtp+=$HOME/.local/lib/python2.7/site-packages/powerline/bindings/vim/
|
|
|
|
" Always show statusline
|
|
set laststatus=2
|
|
|
|
" Use 256 colours (Use this setting only if your terminal supports 256 colours)
|
|
set t_Co=256
|
|
<
|
|
powerline configuration changes:
|
|
|
|
file type segment
|
|
>
|
|
{
|
|
"function": "vim_devicons.powerline.segments.webdevicons",
|
|
"priority": 10,
|
|
"draw_soft_divider": false,
|
|
"after": " "
|
|
}
|
|
<
|
|
file format segment
|
|
>
|
|
{
|
|
"function": "vim_devicons.powerline.segments.webdevicons_file_format",
|
|
"draw_soft_divider": false,
|
|
"exclude_modes": ["nc"],
|
|
"priority": 90
|
|
}
|
|
<
|
|
for full example see sample file [44]
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-flagship*
|
|
Flagship ~
|
|
|
|
Should work "out of the box", no particular configuration should be needed.
|
|
>
|
|
" Can be enabled or disabled
|
|
" adding to flagship's statusline
|
|
let g:webdevicons_enable_flagship_statusline = 1
|
|
<
|
|
===============================================================================
|
|
*devicons-detailed-features*
|
|
Detailed Features ~
|
|
|
|
- Adds filetype glyphs (icons) to various vim plugins, currently supports:
|
|
|
|
- NERDTree [1]
|
|
|
|
- Using the version hosted on vimscripts [45] in favor of GitHub will
|
|
lead to a outdated message, and icons will fail to show.
|
|
|
|
- vim-airline [2] (statusline and tabline)
|
|
|
|
- CtrlP [3] (All modes now supported)
|
|
|
|
- Using the version hosted on vimscripts [46] in favor of GitHub will
|
|
lead to a outdated message, and icons will fail to show.
|
|
|
|
- powerline [4] (statusline)
|
|
|
|
- see: powerline setup
|
|
|
|
- Denite [5]
|
|
|
|
- Currently supports 'file_rec', 'file_old', 'buffer', and
|
|
'directory_rec'
|
|
|
|
- unite [6]
|
|
|
|
- Currently supports 'file', 'file_rec', 'buffer', 'file_rec/async', and
|
|
'file_rec/neovim'
|
|
|
|
- lightline.vim [7] (statusline)
|
|
|
|
- see: lightline setup
|
|
|
|
- vim-startify [8]
|
|
|
|
- vimfiler [9]
|
|
|
|
- flagship [11]
|
|
|
|
- Support is **experimental** because the API may be changing [47]
|
|
|
|
- vim-workspace [10]
|
|
|
|
- Supports byte order marker (BOM)
|
|
|
|
- Customizable and extendable glyphs (icons) settings
|
|
|
|
- ability to override defaults and use your own characters or glyphs
|
|
|
|
- Supports a wide range of file type extensions by default:
|
|
|
|
- 'styl, sass, scss, htm, html, slim, ejs, css, less, md, rmd, json, js, jsx,
|
|
rb, php, py, pyc, pyd, pyo, coffee, mustache, hbs, conf, ini, yml, yaml,
|
|
bat, jpg, jpeg, bmp, png, gif, twig, cpp, c++, cxx, cc, cp, c, h, hpp, hxx,
|
|
hs, lhs, lua, java, sh, bash, zsh, ksh, csh, awk, ps1, fish, diff, db, clj,
|
|
cljs, edn, scala, go, dart, xul, sln, suo, pl, pm, t, rss, f#, fsscript,
|
|
fsx, fs, fsi, rs, rlib, d, erl, hrl, vim, ai, psd, psb, ts, jl, pp, vue,
|
|
swift, eex, ex, exs'
|
|
|
|
- Supports a few full filename matches, by default:
|
|
|
|
- 'gruntfile.coffee, gruntfile.js, gruntfile.ls, gulpfile.coffee,
|
|
gulpfile.js, gulpfile.ls, dropbox, .ds_store, .gitconfig, .gitignore,
|
|
.bashrc, .zshrc, .vimrc, .bashprofile, favicon.ico, license, node_modules,
|
|
react.jsx, procfile'
|
|
|
|
- Supports a few library pattern matches, by default:
|
|
|
|
- 'jquery, angular, backbone, requirejs, materialize, mootools, Vagrantfile'
|
|
|
|
- Works with patched fonts, especially Nerd Fonts [13]
|
|
|
|
===============================================================================
|
|
*devicons-extra-configuration*
|
|
Extra Configuration ~
|
|
|
|
- These options can be defined in your |vimrc| or 'gvimrc'
|
|
|
|
- Most options are enabled **'1'** by default but can be disabled with
|
|
**'0'**
|
|
|
|
- You _should_**not** need to configure anything, however, the following
|
|
options are provided for customizing or changing the defaults:
|
|
>
|
|
" loading the plugin
|
|
let g:webdevicons_enable = 1
|
|
<
|
|
|
|
>
|
|
" adding the flags to NERDTree
|
|
let g:webdevicons_enable_nerdtree = 1
|
|
<
|
|
|
|
>
|
|
" adding the custom source to unite
|
|
let g:webdevicons_enable_unite = 1
|
|
<
|
|
|
|
>
|
|
" adding the column to vimfiler
|
|
let g:webdevicons_enable_vimfiler = 1
|
|
<
|
|
|
|
>
|
|
" adding to vim-airline's tabline
|
|
let g:webdevicons_enable_airline_tabline = 1
|
|
<
|
|
|
|
>
|
|
" adding to vim-airline's statusline
|
|
let g:webdevicons_enable_airline_statusline = 1
|
|
<
|
|
|
|
>
|
|
" ctrlp glyphs
|
|
let g:webdevicons_enable_ctrlp = 1
|
|
<
|
|
|
|
>
|
|
" adding to vim-startify screen
|
|
let g:webdevicons_enable_startify = 1
|
|
<
|
|
|
|
>
|
|
" adding to flagship's statusline
|
|
let g:webdevicons_enable_flagship_statusline = 1
|
|
<
|
|
|
|
>
|
|
" turn on/off file node glyph decorations (not particularly useful)
|
|
let g:WebDevIconsUnicodeDecorateFileNodes = 1
|
|
<
|
|
|
|
>
|
|
" use double-width(1) or single-width(0) glyphs
|
|
" only manipulates padding, has no effect on terminal or set(guifont) font
|
|
let g:WebDevIconsUnicodeGlyphDoubleWidth = 1
|
|
<
|
|
|
|
>
|
|
" whether or not to show the nerdtree brackets around flags
|
|
let g:webdevicons_conceal_nerdtree_brackets = 1
|
|
<
|
|
|
|
>
|
|
" the amount of space to use after the glyph character (default ' ')
|
|
let g:WebDevIconsNerdTreeAfterGlyphPadding = ' '
|
|
<
|
|
|
|
>
|
|
" Force extra padding in NERDTree so that the filetype icons line up vertically
|
|
let g:WebDevIconsNerdTreeGitPluginForceVAlign = 1
|
|
<
|
|
|
|
>
|
|
" Adding the custom source to denite
|
|
let g:webdevicons_enable_denite = 1
|
|
|
|
|
|
|
|
" the amount of space to use after the glyph character in vim-airline
|
|
tabline(default '')
|
|
let g:WebDevIconsTabAirLineAfterGlyphPadding = ' '
|
|
|
|
|
|
|
|
" the amount of space to use before the glyph character in vim-airline
|
|
tabline(default ' ')
|
|
let g:WebDevIconsTabAirLineBeforeGlyphPadding = ' '
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-character-mappings*
|
|
Character Mappings ~
|
|
|
|
- 'ƛ' is used as an example below, substitute for the glyph you **actually**
|
|
want to use
|
|
>
|
|
" change the default character when no match found
|
|
let g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol = 'ƛ'
|
|
<
|
|
|
|
>
|
|
" set a byte character marker (BOM) utf-8 symbol when retrieving file encoding
|
|
" disabled by default with no value
|
|
let g:WebDevIconsUnicodeByteOrderMarkerDefaultSymbol = ''
|
|
<
|
|
|
|
>
|
|
" enable folder/directory glyph flag (disabled by default with 0)
|
|
let g:WebDevIconsUnicodeDecorateFolderNodes = 1
|
|
<
|
|
|
|
>
|
|
" enable open and close folder/directory glyph flags (disabled by default with 0)
|
|
let g:DevIconsEnableFoldersOpenClose = 1
|
|
<
|
|
|
|
>
|
|
" enable pattern matching glyphs on folder/directory (enabled by default with 1)
|
|
let g:DevIconsEnableFolderPatternMatching = 1
|
|
<
|
|
|
|
>
|
|
" enable file extension pattern matching glyphs on folder/directory (disabled by default with 0)
|
|
let g:DevIconsEnableFolderExtensionPatternMatching = 0
|
|
<
|
|
|
|
>
|
|
" disable showing the distribution for unix file encoding (enabled by default with 1)
|
|
let g:DevIconsEnableDistro = 0
|
|
<
|
|
|
|
>
|
|
" enable custom folder/directory glyph exact matching
|
|
" (enabled by default when g:WebDevIconsUnicodeDecorateFolderNodes is set to 1)
|
|
let WebDevIconsUnicodeDecorateFolderNodesExactMatches = 1
|
|
<
|
|
|
|
>
|
|
" change the default folder/directory glyph/icon
|
|
let g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol = 'ƛ'
|
|
<
|
|
|
|
>
|
|
" change the default open folder/directory glyph/icon (default is '')
|
|
let g:DevIconsDefaultFolderOpenSymbol = 'ƛ'
|
|
<
|
|
|
|
>
|
|
" change the default dictionary mappings for file extension matches
|
|
|
|
let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {} " needed
|
|
let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['js'] = 'ƛ'
|
|
<
|
|
|
|
>
|
|
" change the default dictionary mappings for exact file node matches
|
|
|
|
let g:WebDevIconsUnicodeDecorateFileNodesExactSymbols = {} " needed
|
|
let g:WebDevIconsUnicodeDecorateFileNodesExactSymbols['MyReallyCoolFile.okay'] = 'ƛ'
|
|
<
|
|
|
|
>
|
|
" add or override individual additional filetypes
|
|
|
|
let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {} " needed
|
|
let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['myext'] = 'ƛ'
|
|
<
|
|
|
|
>
|
|
" add or override pattern matches for filetypes
|
|
" these take precedence over the file extensions
|
|
|
|
let g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols = {} " needed
|
|
let g:WebDevIconsUnicodeDecorateFileNodesPatternSymbols['.*jquery.*\.js$'] = 'ƛ'
|
|
<
|
|
specify OS to decide an icon for unix fileformat (_not_ defined by default) -
|
|
this is useful for avoiding unnecessary 'system()' call. see #135 [48] for
|
|
further details.
|
|
>
|
|
let g:WebDevIconsOS = 'Darwin'
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-api*
|
|
API ~
|
|
>
|
|
" returns the font character that represents the icon
|
|
" parameters: a:1 (filename), a:2 (isDirectory)
|
|
" both parameters optional
|
|
" by default without parameters uses buffer name
|
|
WebDevIconsGetFileTypeSymbol(...)
|
|
|
|
" returns the font character that represents
|
|
" the file format as an icon (windows, linux, mac)
|
|
WebDevIconsGetFileFormatSymbol()
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-public-methods*
|
|
Public Methods ~
|
|
>
|
|
" Returns the current version of the plugin
|
|
webdevicons#version()
|
|
<
|
|
|
|
>
|
|
" Calls webdevicons#softRefresh()
|
|
" basically a backwards compatibility convenience
|
|
webdevicons#refresh()
|
|
<
|
|
|
|
>
|
|
" Does a 'hard' refresh of NERDTree
|
|
" resets vim-devicons syntax and closes and reopens NERDTree
|
|
webdevicons#hardRefresh()
|
|
<
|
|
|
|
>
|
|
" Does a 'soft' refresh of NERDTree
|
|
" resets vim-devicons syntax and toggles NERDTree to the same state
|
|
webdevicons#softRefresh()
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-api-examples*
|
|
API Examples ~
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-status-line*
|
|
Status line ~
|
|
|
|
Custom vim status line (not relying on vim-airline or lightline):
|
|
>
|
|
set statusline=%f\ %{WebDevIconsGetFileTypeSymbol()}\ %h%w%m%r\ %=%(%l,%c%V\ %Y\ %=\ %P%)
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-simple-function-call*
|
|
Simple function call ~
|
|
>
|
|
echo WebDevIconsGetFileFormatSymbol()
|
|
<
|
|
-------------------------------------------------------------------------------
|
|
*devicons-integration-with-other-plugins*
|
|
Integration with other plugins ~
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-vim-startify*
|
|
vim-startify ~
|
|
>
|
|
let entry_format = "' ['. index .']'. repeat(' ', (3 - strlen(index)))"
|
|
|
|
if exists('*WebDevIconsGetFileTypeSymbol') " support for vim-devicons
|
|
let entry_format .= ". WebDevIconsGetFileTypeSymbol(entry_path) .' '. entry_path"
|
|
else
|
|
let entry_format .= '. entry_path'
|
|
endif
|
|
<
|
|
===============================================================================
|
|
*devicons-faq*
|
|
FAQ ~
|
|
|
|
**Table of Contents:**
|
|
|
|
**It's not working at all:**
|
|
|
|
- **Why isn't it working? How come I don't see any icons?**
|
|
|
|
**Syntax or color highlighting:**
|
|
|
|
- **How did you get color matching based on file type in NERDtree?**
|
|
- **How did you get color matching on just the glyph/icon in NERDtree?**
|
|
|
|
**Re-sourcing |vimrc|:**
|
|
|
|
- **How do I solve issues after re-sourcing my |vimrc|?**
|
|
|
|
**Weird artifacts after/on the glyphs:**
|
|
|
|
- **Why do I have artifacts after (or instead) of icons?**
|
|
- **Square brackets around icons?**
|
|
|
|
**Fonts:**
|
|
|
|
- **Do I have to use a patched font such as Nerd Fonts?**
|
|
|
|
**Why does this exist? How did this start?**
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-why-isnt-it-working-how-come-i-dont-see-any-icons*
|
|
Why isn't it working? How come I don't see any icons? ~
|
|
|
|
- Are you using the patched font provided in the separate repo (Nerd Fonts
|
|
[13]) or are you patching your own?
|
|
|
|
- _NOTE:_ if running vim and no font set it will default to the terminal font
|
|
that is set
|
|
|
|
- check what the vim/gvim font is set to, from ex mode:
|
|
|
|
'vim :set guifont?'
|
|
|
|
- check if the plugin is loaded (should give '1'), from ex mode:
|
|
|
|
'vim :echo loaded_webdevicons'
|
|
|
|
- check if the plugin is enabled (should give '1'), from ex mode:
|
|
|
|
'vim :echo g:webdevicons_enable'
|
|
|
|
- check if the plugin is enabled for NERDTree (should give '1'), from ex
|
|
mode:
|
|
|
|
- this should _NOT_ need to be set under normal circumstances
|
|
|
|
'vim :echo g:webdevicons_enable_nerdtree'
|
|
|
|
- check if you are able to see the characters, from ex mode:
|
|
|
|
'vim :echo g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol'
|
|
|
|
- if all this looks correct you may try this to see if any files show flags
|
|
|
|
- last resort, see if you can even set the default symbol and have it
|
|
display anywhere (NERDTree, vim-airline's statusline, vim-airlines's
|
|
tabline), from ex mode:
|
|
|
|
"vim :let g:WebDevIconsUnicodeDecorateFileNodesDefaultSymbol='x'"
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-how-did-you-get-color-matching-based-on-file-type-in-nerdtree*
|
|
How did you get color matching based on file type in NERDtree? ~
|
|
|
|
- You can either use this additional plugin: vim-nerdtree-syntax-highlight
|
|
[49] created by @tiagofumo [50]
|
|
|
|
- Or you can use my current settings from:
|
|
https://github.com/scrooloose/nerdtree/issues/201#issuecomment-9954740
|
|
|
|
```vim " NERDTress File highlighting function!
|
|
NERDTreeHighlightFile(extension, fg, bg, guifg, guibg) exec 'autocmd
|
|
FileType nerdtree highlight ' . a:extension .' ctermbg='. a:bg .'
|
|
ctermfg='. a:fg .' guibg='. a:guibg .' guifg='. a:guifg exec 'autocmd
|
|
FileType nerdtree syn match ' . a:extension .' #^\s+.*'. a:extension .'$#'
|
|
endfunction
|
|
|
|
call NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#151515')
|
|
call NERDTreeHighlightFile('ini', 'yellow', 'none', 'yellow', '#151515')
|
|
call NERDTreeHighlightFile('md', 'blue', 'none', '#3366FF', '#151515') call
|
|
NERDTreeHighlightFile('yml', 'yellow', 'none', 'yellow', '#151515') call
|
|
NERDTreeHighlightFile('config', 'yellow', 'none', 'yellow', '#151515') call
|
|
NERDTreeHighlightFile('conf', 'yellow', 'none', 'yellow', '#151515') call
|
|
NERDTreeHighlightFile('json', 'yellow', 'none', 'yellow', '#151515') call
|
|
NERDTreeHighlightFile('html', 'yellow', 'none', 'yellow', '#151515') call
|
|
NERDTreeHighlightFile('styl', 'cyan', 'none', 'cyan', '#151515') call
|
|
NERDTreeHighlightFile('css', 'cyan', 'none', 'cyan', '#151515') call
|
|
NERDTreeHighlightFile('coffee', 'Red', 'none', 'red', '#151515') call
|
|
NERDTreeHighlightFile('js', 'Red', 'none', '#ffa500', '#151515') call
|
|
NERDTreeHighlightFile('php', 'Magenta', 'none', '#ff00ff', '#151515') call
|
|
NERDTreeHighlightFile('ds_store', 'Gray', 'none', '#686868', '#151515')
|
|
call NERDTreeHighlightFile('gitconfig', 'Gray', 'none', '#686868',
|
|
'#151515') call NERDTreeHighlightFile('gitignore', 'Gray', 'none',
|
|
'#686868', '#151515') call NERDTreeHighlightFile('bashrc', 'Gray', 'none',
|
|
'#686868', '#151515') call NERDTreeHighlightFile('bashprofile', 'Gray',
|
|
'none', '#686868', '#151515') 'Note: If the colors still are not
|
|
highlighting, try invoking such as:' autocmd VimEnter * call
|
|
NERDTreeHighlightFile('jade', 'green', 'none', 'green', '#151515') ``` per:
|
|
https://github.com/ryanoasis/vim-devicons/issues/49#issuecomment-101753558
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-how-did-you-get-color-matching-on-just-glyph-icon-in-nerdtree*
|
|
How did you get color matching on just the glyph/icon in NERDtree? ~
|
|
|
|
- You can add something like this to your |vimrc|
|
|
|
|
```vim " NERDTress File highlighting only the glyph/icon " test highlight
|
|
just the glyph (icons) in nerdtree: autocmd filetype nerdtree highlight
|
|
haskell_icon ctermbg=none ctermfg=Red guifg=#ffa500 autocmd filetype
|
|
nerdtree highlight html_icon ctermbg=none ctermfg=Red guifg=#ffa500 autocmd
|
|
filetype nerdtree highlight go_icon ctermbg=none ctermfg=Red guifg=#ffa500
|
|
|
|
autocmd filetype nerdtree syn match haskell_icon ##
|
|
containedin=NERDTreeFile " if you are using another syn highlight for a
|
|
given line (e.g. " NERDTreeHighlightFile) need to give that name in the
|
|
'containedin' for this " other highlight to work with it autocmd filetype
|
|
nerdtree syn match html_icon ## containedin=NERDTreeFile,html autocmd
|
|
filetype nerdtree syn match go_icon ## containedin=NERDTreeFile ```
|
|
|
|
-------------------------------------------------------------------------------
|
|
How do I solve issues after re-sourcing my *vimrc*?
|
|
|
|
- Try adding this to the bottom of your |vimrc|
|
|
|
|
'vim if exists("g:loaded_webdevicons") call webdevicons#refresh() endif'
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-why-do-i-have-artifacts-after-of-icons*
|
|
Why do I have artifacts after (or instead) of icons? ~
|
|
|
|
- Dots after icons in NERDTree (on GVim), try:
|
|
|
|
'vim autocmd FileType nerdtree setlocal nolist'
|
|
|
|
source: Issue #110 [51]
|
|
|
|
- Newly created files in NERDTree are slow to show the glyph (icon)
|
|
- check your current setting of ':updatetime?'
|
|
- try setting 'updatetime' in your |vimrc| to a lower value like '250', for
|
|
more info see: Issue #153 [52]
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-square-brackets-around-icons*
|
|
Square brackets around icons ~
|
|
|
|
- By default if your Vim supports conceal you should not see these, debug
|
|
steps:
|
|
|
|
- Check if the plugin feature is set (should be '1'):
|
|
|
|
'vim echo g:webdevicons_conceal_nerdtree_brackets'
|
|
|
|
- Check that your vim was compiled with the 'conceal' feature (should be
|
|
'+conceal'):
|
|
|
|
```shell
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-from-terminal*
|
|
from terminal ~
|
|
|
|
vim --version | grep conceal ```
|
|
|
|
- Check the 'conceallevel' (should be '3'):
|
|
|
|
'vim set conceallevel?'
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-do-i-have-to-use-patched-font-such-as-nerd-fonts*
|
|
Do I have to use a patched font such as Nerd Fonts? ~
|
|
|
|
VimDevIcons was desired to work with Nerd Fonts [13], however you do _not_ have
|
|
to use a patched font or even Nerd Fonts specified glyphs. You have 2 main
|
|
options:
|
|
|
|
fontconfig fallback
|
|
|
|
1. Install the NERD Font symbol fonts:
|
|
|
|
2. Symbols Nerd Font:style=1000-em [53]
|
|
|
|
3. Symbols Nerd Font:style=2048-em [54]
|
|
|
|
4. Install 10-nerd-font-symbols.conf [55] for Fontconfig
|
|
|
|
5. for additional information see: Issue #124 [56] and [Nerd Fonts
|
|
'fontconfig']
|
|
|
|
Use your own glyph codepoints
|
|
|
|
- specify your own glyphs and/or use your own font (see: Character Mappings
|
|
[57])
|
|
|
|
-------------------------------------------------------------------------------
|
|
*devicons-rationale-why-does-this-exist-how-did-this-start*
|
|
Rationale: Why does this exist? How did this start? ~
|
|
|
|
After seeing the awesome theme for Atom (seti-ui) and the awesome plugins work
|
|
done for NERDTree and vim-airline and wanting something like this for Vim I
|
|
decided to create my first plugin.
|
|
|
|
===============================================================================
|
|
*devicons-references*
|
|
References ~
|
|
|
|
[1] https://github.com/scrooloose/nerdtree
|
|
[2] https://github.com/vim-airline/vim-airline
|
|
[3] https://github.com/ctrlpvim/ctrlp.vim
|
|
[4] https://github.com/powerline/powerline
|
|
[5] https://github.com/Shougo/denite.nvim
|
|
[6] https://github.com/Shougo/unite.vim
|
|
[7] https://github.com/itchyny/lightline.vim
|
|
[8] https://github.com/mhinz/vim-startify
|
|
[9] https://github.com/Shougo/vimfiler.vim
|
|
[10] https://github.com/bagrat/vim-workspace
|
|
[11] https://github.com/tpope/vim-flagship
|
|
[12] https://github.com/ryanoasis/vim-devicons/wiki/screenshots
|
|
[13] https://github.com/ryanoasis/nerd-fonts
|
|
[14] https://github.com/ryanoasis/vim-devicons/wiki/Detailed-Features
|
|
[15] https://github.com/ryanoasis/vim-devicons/wiki/Extra-Configuration
|
|
[16] https://github.com/ryanoasis/nerd-fonts#font-installation
|
|
[17] https://github.com/ryanoasis/nerd-fonts#font-patcher
|
|
[18] https://github.com/junegunn/vim-plug
|
|
[19] https://github.com/ryanoasis/vim-devicons/wiki/Installation
|
|
[20] DEVELOPER.md
|
|
[21] https://github.com/ryanoasis/vim-devicons/wiki/FAQ-&-Troubleshooting
|
|
[22] CODE_OF_CONDUCT.md
|
|
[23] CONTRIBUTING.md
|
|
[24] https://github.com/ryanoasis/vim-devicons
|
|
[25] http://www.vim.org/scripts/script.php?script_id=5114
|
|
[26] https://github.com/Xuyuanp/nerdtree-git-plugin
|
|
[27] https://github.com/Xuyuanp
|
|
[28] https://atom.io/themes/seti-ui
|
|
[29] https://github.com/jesseweed
|
|
[30] http://vorillaz.github.io/devicons
|
|
[31] https://github.com/vorillaz
|
|
[32] https://github.com/benatespina/development.svg.icons
|
|
[33] https://github.com/benatespina
|
|
[34] http://learnvimscriptthehardway.stevelosh.com/
|
|
[35] http://stevelosh.com/
|
|
[36] https://github.com/ryanoasis/vim-devicons/graphs/contributors
|
|
[37] LICENSE
|
|
[38] https://github.com/tpope/vim-pathogen
|
|
[39] https://github.com/Shougo/neobundle.vim
|
|
[40] https://github.com/gmarik/vundle
|
|
[41] https://github.com/ryanoasis/vim-devicons/wiki/samples/v0.10.x/.vimrc-windows-1
|
|
[42] https://github.com/ryanoasis/vim-devicons/wiki/samples/v0.10.x/.vimrc-linux-1
|
|
[43] https://github.com/Lokaltog/vim-powerline
|
|
[44] https://github.com/ryanoasis/vim-devicons/wiki/samples/v0.10.x/powerline/themes/vim/default.json
|
|
[45] http://www.vim.org/scripts/script.php?script_id=1658
|
|
[46] http://www.vim.org/scripts/script.php?script_id=3736
|
|
[47] https://github.com/tpope/vim-flagship/issues/6#issuecomment-116121220
|
|
[48] https://github.com/ryanoasis/vim-devicons/pull/135
|
|
[49] https://github.com/tiagofumo/vim-nerdtree-syntax-highlight
|
|
[50] https://github.com/tiagofumo
|
|
[51] https://github.com/ryanoasis/vim-devicons/issues/110#issue-103801335
|
|
[52] https://github.com/ryanoasis/vim-devicons/issues/153
|
|
[53] https://github.com/ryanoasis/nerd-fonts/blob/master/src/glyphs/Symbols-1000-em%20Nerd%20Font%20Complete.ttf
|
|
[54] https://github.com/ryanoasis/nerd-fonts/blob/master/src/glyphs/Symbols-2048-em%20Nerd%20Font%20Complete.ttf
|
|
[55] https://github.com/ryanoasis/nerd-fonts/blob/master/10-nerd-font-symbols.conf
|
|
[56] https://github.com/ryanoasis/vim-devicons/issues/124
|
|
[57] https://github.com/ryanoasis/vim-devicons#character-mappings
|
|
|
|
vim: ft=help
|