我正在从 Windows Terminal Powershell 运行 Neovim (nvim),并且最近通过 vim-plug 安装了 vim-devicons。我注意到图标没有显示。在我的 Windows 终端配置中,我使用 Cascadia Code PL 所需的字体来显示 Oh-my-posh 和 posh-my-git,但是即使有明显有能力的字体 neovim 也不会显示它。但是,如果我打开 nvim-qt 它确实可以工作(也许它不包含自己的终端模拟器)。 有没有办法调整 neovim 中的配置以在 Windows 终端中正确显示 vim-devicons?
这是我的 profile.json:
{
// Make changes here to the powershell.exe profile
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"commandline": "powershell.exe",
"fontFace": "Cascadia Code PL",
"fontSize": 9,
"useAcrylic": true,
"acrylicOpacity": 0.7,
"backgroundImage": "ms-appdata:///roaming/midnight_smuggler_1280x720.jpg",
"backgroundImageOpacity": 0.4,
"colorScheme": "cyberpunk",
"hidden": false
},
还有我本地的 nvim 配置:
"Plugin Section
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree'
Plug 'ryanoasis/vim-devicons'
call plug#end()
"Config
set encoding=UTF-8
"set guifont=
let g:NERDTreeShowHidden = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeIgnore = []
let g:NERDTreeStatusline = ''
" Automaticaly close nvim if NERDTree is only thing left open
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
" Toggle
nnoremap <silent> <C-b> :NERDTreeToggle<CR>
По умолчанию Windows Terminal использует шрифт Cascadia Code, который не поддерживает иконки, вот ваши дальнейшие шаги:
我刚刚发现我使用的是 Cascadia Code PL,它只有足够的字形用于 Oh-my-posh,只是配置了 Delugia Nerd 字体和 Windows 终端显示图标。
这是许多用户在首次安装 vim-airline 或 NERDTree 插件后非常常见的问题。因此,您必须执行以下几个步骤才能看到 vim-airline 以及 NERDTree 插件中的图标。
步骤1
使用任何插件管理器安装 vim-devicons https://github.com/ryanoasis/vim-devicons(我更喜欢 vim-plug。https://github.com/junegunn/vim-plug)并且将其放在
call plug#end()
命令之前,或者尝试在所有其他插件的末尾加载此插件(如果您使用任何其他方法来安装插件)并在下一行粘贴 set encoding=UTF-8
示例:
call plug#begin()
.
.
.
Plug 'https://github.com/ryanoasis/vim-devicons'
set encoding=UTF-8
call plug#end()
第2步
将以下代码粘贴到上一个循环之后
let g:NERDTreeDirArrowExpandable="+"
let g:NERDTreeDirArrowCollapsible="~"
" air-line
let g:airline_powerline_fonts = 1
if !exists('g:airline_symbols')
let g:airline_symbols = {}
endif
" unicode symbols
let g:airline_left_sep = '»'
let g:airline_left_sep = '▶'
let g:airline_right_sep = '«'
let g:airline_right_sep = '◀'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = ''
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.whitespace = 'Ξ'
" airline symbols
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols.branch = ''
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ''
let g:WebDevIconsUnicodeDecorateFolderNodes = 1
let g:WebDevIconsUnicodeDecorateFolderNodeDefaultSymbol = ''
let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {}
let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['nerdtree'] = ''
第3步
从 https://www.nerdfonts.com/font-downloads 下载任何字体。我更喜欢 DejaVuSansMono Nerd 字体。
第4步
unzip DejaVuSansMono.zip
并做 mv ~/.fonts
和 cd ~/.fonts
步骤5
最后你必须运行
fc-cache -fv
来手动重建字体缓存。现在重新打开vim或nvim,现在你会发现图标正确可见。
请为我的答案投票。