78

GitHub - bluz71/vim-moonfly-colors: A dark color scheme for Vim

 6 years ago
source link: https://github.com/bluz71/vim-moonfly-colors
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

moonfly

moonfly is a dark colorscheme for Vim & Neovim.

point_right I maintain another dark Vim theme named nightfly which may be of interest.

Screenshot

screenshot

Styled Features & Plugins

Vim & Neovim compatible:

Neovim-only:

Installation

Install the bluz71/vim-moonfly-colors colorscheme with your preferred plugin manager.

vim-plug:

Plug 'bluz71/vim-moonfly-colors'

packer.nvim:

use 'bluz71/vim-moonfly-colors'

Usage

Enable the colorscheme after the plugin declaration.

" Vimscript initialization file
colorscheme moonfly
-- Lua initialization file
vim.cmd [[colorscheme moonfly]]

Statusline

  • The moonfly colorscheme supports lightline. To enable the moonfly lightline colorscheme please add the following to your initialization file:
let g:lightline = { 'colorscheme': 'moonfly' }
  • The moonfly colorscheme supports vim-airline. The moonfly theme will automatically load once vim-airline starts.

  • The moonfly colorscheme supports lualine. The moonfly theme will load once Lualine starts.

  • Lastly, my own mistfly-statusline is available for those that want a simple, fast and informative statusline.

wrench Options

The moonflyCursorColor option specifies whether to color the cursor or not. By default the cursor will NOT be colored. If you prefer a colored cursor then add the following to your initialization file:

" Vimscript initialization file
let g:moonflyCursorColor = 1
-- Lua initialization file
vim.g.moonflyCursorColor = 1

The moonflyItalics option specifies whether to use italics for comments and certain HTML elements in GUI versions of Vim. By default this option is enabled. If you do not like the appearance of italics then add the following to your initialization file:

" Vimscript initialization file
let g:moonflyItalics = 0
-- Lua initialization file
vim.g.moonflyItalics = 0

The moonflyNormalFloat option specifies whether to use moonfly background and foreground colors in Neovim floating windows. By default this option is disabled, hence, Neovim floating windows will usually be styled with popup menu colors. If you would like to use moonfly colors instead then add the following to your configuration:

" Vimscript initialization file
let g:moonflyNormalFloat = 1
-- Lua initialization file
vim.g.moonflyNormalFloat = 1

bulb If the above option is set then it is highly recommended to enable floating window borders to distinguish between the edit and floating windows in Neovim's LSP client, for example:

  vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
    vim.lsp.handlers.hover, {
      border = "single"
    }
  )
  vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
    vim.lsp.handlers.signatureHelp, {
      border = "single"
    }
  )
  vim.diagnostic.config({ float = { border = "single" } })

bulb Likewise, nvim-cmp may be configured as follows for nicer display when g:moonflyNormalFloat is enabled:

local winhighlight = {
  winhighlight = "Normal:NormalFloat,FloatBorder:FloatBorder,CursorLine:PmenuSel",
}
require('cmp').setup({
  window = {
    completion = cmp.config.window.bordered(winhighlight),
    documentation = cmp.config.window.bordered(winhighlight),
  }
})

The moonflyTerminalColors option specifies whether to use the moonfly color palette in :terminal windows when termguicolors is set. By default this option is enabled. If you prefer not to use the moonfly color palette for the first 16 terminal colors then add the following to your initialization file:

" Vimscript initialization file
let g:moonflyTerminalColors = 0
-- Lua initialization file
vim.g.moonflyTerminalColors = 0

The moonflyTransparent option specifies whether to use an opaque or transparent background in GUI versions of Vim. By default this option is disabled. If you would like a transparent background then add the following to your initialization file:

" Vimscript initialization file
let g:moonflyTransparent = 1
-- Lua initialization file
vim.g.moonflyTransparent = 1

The moonflyUndercurls option specifies whether to use undercurls for spelling and linting errors in GUI versions of Vim, including terminal Vim with termguicolors set. By default this option is enabled. If you do not like the appearance of undercurls then add the following to your initialization file:

" Vimscript initialization file
let g:moonflyUndercurls = 0
-- Lua initialization file
vim.g.moonflyUndercurls = 0

The moonflyUnderlineMatchParen option specifies whether to underline matching parentheses. By default this option is disabled. If you want to underline matching parentheses then add the following to your initialization file:

" Vimscript initialization file
let g:moonflyUnderlineMatchParen = 1
-- Lua initialization file
vim.g.moonflyUnderlineMatchParen = 1

The moonflyWinSeparator option specifies the style of window separators:

  • 0 will display no window separators

  • 1 will display block separators; this is the default

  • 2 will diplay line separators

For example, if line separators are desired then add the following to your configuration:

" Vimscript initialization file
let g:moonflyWinSeparator = 2
-- Lua initialization file
vim.g.moonflyWinSeparator = 2

gift If using Neovim 0.7 (or later), the following configuration will improve the look of line separators (if option 2 has been chosen) by selecting thicker characters for the separators:

" Vimscript initialization file
set fillchars=horiz:━,horizup:┻,horizdown:┳,vert:┃,vertleft:┨,vertright:┣,verthoriz:╋
-- Lua initialization file
vim.opt.fillchars = { horiz = '━', horizup = '┻', horizdown = '┳', vert = '┃', vertleft = '┫', vertright = '┣', verthoriz = '╋', }

True Color Terminals

Many modern terminals support 24-bit true colors. Current versions of Vim & Neovim, on such terminals, support true colors when set termguicolors is enabled.

A list of popular terminals that support true colors:

On terminals that support true colors, and when termguicolors is set, the moonfly colorscheme will not require any terminal configuration to emit the correct theme colors.

For the true color moonfly colorscheme to display correctly inside tmux the following setting will usually be required in ~/.tmux.conf:

set -ga terminal-overrides ',xterm-256color:Tc'

Vim, as against Neovim, inside tmux, will also require the following settings be added to the ~/.vimrc file:

let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"

Terminal Themes

A collection of moonfly-flavoured terminal themes are provided for those using moonfly with termguicolors (cterm users should refer to the next section and not use these terminal themes):

  • iTerm2 users on macOS can import this colorscheme.

  • Alacritty users can copy this theme into their alacritty.yml configuration.

  • Windows Terminal users can copy this theme into their settings.json configuration.

  • kitty users can use this theme.

  • Gnome Terminal users can run this script to create a Moonfly profile. Before executing the script, please install the dconf-cli command line utility for modern versions of Gnome (3.28 and later), for example sudo apt install dconf-cli. After executing the script, please set the cursor and selection colors by hand, with the appropriate color values listed above, in Preferences / Moonfly / Colors.

For other terminals please configure appropriately with the following colors:

Type Category Value Color
Background Background #080808
Foreground Foreground #b2b2b2
Bold Bold #eeeeee
Cursor Cursor #9e9e9e
Cursor Text Cursor Text #080808
Selection Selection #b2ceee
Selection Text Selection Text #080808
Color 1 Black (normal) #323437
Color 2 Red (normal) #ff5454
Color 3 Green (normal) #8cc85f
Color 4 Yellow (normal) #e3c78a
Color 5 Blue (normal) #80a0ff
Color 6 Purple (normal) #d183e8
Color 7 Cyan (normal) #79dac8
Color 8 White (normal) #c6c6c6
Color 9 Black (bright) #949494
Color 10 Red (bright) #ff5189
Color 11 Green (bright) #36c692
Color 12 Yellow (bright) #c2c292
Color 13 Blue (bright) #74b2ff
Color 14 Purple (bright) #ae81ff
Color 15 Cyan (bright) #85dc85
Color 16 White (bright) #e4e4e4

tv Legacy 256 Color Terminals

The moonfly colorscheme, when used absent termguicolors, requires the host terminal be configured with a specific color palette. In that case the legacy moonfly cterm 256 color terminal theme will be used.

bangbang Nowadays it is strongly recommended to use a true color terminal with a modern version of Vim or Neovim with termguicolors set.

If that is not possible, then the terminal emulator must be configured for 256 colors, which usually means setting the terminal's type to xterm-256color, or screen-256color when used inside tmux.

The terminal should then be configured with the following moonfly colors:

Background:               #080808
Foreground:               #b2b2b2
Bold:                     #eeeeee
Cursor:                   #9e9e9e
Cursor Text:              #080808
Selection:                #b2ceee
Selection Text:           #080808
Color 1 (Black):          #323437
Color 2 (Red):            #ff5454
Color 3 (Green):          #8cc85f
Color 4 (Yellow):         #e3c78a
Color 5 (Blue):           #80a0ff
Color 6 (Purple):         #d183e8
Color 7 (Cyan):           #79dac8
Color 8 (White):          #de935f
Color 9 (Bright Black):   #f09479
Color 10 (Bright Red):    #ff5189
Color 11 (Bright Green):  #36c692
Color 12 (Bright Yellow): #c2c292
Color 13 (Bright Blue):   #74b2ff
Color 14 (Bright Purple): #ae81ff
Color 15 (Bright Cyan):   #85dc85
Color 16 (Bright White):  #e2637f

Sponsor

License


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK