Changelog for Nord Vim — An arctic, north-bluish clean and elegant Vim color theme.
Support for vim-pandoc/vim-pandoc-syntax
— #220 (⊶ 8d8b9bf8) by @tpoisot and @BirgerNi
↠ To improve syntax highlighting for Pandoc, support for the vim-pandoc/vim-pandoc-syntax plugin has been implemented. Most groups are linked to existing Markdown groups to ensure a consistent style across languages and different plugins.
Support for LSP code lenses — #266 (⊶ 02ddfadb) by @jan-xyz
↠ Before LSP code lenses were highlighted with the default color which has been changed to make it less visually intrusive, like other UI related elements, e.g. messages of linters.
Before
After
Prevent aggressive error highlighting — #269 ⇄ #270 (⊶ e3e8a75c) by @jan-xyz
↠ The TSError
group is used to highlight syntax/parser errors which caused an aggressive styling where the background color of many syntax elements was rendered with nord11
during typing. This is a known problem and was fixed by many other themes by removing the group again. One of the core maintainers of nvim-treesitter
provided a solution by remapping groups and also mentioned that the group is styled by the nvim-treesitter
plugin but the active theme.
Syntax errors can still be highlighted through linters and parsers like Neovim's LSP can still be used instead to highlight errors with the correct style, e.g. only change the foreground color of a single word.
Support for nvim-treesitter/nvim-treesitter
— #235 ⇄ #253 (⊶ b3e712a9) by @s-u-d-o-e-r and @mrswats
↠ Neovim version 0.5 is a long-time awaited update that introduces features like support for tree-sitter via nvim-treesitter and LSP via nvim-lspconfig.
Even though Neovim divides more and more from Vim through specific features like first-class Lua support with custom APIs, the highlighting for tree-sitter is achieved through “normal“ syntax highlighting groups. Most of the groups are already linked by the nvim-treesitter
plugin by default so only a few groups have been adjusted for now to fit the Nord style.
Public API function NordPalette
to get Nord colors — #224 (⊶ 5867535c) by @jandamm
↠ Implemented a new NordPalette
pubic API function that returns all Nord colors as dictionary. This allows to use the colors in other Vim scripts without the need to copy & paste the colors from the documentations or the Nord Vim theme sources.
Support for the php.vim plugin — #218, #262 ⇄ #263 (⊶ b3c46c87, 07452c71) by @pirey
↠ In arcticicestudio/nord-vim#218 new highlighting groups for the bundled PHP syntax were added to improve the highlighting of classes, function and methods and the overall syntax token detection, but they are actually defined by the php.vim plugin. Therefore the added highlighting calls have been moved to a plugin section.
Additionally, the phpClassExtends
and phpClassImplements
groups have been added to improve the highlighting for classes that implement or extended interfaces/classes. The phpUseClass
has also been added to improve the highlighting for imports.
To improve the highlighting with the bundled PHP syntax, the following options can be set:
let php_asp_tags = 1
let php_baselib = 1
let php_htmlInStrings = 1
let php_parent_error_close = 1
let php_parent_error_open = 1
Before
After
Conceal
highlighting group support — #149, #207, #211, #256 ⇄ #261 (⊶ f3f28b93)
↠ The Conceal
group is was not supported which could resulted in rendering problems for (Unicode) characters that require special encoding like the ones from the Greek alphabet and mathematical expressions that are often used in LaTeX or Pandoc documents. These characters were highlighted with the default background color which made them kind of unreadable with the theme foreground color.
See :help conceal
and :help concealcursor
for more details about concealing in Vim.
To fix the problem, the Conceal
group has been added with its background color set to NONE
for GUI and terminal mode to either use the terminal default background color or let loaded scripts apply custom styles based on the current runtime context.
The problem has been reported in #149, #207 and #211 with LaTeX and Pandoc being used by the reporters. PR #220 adds support for vim-pandoc/vim-pandoc-syntax specific highlighting groups and can be merged after adding basic support for Conceal
.
To get the correct rendering for such elements the following configurations must be set:
let g:pandoc#syntax#conceal#use = 1
set conceallevel=2
Before
After
Updated highlights for Neovim LSP diagnostics — #229, #248 (⊶ a3af928a) by @gbrlsnchs and @thallium
↠ To ensure compatibility with the latest versions of Neovim LSP the highlighting groups for diagnostics have been adapted to the changes of neovim/neovim#12655.
See :help lsp-highlight-diagnostics
for more details.
Note that LSP will be available as of Neovim 0.5 which is (at the time of this commit) still in development and only available as nightly build. Also see great articles from Nord Vim contributors like “Neovim (0.5) Is Overpowering“ for more information about Neovim 0.5 features, including LSP.
Thanks to @clason, @crispgm and @ojroques for the review support!
Support for the vim-indent-guides plugin — #186 ⇄ #226 (⊶ ea7ff9c3) by @mitinarseny
↠ Added support for the vim-indent-guides plugin. The even and odd highlighting blocks using nord1
and nord2
(nord3
in terminal mode) to provide a subtle and non-disturbing style.
Note that the custom theme colors are only applied when the indent_guides_auto_colors
variable has been set to 0
:
let g:indent_guides_auto_colors = 0
Before
After
coc.vim error and warning highlighting — #213 (⊶ 8a9754ce) by @butterywombat
↠ Added the coc.nvim highlighting groups for errors and warnings using their respective foreground colors and the undercurl
font style.
Typo in group Pmenu
group names — #252 (⊶ e5a54c7f) by @kunzaatko
↠ Fixed two typos in Pmenu
group names:
PMenuSel
->PmenuSel
PMenu
->Pmenu
This mismatch was never really noticed because most of the time users rely on plugins like coc.vim or vim-clap which come with custom highlighting groups and UI libraries.
Extended support for TypeScript and TSX — #208 (⊶ 1bd44ade) by @iamdidev ↠ Added extended support for TypeScript and TSX through the yats.vim plugin. This provides, among many other good changes, better highlighting for syntax elements like decorators, more granular separation of different language elements within a single code line as well as highlighting for…
…interfaces with bold font style, typing characters and types.
…global methods like setTimeout
with italic font style.
…regular expressions with nord13
instead of the normal color for quoted strings.
…global elements like Error
, JSON
and console
.
…brackets of types as structural elements.
…TSX/JSX and HTML with a consistent appearance.
Support for vim-clap — #178 (⊶ 7a52f66c) by @meck and @ikalnytskyi ↠ Added basic support for vim-clap, a modern and performant generic finder and dispatcher for Vim and NeoVim.
Basic support for nvim-lsp (Language Server Protocol) — #198 (⊶ 0ccf70b6) by @alexanderjeurissen ↠ Added basic support for nvim-lsp, a collection of common configurations for the NVim language server protocol client.
Consistent error highlighting between GUI and terminal mode — #202 (⊶ 974a9190) by @xulongwu4
↠ The highlighting of errors in GUI and true color terminal mode now also uses nord4
as foreground color of instead of nord0
.
Before
After
Improved highlighting for “More“ separator — #202 (⊶ 974a9190) by @xulongwu4
↠ The highlighting of the More separator is now highlighted with the nord8
accent color.
Before
After
Transparent line number and cursor line background by default — #204 (⊶ 6323f662) by @xulongwu4
↠ Before the background color of the LineNr
and CursorLineNr
highlighting groups were set to nord0
which was fine in most cases, but conflicted with plugins like Yggdroot/LeaderF that renders line numbers in a popup windows with a different background color.
Before
After
Support uniform status line background configuration for vim-airline and lightline.vim themes — #168 ⇄ #169 (⊶ 73b3d340) by @jmurinello ↠ Added support for the uniform status line theme configuration, introduced in version 0.7.0 through arcticicestudio/nord-vim#58, for the bundled vim-airline and lightline.vim themes.
lightline.vim
Before
After
vim-airline
Before
After
Basic support for coc.vim (Conquer of Completion) — #164 (⊶ a7797269) by @hennessey ↠ Added basic support for coc.nvim, a Intellisense engine for Vim 8 & NeoVim with full language server protocol support.
Basic support for vim-startify — #159 ⇄ #176 (⊶ 38ab4a9c) ↠ Added basic support for vim-startify with custom highlight groups.
No underlined style for gutter line numbers — #174 ⇄ #185 (⊶ 0d352c4b) by @nixtrace and @alexandremjacques
↠ Vim version 8.1.2029 added the underline
attribute for the CursorLineNr
group to cterm
based on vim/vim#4933.
This change resulted in gutter line numbers being underlined which has now been reverted back to Nord's style by explicitly setting the attribute for the group to NONE
.
Before
After
Fix missing whitespace — #165 (⊶ 81d80e4a) by @vasilescur ↠ Fixed a missing whitespace in the README project description.
Nord Docs Transition — #158, #144 ⇄ #160 (⊶ 7be26147) ↠ Transferred all documentations, assets and from „Nord Vim“ to Nord Docs Please see the corresponding issue in the Nord Docs repository to get an overview of what has changed for Nord Vim and what has been done to migrate to Nord Docs.
Theme configuration for bold font style rendering — #143 ⇄ #161 (⊶ 18a4e350) requested by @tobydeh
↠ Added a new nord_bold
theme configuration to allow to explicitly toggle bold font rendering styles.
It is enabled by default when running for both in GUI and terminal mode since most terminals and shells are capable to handle bold fonts.
Active match for increment search — #139 ⇄ #140 (⊶ de24841a) by @aborzunov
↠ The currently active match during increment searches (IncSearch
) is now highlighted differently (nord10
as background and nord6
as foreground) than inactive matches for a better visual distinction.
Basic support for Asciidoc syntax highlighting — #131 ⇄ #152 (⊶ 6e6025b9) by @tidux ↠ Added basic syntax highlighting support for Asciidoc that comes bundled with Vim 8.
Basic syntax highlighting support for Rust — #138 ⇄ #154 (⊶ b0ffc6b5) by @TerminalWitchcraft ↠ Added basic syntax highlighting support for Rust.
Traits and enums are colorized with nord7
and with bold font to make them visually stand out more.
Also attributes and derives are colored with nord10
.
Macros are colorized with nord8
and bold font to make them visually different from "normal" functions.
Escape sequences are colored with nord13
.
Import statements and paths are correctly colored with keyword and type colors.
Haskell Syntax Plugin Support — #104 ⇄ #150 (⊶ b0ffc6b5) by @vabatta
↠ Added support for Haskell syntax through the neovimhaskell/haskell-vim plugin.
This includes better coloring for types/classes using nord7
instead of highlighting them like keywords (nord9
) and pre-processor and pragma elements are now colorized correctly with nord10
.
Theme config for bolder vertical split line — #132 ⇄ #153 (⊶ 9059d7d8) by @huyvohcmc
↠ Previously the VertSplit
(:help VertSplit
) key used nord1
as background color by default making the line appear to be very lumpy. This has now been changed to use nord0
as background instead to visually merge with the background so only the separator characters are a visual indicator for the split line which makes it look more lightweight and declutters the overall appearance.
With base editor background (default)
With enabled bold nord1
background
To allow user who liked the previous implementation to keep the style a new nord_bold_vertical_split_line
theme config was also added that can be assigned to 1
to achieve the legacy design.
let g:nord_bold_vertical_split_line = 1
The README includes information and hints how to change the separator character by customizing Vim's fillchars
(:help fillchars
) variable.
:terminal
status line in airline — #134 (⊶ be815f09) by @meck
↠ Added support for Vim's new :terminal
mode in airline.
Before: No :terminal
support (before)
After: Support for airline's new _term
theme keys
Better generator expressions in CMake — #137 ⇄ #151 (⊶ d2774cbb) by @markand
↠ CMake generator expressions are now highlighted using nord10
as foreground instead of nord13
as background and nord0
as foreground.
airline warnings and errors — #130 (⊶ e85dbe75) by @axelitus ↠ Added support for error and warning elements of airline.
ALE error and warning support — #135 (⊶ 9d82b7a1) by @meck ↠ Added support highlighting and underlines for ALE errors and warnings to also align the style with gutter signs.
Vim 8 terminal highlighting — #125 ⇄ #126 (⊶ 83f8c260) by @cg433n
↠ Added support for the Vim's built-in terminal (:terminal
) that comes with version 8.0.0 and higher.
Comment Color Brightness — #145 ⇄ #146 (⊶ 9e0249ca)
↠ Implemented the increase of the comment color (nord3
) brightness by 10% from a lightness level of ~35% to ~45%.
➜ Please see arcticicestudio/nord#94 for all details about this design change decision!
⚠ NOTE: This change also deprecates the comment contrast configuration that will be removed in Nord Vim version 1.0.0!
The default comment color has been adjusted so the configuration is not required anymore for users to increase the brightness on their own.
To notify users about this change a deprecation warning will be shown when the g:nord_comment_brightness
configuration variable has been set and initialized through the user's configuration.
Improved compatibility of airline with tmuxline.vim plugin — #117 ⇄ #128 (⊶ 3150628f)
↠ The Nord airline.vim UI plugin theme now includes better support for the tmuxline.vim plugin. Previously text shown in the main segment of the tmuxline, generated via the :Tmuxline airline
command, caused a bad colour: NONE
error or has been colorized using nord0
which resulted in unreadable text due to a nord3
background.
This has been fixed by using nord5
as foreground color. …#11 was used as implementation reference since it fixed the same incompatibility for the lightline.vim plugin.
❯ Added support for the YAML plugin stephpy/vim-yaml which improves the highlighting for keys to match the JSON syntax style. (PR #120, @mdzhang, b1478b07)
Before
After
❯ Added basic syntax highlighting support for vimwiki. (PR #98 in PR #114, @smesko85, 9e7addbc)
❯ Added a new configuration to allow users to enable background for the line number of the current line. It can be enabled by setting the g:nord_cursor_line_number_background
variable to 1
. (PR #100, @andrepolischuk, 035e36de)
let g:nord_cursor_line_number_background = 1
❯ Added a new configuration to allow users to globally toggle underlines for cases where the terminal emulator might not be capable to handle underlines in terminal mode. It can be enabled by setting the g:nord_underline
variable to 1
. (#106 in PR #127 (supersedes #109), @dylnmc @markand , 01cfd1be)
❯ Added support for the status line of the :terminal
window mode for Vim or Neovim. (PR #108 (supersedes #103), @dylnmc, 922504fb)
❯ Added highlighting support for the navigation marks in the sign column of the kshenoy/vim-signature plugin. (PR #122, @kooparse, 1df39453)
❯ Added highlighting for the JavaScript keyword this
. (PR #119, @kristijanhusak, 4fe2d43e)
Before
After
❯ The cursor is now correctly shown and visible when leaving a terminal window from within Vim or Neovim by adding the TermCursorNC
group. (PR #101, @meck, 2fac9fa0)
❯ The „inline marker“ in unified diffs is now colorized differently than the background of the changed line to make the changes better and faster recognizable. This applies for both the uniform diff background mode and normal diff mode. (PR #121, @ironhouzi, 65c559ee)
Before/After comparison of default diff mode
Before/After comparison of uniform diff mode
❯ The current line number's color is now highlighted correctly in terminal mode. Previously it was only highlighted when running in GUI mode or when termguicolors
has been set. (#116 in 50ec737b (PR #100), @huyvohcmc @dylnmc)
Before
After
❯ Added support for vim-signify. (PR #81, @dabio, edcdd0e4)
❯ The color of links in :help
was the same as normal text making it impossible to to distinguish between both. This has been improved by using nord8
including the help bars when enabled with :set conceallevel=2
. (#85 in PR #93, @delphinus, e9974fe6)
❯ The lightline screenshots in the documentation have been made using the lightline's advanced configurations. This confused users when the lighline does not equal the one seen on the screenshot due to the default lightline configuration. This has now been clarified including a additional screenshot showing the appearance of the lightline when using the default configuration. (#74 in PR #94, @lokesh-krishna, 3c14c961)
❯ The background color for matching parens is now assigned to the right color nord3
instead of nord0
in GUI mode. (#95 in PR #96, @dylnmc, 8bc1be01)
❯ Added a new configuration to allow users to increase the comment brightness by 1 - 20 percent. It can be enabled by setting the g:nord_comment_brightness variable
to a number between 1
and 20
. (#48 in PR #56, @drzel, e18ab4e8)
This option should only be enabled if the terminal supports 24bit true color (16 million colors) and requires the termguicolors
option to be set is in ~/.vimrc
or via :set termguicolors
!
To adhere to the Nord design guidelines this option uses nord3
by default.
This is a reference table if users like to use the same increased contrast values as provided by the Nord Atom Syntax accessibility custom comment contrast theme setting which are calculated using the LESSCSS lighten
function.
Increased by | Calculated value |
---|---|
1% | #4e586d |
2% | #505b70 |
3% | #525d73 |
4% | #556076 |
5% | #576279 |
6% | #59647c |
7% | #5b677f |
8% | #5d6982 |
9% | #5f6c85 |
10% | #616e88 |
11% | #63718b |
12% | #66738e |
13% | #687591 |
14% | #6a7894 |
15% | #6d7a96 |
16% | #6f7d98 |
17% | #72809a |
18% | #75829c |
19% | #78859e |
20% | #7b88a1 |
More information about true color and the support in various terminals can be found in this gist.
❯ Added a new configuration for a uniform diff background color. (#60 in PR #61 #62 #65, @dylnmc @aidanharris @berkin, 958322d0)
Setting g:nord_uniform_diff_background
to 1
enables the uniform diff background using nord1
:
❯ Added a new configuration to use uniform activate- and inactive status line backgrounds. (#37 in PR #58, @dylnmc @DenniJensen, 93056802)
❯ Added a new configuration to explicitly enable italic text formatting. (#88 in PR #89, @lokesh-krishna @dylnmc, dbfc55ff)
Please note that this option should only be enabled if the used terminal supports italics!
With enabled option for italic comments
❯ Added support for NeoVim UI terminal colors. (#63, @meck, af01167b)
❯ Added support for the plasticboy/vim-markdown syntax plugin to match the style of the built-in markdown syntax styles. (#45 in PR #57, @VVVFO, 09921268)
❯ Added support for the PlugClean
command of the junegunn/vim-plug plugin which used the Ignore
group by default for deleted directory listings resulting in unreadable text when cursorline
has been set. (#43 in PR #59, @dylnmc, e532b5d6)
❯ Added basic support for tpope/vim-fugitive. (#76 in PR #77, @anhari, fa09c3b1)
Filenames are now highlighted when using the :Gstatus
command.
❯ Added highlight support for legacy diff groups diffAdded
and diffRemoved
of the git.vim
and diff.vim
syntx definitions. (#66 in PR #67, @brandoniffert, 99e59e67)
These groups are not in the official vim documentation but are still used by the syntax for example when run with git commit --verbose
.
❯ Added highlighting support for Markdown italic and bold delimiter. (#90 in PR #92, 97c8aa24)
❯ Added missing Markdown italic and bold groups. (#84 in PR #91, @lokesh-krishna @dylnmc, 63b46125)
❯ Improved the highlighting for matching parens. (#75 and #71 in PR #78, @vincentzhezhang @cryptomaniac512 @dylnmc, 8eb7b2a6)
The background color intensity under the cursor was too bright and the cursor no more visible causing the user to be distracted to focus on the matching bracket instead of the bracket at the cursor position.
To optimally improve the highlighting nord3
will now be used as background color for the matching element which doesn't conflict with the cursorline
color and also stands out in order to see the matching element.
After without cursorline
option
❯ TODO keywords are now highlighted correctly for Neovim and gVim (#52 in PR #53, @dylnmc, 063620f0)
❯ Fixed invisible inactive lightline bars (PR #73, @dylnmc, 788876b8)
❯ Fixed the WildMenu
background color for current selection (tab completion) not being visible. (#64 in PR #80, @markand, 53fce0db)
❯ Added the included lightline theme to the official lightline repository. (#68 in itchyny/lightline#257, @lokesh-krishna, itchyny/lightline@e69081c1370a57647e05df21b60a4ef092c3ce91)
❯ Migrated to the MIT license to adapt to the migration of the main Nord project. Detailed information can be found in the main task ticket. (#69 in PR #70, fa55dc35)
❯ Added basic support for CtrlP. (PR #33, @syedelec)
- Matched characters are using the keyword color instead of the normal text color to make matched characters visible
- Already opened buffers now take the normal text color instead of the comment color
❯ Added basic support ALE. (PR #44, @meck)
- Warning signs are colorized using a
nord13
foreground - Error signs are colorized using a
nord11
foreground instead of a red background with a white foreground
❯ The fold marker foreground has been adjusted to match the comment color instead of nord1
which has been too dark causing them to be unreadable in bright environments. The background color has also been changed to nord1
to differ from normal comments and the font style is now bold for better legibility. (#38 in PR #40, @dylnmc)
❯ The highlight text of a active substitute search result is now underlined in order to make it more recognizable. (#35 in PR #41, @KevinSjoberg)
❯ Addded support for the Neovim specific :CheckHealth
status highlight groups. (#31 in PR #42, @syedelec, Thanks to @dylnmc)
❯ Fixed unreadable text color on pending search result highlights. (#32 in PR #39, @syedelec)
❯ Implemented optimized styles for Ruby (@hahuang65, #29, 085c1337)
- Symbols (
rubySymbol
) now have a bold font style - Block parameter list symbols (
rubyBlockParameterList
) are now colorized as keywords - Local (variable) methods (
rubyLocalVariableOrMethod
) are now colorized as methods
❯ Fixed a typo in the project description. (@arcticicestudio, #28, b2134029)
❯ Added a configuration to enable italic comments.
To adhere to the Nord style guide this option is disabled by default. It can be enabled by setting the g:nord_italic_comments
variable to 1
.
let g:nord_italic_comments = 1
(@kepbod, #13 (PR #16), dc6149f4)
❯ The method/function signature live preview of the jedi-vim
plugin is now colorized correctly. (@mkalinski, #14, a5c3459a)
❯ Implemented optimized styles for the Python syntax group pythonEscape
. (@mkalinski, #22, 360a76ea)
❯ Implemented optimized styles for the SQL syntax groups sqlSpecial
which is now linked to the sqlKeyword
group to colorize constants like true
/false
and null
as keywords. (@mkalinski, #23, dcfb441e)
❯ Added the new terminal emulator port project Nord Hyper
❯ The Nord lightline.vim UI plugin theme now includes better support for the tmuxline.vim plugin. Before this implementation text shown in the main segment of the tmuxline, generated via the :Tmuxline lightline
command, has been colorized using nord0
which resulted in unreadable text due to a nord3
background.
This has been fixed by using nord5
as foreground color. (@scottwillmoore, #11, 4ea37f7e)
Before
After
With unicode separators
Without specified configurations (tmuxline.vim autodetect)
❯ Fixed a typo in the README installation guide for Vundle. (@kepbod, #10, 29145bbb)
❯ Fixed the banner of the Nord iTerm2 port project showing the Nord GNOME Terminal banner instead. (@shvetsovdm, #8 / nord/#9, 7a447b40)
❯ Characters under block cursors are now colored darker (nord0
) while the block cursor is visible to achieve a optimal contrast and to avoid unreadability due to the same cursor- and foreground color (nord4
). (@arcticicestudio / @scottwillmoore, #9, 30e1f7e3)
❯ The background color of visual mode selections is now colored in nord1
instead of nord3
to avoid a color collision with comments which has led to unreadable text.(@scottwillmoore, #7, bdb209f5)
2017-01-01
❯ Fixed a bug where the g:colors_name
variable has been unset caused by the syntax reset
call due to the execution
order. (@shuei72, #5, f8ffce24)
❯ Fixed wrong color variables (*_term
to *_gui
) for the guisp
attribute of all Spell*
highlighting groups which caused error logs while loading vim
/gvim
/MacVim. (@kamwitsta, #4, 4d642b9b)
Detailed information about features, supported plugins/languages and install instructions can be found in the README and in the project wiki.
❯ Implemented the main color theme file nord.vim
. (@arcticicestudio, #1, e2832b9)
❯ Implemented the lightline color scheme file nord.vim
. (@arcticicestudio, #2, f9891ffe)
❯ Implemented the airline color theme file nord.vim
. (@arcticicestudio, #3, e54464a7)