diff --git a/.gitignore b/.gitignore index ab50645..7ea7b13 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ nvim.configlink/dirs/* nvim.configlink/.netrwhist spacemacs.d.symlink/.spacemacs.env +fish.configlink/config.fish.bac *.lock.json - diff --git a/alacritty.configlink/alacritty.yml b/alacritty.configlink/alacritty.yml new file mode 100644 index 0000000..2d77efc --- /dev/null +++ b/alacritty.configlink/alacritty.yml @@ -0,0 +1,703 @@ +# Configuration for Alacritty, the GPU enhanced terminal emulator. + +# Any items in the `env` entry below will be added as +# environment variables. Some entries may override variables +# set by alacritty itself. +#env: + # TERM variable + # + # This value is used to set the `$TERM` environment variable for + # each instance of Alacritty. If it is not present, alacritty will + # check the local terminfo database and use `alacritty` if it is + # available, otherwise `xterm-256color` is used. + #TERM: alacritty + #TERM: xterm-256color + +window: + # Window dimensions (changes require restart) + # + # Specified in number of columns/lines, not pixels. + # If both are `0`, this setting is ignored. + dimensions: + columns: 140 + lines: 55 + + # Window position (changes require restart) + # + # Specified in number of pixels. + # If the position is not set, the window manager will handle the placement. + #position: + # x: 0 + # y: 0 + + # Window padding (changes require restart) + # + # Blank space added around the window in pixels. This padding is scaled + # by DPI and the specified value is always added at both opposing sides. + padding: + x: 20 + y: 20 + + # Spread additional padding evenly around the terminal content. + #dynamic_padding: false + + # Window decorations + # + # Values for `decorations`: + # - full: Borders and title bar + # - none: Neither borders nor title bar + # + # Values for `decorations` (macOS only): + # - transparent: Title bar, transparent background and title bar buttons + # - buttonless: Title bar, transparent background, but no title bar buttons + decorations: full + + # Startup Mode (changes require restart) + # + # Values for `startup_mode`: + # - Windowed + # - Maximized + # - Fullscreen + # + # Values for `startup_mode` (macOS only): + # - SimpleFullscreen + startup_mode: Windowed + + # Window title + #title: Alacritty + + # Window class (Linux/BSD only): + #class: + # Application instance name + #instance: Alacritty + # General application class + #general: Alacritty + + # GTK theme variant (Linux/BSD only) + # + # Override the variant of the GTK theme. Commonly supported values are `dark` and `light`. + # Set this to `None` to use the default theme variant. + #gtk_theme_variant: None + +scrolling: + # Maximum number of lines in the scrollback buffer. + # Specifying '0' will disable scrolling. + history: 10000 + + # Scrolling distance multiplier. + #multiplier: 3 + +# Font configuration +font: + # Normal (roman) font face + normal: + # Font family + # + # Default: + # - (macOS) Menlo + # - (Linux/BSD) monospace + # - (Windows) Consolas + #family: Fira Code + #family: Noto Sans Mono + family: Fira Mono for Powerline + + # The `style` can be specified to pick a specific face. + #style: Regular + + # Bold font face + #bold: + # Font family + # + # If the bold family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Bold + + # Italic font face + #italic: + # Font family + # + # If the italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Italic + + # Bold italic font face + #bold_italic: + # Font family + # + # If the bold italic family is not specified, it will fall back to the + # value specified for the normal font. + #family: monospace + + # The `style` can be specified to pick a specific face. + #style: Bold Italic + + # Point size + size: 16.0 + + # Offset is the extra space around each character. `offset.y` can be thought of + # as modifying the line spacing, and `offset.x` as modifying the letter spacing. + #offset: + # x: 0 + # y: 0 + + # Glyph offset determines the locations of the glyphs within their cells with + # the default being at the bottom. Increasing `x` moves the glyph to the right, + # increasing `y` moves the glyph upward. + #glyph_offset: + # x: 0 + # y: 0 + + # Thin stroke font rendering (macOS only) + # + # Thin strokes are suitable for retina displays, but for non-retina screens + # it is recommended to set `use_thin_strokes` to `false`. + #use_thin_strokes: true + +# If `true`, bold text is drawn using the bright color variants. +#draw_bold_text_with_bright_colors: false + +# Colors (Tomorrow Night) +#colors: + # Default colors + #primary: + # background: '#1d1f21' + # foreground: '#c5c8c6' + + # Bright and dim foreground colors + # + # The dimmed foreground color is calculated automatically if it is not present. + # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors` + # is `false`, the normal foreground color will be used. + #dim_foreground: '#828482' + #bright_foreground: '#eaeaea' + + # Cursor colors + # + # Colors which should be used to draw the terminal cursor. + # + # Allowed values are CellForeground and CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #cursor: + # text: CellBackground + # cursor: CellForeground + + # Vi mode cursor colors + # + # Colors for the cursor when the vi mode is active. + # + # Allowed values are CellForeground and CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #vi_mode_cursor: + # text: CellBackground + # cursor: CellForeground + + # Selection colors + # + # Colors which should be used to draw the selection area. + # + # Allowed values are CellForeground and CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #selection: + # text: CellBackground + # background: CellForeground + + # Search colors + # + # Colors used for the search bar and match highlighting. + # + # Allowed values are CellForeground and CellBackground, which reference the + # affected cell, or hexadecimal colors like #ff00ff. + #search: + # matches: + # foreground: '#000000' + # background: '#ffffff' + # + # bar: + # background: CellForeground + # foreground: CellBackground + + # Normal colors + #normal: + # black: '#1d1f21' + # red: '#cc6666' + # green: '#b5bd68' + # yellow: '#f0c674' + # blue: '#81a2be' + # magenta: '#b294bb' + # cyan: '#8abeb7' + # white: '#c5c8c6' + + # Bright colors + #bright: + # black: '#666666' + # red: '#d54e53' + # green: '#b9ca4a' + # yellow: '#e7c547' + # blue: '#7aa6da' + # magenta: '#c397d8' + # cyan: '#70c0b1' + # white: '#eaeaea' + + # Dim colors + # + # If the dim colors are not set, they will be calculated automatically based + # on the `normal` colors. + #dim: + # black: '#131415' + # red: '#864343' + # green: '#777c44' + # yellow: '#9e824c' + # blue: '#556a7d' + # magenta: '#75617b' + # cyan: '#5b7d78' + # white: '#828482' + + # Indexed Colors + # + # The indexed colors include all colors from 16 to 256. + # When these are not set, they're filled with sensible defaults. + # + # Example: + # `- { index: 16, color: '#ff00ff' }` + # + #indexed_colors: [] + +# Bell +# +# The bell is rung every time the BEL control character is received. +#bell: + # Visual Bell Animation + # + # Animation effect for flashing the screen when the visual bell is rung. + # + # Values for `animation`: + # - Ease + # - EaseOut + # - EaseOutSine + # - EaseOutQuad + # - EaseOutCubic + # - EaseOutQuart + # - EaseOutQuint + # - EaseOutExpo + # - EaseOutCirc + # - Linear + #animation: EaseOutExpo + + # Duration of the visual bell flash. A `duration` of `0` will disable the + # visual bell animation. + #duration: 0 + + # Visual bell animation color. + #color: '#ffffff' + + # Bell Command + # + # This program is executed whenever the bell is rung. + # + # When set to `command: None`, no command will be executed. + # + # Example: + # command: + # program: notify-send + # args: ["Hello, World!"] + # + #command: None + +# Background opacity +# +# Window opacity as a floating point number from `0.0` to `1.0`. +# The value `0.0` is completely transparent and `1.0` is opaque. +#background_opacity: 1.0 + +#selection: + #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" + + # When set to `true`, selected text will be copied to the primary clipboard. + #save_to_clipboard: false + +# Allow terminal applications to change Alacritty's window title. +#dynamic_title: true + +#cursor: + # Cursor style + # + # Values for `style`: + # - ▇ Block + # - _ Underline + # - | Beam + #style: Block + + # Vi mode cursor style + # + # If the vi mode cursor style is `None` or not specified, it will fall back to + # the style of the active value of the normal cursor. + # + # See `cursor.style` for available options. + #vi_mode_style: Block + + # If this is `true`, the cursor will be rendered as a hollow box when the + # window is not focused. + #unfocused_hollow: true + + # Thickness of the cursor relative to the cell width as floating point number + # from `0.0` to `1.0`. + #thickness: 0.15 + +# Live config reload (changes require restart) +#live_config_reload: true + +# Shell +# +# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. +# Entries in `shell.args` are passed unmodified as arguments to the shell. +# +# Default: +# - (macOS) /bin/bash --login +# - (Linux/BSD) user login shell +# - (Windows) powershell +#shell: +# program: /usr/local/bin/fish +# args: +# - --login + +# Startup directory +# +# Directory the shell is started in. If this is unset, or `None`, the working +# directory of the parent process will be used. +#working_directory: None + +# WinPTY backend (Windows only) +# +# Alacritty defaults to using the newer ConPTY backend if it is available, +# since it resolves a lot of bugs and is quite a bit faster. If it is not +# available, the WinPTY backend will be used instead. +# +# Setting this option to `true` makes Alacritty use the legacy WinPTY backend, +# even if the ConPTY backend is available. +#winpty_backend: false + +# Send ESC (\x1b) before characters when alt is pressed. +#alt_send_esc: true + +#mouse: + # Click settings + # + # The `double_click` and `triple_click` settings control the time + # alacritty should wait for accepting multiple clicks as one double + # or triple click. + #double_click: { threshold: 300 } + #triple_click: { threshold: 300 } + + # If this is `true`, the cursor is temporarily hidden when typing. + #hide_when_typing: false + + #url: + # URL launcher + # + # This program is executed when clicking on a text which is recognized as a URL. + # The URL is always added to the command as the last parameter. + # + # When set to `launcher: None`, URL launching will be disabled completely. + # + # Default: + # - (macOS) open + # - (Linux/BSD) xdg-open + # - (Windows) explorer + #launcher: + # program: xdg-open + # args: [] + + # URL modifiers + # + # These are the modifiers that need to be held down for opening URLs when clicking + # on them. The available modifiers are documented in the key binding section. + #modifiers: None + +# Mouse bindings +# +# Mouse bindings are specified as a list of objects, much like the key +# bindings further below. +# +# To trigger mouse bindings when an application running within Alacritty captures the mouse, the +# `Shift` modifier is automatically added as a requirement. +# +# Each mouse binding will specify a: +# +# - `mouse`: +# +# - Middle +# - Left +# - Right +# - Numeric identifier such as `5` +# +# - `action` (see key bindings) +# +# And optionally: +# +# - `mods` (see key bindings) +#mouse_bindings: +# - { mouse: Middle, action: PasteSelection } + +# Key bindings +# +# Key bindings are specified as a list of objects. For example, this is the +# default paste binding: +# +# `- { key: V, mods: Control|Shift, action: Paste }` +# +# Each key binding will specify a: +# +# - `key`: Identifier of the key pressed +# +# - A-Z +# - F1-F24 +# - Key0-Key9 +# +# A full list with available key codes can be found here: +# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants +# +# Instead of using the name of the keys, the `key` field also supports using +# the scancode of the desired key. Scancodes have to be specified as a +# decimal number. This command will allow you to display the hex scancodes +# for certain keys: +# +# `showkey --scancodes`. +# +# Then exactly one of: +# +# - `chars`: Send a byte sequence to the running application +# +# The `chars` field writes the specified string to the terminal. This makes +# it possible to pass escape sequences. To find escape codes for bindings +# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside +# of tmux. Note that applications use terminfo to map escape sequences back +# to keys. It is therefore required to update the terminfo when changing an +# escape sequence. +# +# - `action`: Execute a predefined action +# +# - ToggleViMode +# - SearchForward +# - SearchBackward +# - Copy +# - Paste +# - PasteSelection +# - IncreaseFontSize +# - DecreaseFontSize +# - ResetFontSize +# - ScrollPageUp +# - ScrollPageDown +# - ScrollHalfPageUp +# - ScrollHalfPageDown +# - ScrollLineUp +# - ScrollLineDown +# - ScrollToTop +# - ScrollToBottom +# - ClearHistory +# - Hide +# - Minimize +# - Quit +# - ToggleFullscreen +# - SpawnNewInstance +# - ClearLogNotice +# - ClearSelection +# - ReceiveChar +# - None +# +# (`mode: Vi` only): +# - Open +# - Up +# - Down +# - Left +# - Right +# - First +# - Last +# - FirstOccupied +# - High +# - Middle +# - Low +# - SemanticLeft +# - SemanticRight +# - SemanticLeftEnd +# - SemanticRightEnd +# - WordRight +# - WordLeft +# - WordRightEnd +# - WordLeftEnd +# - Bracket +# - ToggleNormalSelection +# - ToggleLineSelection +# - ToggleBlockSelection +# - ToggleSemanticSelection +# - SearchNext +# - SearchPrevious +# - SearchStart +# - SearchEnd +# +# (macOS only): +# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space +# +# (Linux/BSD only): +# - CopySelection: Copies into selection buffer +# +# - `command`: Fork and execute a specified command plus arguments +# +# The `command` field must be a map containing a `program` string and an +# `args` array of command line parameter strings. For example: +# `{ program: "alacritty", args: ["-e", "vttest"] }` +# +# And optionally: +# +# - `mods`: Key modifiers to filter binding actions +# +# - Command +# - Control +# - Option +# - Super +# - Shift +# - Alt +# +# Multiple `mods` can be combined using `|` like this: +# `mods: Control|Shift`. +# Whitespace and capitalization are relevant and must match the example. +# +# - `mode`: Indicate a binding for only specific terminal reported modes +# +# This is mainly used to send applications the correct escape sequences +# when in different modes. +# +# - AppCursor +# - AppKeypad +# - Alt +# +# A `~` operator can be used before a mode to apply the binding whenever +# the mode is *not* active, e.g. `~Alt`. +# +# Bindings are always filled by default, but will be replaced when a new +# binding with the same triggers is defined. To unset a default binding, it can +# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for +# a no-op if you do not wish to receive input characters for that binding. +# +# If the same trigger is assigned to multiple actions, all of them are executed +# in the order they were defined in. +key_bindings: + - { key: F, mods: Option, action: ToggleSimpleFullscreen } + + #- { key: Paste, action: Paste } + #- { key: Copy, action: Copy } + #- { key: L, mods: Control, action: ClearLogNotice } + #- { key: L, mods: Control, mode: ~Vi, chars: "\x0c" } + #- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, } + #- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown } + #- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, } + #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom } + + # Vi Mode + #- { key: Space, mods: Shift|Control, mode: Vi, action: ScrollToBottom } + #- { key: Space, mods: Shift|Control, action: ToggleViMode } + #- { key: Escape, mode: Vi, action: ClearSelection } + #- { key: I, mode: Vi, action: ScrollToBottom } + #- { key: I, mode: Vi, action: ToggleViMode } + #- { key: Y, mods: Control, mode: Vi, action: ScrollLineUp } + #- { key: E, mods: Control, mode: Vi, action: ScrollLineDown } + #- { key: G, mode: Vi, action: ScrollToTop } + #- { key: G, mods: Shift, mode: Vi, action: ScrollToBottom } + #- { key: B, mods: Control, mode: Vi, action: ScrollPageUp } + #- { key: F, mods: Control, mode: Vi, action: ScrollPageDown } + #- { key: U, mods: Control, mode: Vi, action: ScrollHalfPageUp } + #- { key: D, mods: Control, mode: Vi, action: ScrollHalfPageDown } + #- { key: Y, mode: Vi, action: Copy } + #- { key: Y, mode: Vi, action: ClearSelection } + #- { key: Copy, mode: Vi, action: ClearSelection } + #- { key: V, mode: Vi, action: ToggleNormalSelection } + #- { key: V, mods: Shift, mode: Vi, action: ToggleLineSelection } + #- { key: V, mods: Control, mode: Vi, action: ToggleBlockSelection } + #- { key: V, mods: Alt, mode: Vi, action: ToggleSemanticSelection } + #- { key: Return, mode: Vi, action: Open } + #- { key: K, mode: Vi, action: Up } + #- { key: J, mode: Vi, action: Down } + #- { key: H, mode: Vi, action: Left } + #- { key: L, mode: Vi, action: Right } + #- { key: Up, mode: Vi, action: Up } + #- { key: Down, mode: Vi, action: Down } + #- { key: Left, mode: Vi, action: Left } + #- { key: Right, mode: Vi, action: Right } + #- { key: Key0, mode: Vi, action: First } + #- { key: Key4, mods: Shift, mode: Vi, action: Last } + #- { key: Key6, mods: Shift, mode: Vi, action: FirstOccupied } + #- { key: H, mods: Shift, mode: Vi, action: High } + #- { key: M, mods: Shift, mode: Vi, action: Middle } + #- { key: L, mods: Shift, mode: Vi, action: Low } + #- { key: B, mode: Vi, action: SemanticLeft } + #- { key: W, mode: Vi, action: SemanticRight } + #- { key: E, mode: Vi, action: SemanticRightEnd } + #- { key: B, mods: Shift, mode: Vi, action: WordLeft } + #- { key: W, mods: Shift, mode: Vi, action: WordRight } + #- { key: E, mods: Shift, mode: Vi, action: WordRightEnd } + #- { key: Key5, mods: Shift, mode: Vi, action: Bracket } + #- { key: Slash, mode: Vi, action: SearchForward } + #- { key: Slash, mods: Shift, mode: Vi, action: SearchBackward } + #- { key: N, mode: Vi, action: SearchNext } + #- { key: N, mods: Shift, mode: Vi, action: SearchPrevious } + + # (Windows, Linux, and BSD only) + #- { key: V, mods: Control|Shift, action: Paste } + #- { key: C, mods: Control|Shift, action: Copy } + #- { key: F, mods: Control|Shift, action: SearchForward } + #- { key: B, mods: Control|Shift, action: SearchBackward } + #- { key: C, mods: Control|Shift, mode: Vi, action: ClearSelection } + #- { key: Insert, mods: Shift, action: PasteSelection } + #- { key: Key0, mods: Control, action: ResetFontSize } + #- { key: Equals, mods: Control, action: IncreaseFontSize } + #- { key: Add, mods: Control, action: IncreaseFontSize } + #- { key: Subtract, mods: Control, action: DecreaseFontSize } + #- { key: Minus, mods: Control, action: DecreaseFontSize } + + # (Windows only) + #- { key: Return, mods: Alt, action: ToggleFullscreen } + + # (macOS only) + #- { key: K, mods: Command, mode: ~Vi, chars: "\x0c" } + #- { key: Key0, mods: Command, action: ResetFontSize } + #- { key: Equals, mods: Command, action: IncreaseFontSize } + #- { key: Add, mods: Command, action: IncreaseFontSize } + #- { key: Minus, mods: Command, action: DecreaseFontSize } + #- { key: K, mods: Command, action: ClearHistory } + #- { key: V, mods: Command, action: Paste } + #- { key: C, mods: Command, action: Copy } + #- { key: C, mods: Command, mode: Vi, action: ClearSelection } + #- { key: H, mods: Command, action: Hide } + #- { key: M, mods: Command, action: Minimize } + #- { key: Q, mods: Command, action: Quit } + #- { key: W, mods: Command, action: Quit } + #- { key: N, mods: Command, action: SpawnNewInstance } + #- { key: F, mods: Command|Control, action: ToggleFullscreen } + #- { key: F, mods: Command, action: SearchForward } + #- { key: B, mods: Command, action: SearchBackward } + +#debug: + # Display the time it takes to redraw each frame. + #render_timer: false + + # Keep the log file after quitting Alacritty. + #persistent_logging: false + + # Log level + # + # Values for `log_level`: + # - None + # - Error + # - Warn + # - Info + # - Debug + # - Trace + #log_level: Warn + + # Print all received window events. + #print_events: false diff --git a/fish.configlink/config.fish b/fish.configlink/config.fish index b6e73b1..a496f12 100644 --- a/fish.configlink/config.fish +++ b/fish.configlink/config.fish @@ -1,2 +1,39 @@ -starship init fish | source +#!/usr/local/bin/fish + +if status --is-interactive + + # Set $PATH for finding programs + set FISH_DIR (readlink ~/.config/fish) + set DOTS (dirname $FISH_DIR) + set PROJ (dirname $DOTS) + set PATH $PATH /usr/local/bin ~/.local/bin $DOTS/bin ~/.cargo/bin + set CDPATH . $HOME $PROJ $DOTS + + # Use `vi` in the shell + fish_vi_key_bindings + set XTERM_VERSION hello + fish_vi_cursor + set fish_cursor_default block + set fish_cursor_insert line + set fish_cursor_replace_one underscore + set fish_cursor_visual block + + # Turn off greeting + set fish_greeting "" + + # Autojump + [ -f /usr/local/share/autojump/autojump.fish ]; and source /usr/local/share/autojump/autojump.fish + + # Colors + theme_gruvbox + + # Aliases + aliases + + # Individual features + pyenv + + # Use `starship` prompt + starship init fish | source +end diff --git a/fish.configlink/fish_variables b/fish.configlink/fish_variables index fa8bff9..bccdb29 100644 --- a/fish.configlink/fish_variables +++ b/fish.configlink/fish_variables @@ -1,32 +1,61 @@ # This file contains fish universal variable definitions. # VERSION: 3.0 SETUVAR __fish_initialized:3100 -SETUVAR fish_color_autosuggestion:555\x1ebrblack +SETUVAR _fish_abbr__01_t:cat +SETUVAR _fish_abbr_boot:\x24DOTS/scripts/bootstrap +SETUVAR _fish_abbr_ca:cargo +SETUVAR _fish_abbr_cat:bat +SETUVAR _fish_abbr_d:deactivate +SETUVAR _fish_abbr_db:docker\x20build\x20\x2e\x20\x2dt +SETUVAR _fish_abbr_dc:\x24DOTS/bin/docker_cleanup +SETUVAR _fish_abbr_dr:docker\x20run +SETUVAR _fish_abbr_falias:vim\x20\x24HOME/\x2econfig/fish/functions/aliases\x2efish +SETUVAR _fish_abbr_fishal:vim\x20\x24HOME/\x2econfig/fish/functions/aliases\x2efish +SETUVAR _fish_abbr_fishrc:vim\x20\x24HOME/\x2econfig/fish/config\x2efish +SETUVAR _fish_abbr_frc:vim\x20\x24HOME/\x2econfig/fish/config\x2efish +SETUVAR _fish_abbr_ga:git\x20add\x20\x2dA +SETUVAR _fish_abbr_gc:git\x20commit\x20\x2dm +SETUVAR _fish_abbr_gd:git\x20diff +SETUVAR _fish_abbr_gs:git\x20status +SETUVAR _fish_abbr_h:http\x20\x2dFh\x20\x2d\x2dall +SETUVAR _fish_abbr_hosts:sudo\x20vim\x20/etc/hosts +SETUVAR _fish_abbr_l:ls +SETUVAR _fish_abbr_la:ls\x20\x2dalhF +SETUVAR _fish_abbr_lh:ls\x20\x2dlh +SETUVAR _fish_abbr_ll:ls\x20\x2dalhF +SETUVAR _fish_abbr_misty:cd\x20\x24PROJ/misty +SETUVAR _fish_abbr_oldcat:cat +SETUVAR _fish_abbr_p:python +SETUVAR _fish_abbr_py:python +SETUVAR _fish_abbr_runbootstrap:\x24DOTS/scripts/bootstrap +SETUVAR _fish_abbr_sshc:vim\x20\x7e/\x2essh/config +SETUVAR _fish_abbr_ssl:openssl\x20req\x20\x2dnew\x20\x2dnewkey\x20rsa\x3a2048\x20\x2dnodes\x20\x2dkeyout\x20server\x2ekey\x20\x2dout\x20server\x2ecsr +SETUVAR _fish_abbr_te:terraform +SETUVAR _fish_abbr_vimrc:vim\x20\x24HOME/\x2econfig/nvim/init\x2evim +SETUVAR fish_color_autosuggestion:686868 SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:005fd7 -SETUVAR fish_color_comment:990000 +SETUVAR fish_color_command:a1b56c +SETUVAR fish_color_comment:f7ca88 SETUVAR fish_color_cwd:green SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:009900 -SETUVAR fish_color_error:ff0000 -SETUVAR fish_color_escape:00a6b2 +SETUVAR fish_color_end:ba8baf +SETUVAR fish_color_error:ab4642 +SETUVAR fish_color_escape:86c1b9 SETUVAR fish_color_history_current:\x2d\x2dbold SETUVAR fish_color_host:normal SETUVAR fish_color_host_remote:yellow -SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue +SETUVAR fish_color_match:7cafc2 SETUVAR fish_color_normal:normal -SETUVAR fish_color_operator:00a6b2 -SETUVAR fish_color_param:00afff -SETUVAR fish_color_quote:999900 -SETUVAR fish_color_redirection:00afff +SETUVAR fish_color_operator:7cafc2 +SETUVAR fish_color_param:normal +SETUVAR fish_color_quote:f7ca88 +SETUVAR fish_color_redirection:yellow SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack SETUVAR fish_color_status:red SETUVAR fish_color_user:brgreen SETUVAR fish_color_valid_path:\x2d\x2dunderline -SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell\x0aType\x20\x60help\x60\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish -SETUVAR fish_key_bindings:fish_default_key_bindings -SETUVAR fish_pager_color_completion:\x1d +SETUVAR fish_pager_color_completion:normal SETUVAR fish_pager_color_description:B3A06D\x1eyellow SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan diff --git a/fish.configlink/functions/aliases.fish b/fish.configlink/functions/aliases.fish new file mode 100644 index 0000000..e98f76d --- /dev/null +++ b/fish.configlink/functions/aliases.fish @@ -0,0 +1,72 @@ +#!/usr/local/bin/fish + +function aliases --description 'All aliases' + + # Directory aliases + alias ls 'exa' # exa = improved ls + abbr -a l 'ls' # Quicker shortcut for ls + abbr -a lh 'ls -lh' # Pretty vertical list + abbr -a ll 'ls -alhF' # Include hidden files + + # Git + abbr -a gs 'git status' + abbr -a gd 'git diff' + abbr -a ga 'git add -A' + abbr -a gc 'git commit -m' + + # Vim + if command -v nvim > /dev/null + alias vim='nvim' # Use neovim if installed + abbr -a vimrc 'vim $HOME/.config/nvim/init.vim' # Edit ".vimrc" file + end + + # Improved CLI Tools + alias ping='prettyping --nolegend' + abbr -a cat 'bat' # Swap cat with bat + abbr -a oldcat 'cat' # If we need to use cat + abbr -a h 'http -Fh --all' # Curl site for headers + + # Fun CLI Tools + alias search='googler -j' + alias checkip='curl checkip.amazonaws.com' + alias weather='curl wttr.in' + alias moon='curl wttr.in/Moon' + alias ipinfo='curl ipinfo.io' + alias worldmap='telnet mapscii.me' + + # Dotfile and config shortcuts + alias reload='source $DOTS/fish.configlink/config.fish' # Refresh fish shell + abbr -a boot '$DOTS/scripts/bootstrap' + abbr -a sshc 'vim ~/.ssh/config' + abbr -a hosts 'sudo vim /etc/hosts' + abbr -a frc 'vim $HOME/.config/fish/config.fish' + abbr -a falias 'vim $HOME/.config/fish/functions/aliases.fish' + + # Cheat Sheets + alias proj='cd $PROJ' + abbr -a ssl 'openssl req -new -newkey rsa:2048 -nodes' \ + '-keyout server.key -out server.csr' + + # Docker + abbr -a dc '$DOTS/bin/docker_cleanup' + abbr -a dr 'docker run' + abbr -a db 'docker build . -t' + alias connect='docker run --rm -v ~/.aws:/root/.aws -v ~/.ssh:/root/.ssh -it connect-aws' + + # Terraform + abbr -a te 'terraform' + + # Python + abbr py 'python' + alias domisty='cd $PROJ/misty && ./buildrun.sh' + + # Rust + abbr -a ca 'cargo' + + # Non-MacOS + if [ (uname) = "Linux" ] + alias pbcopy='xclip -selection clipboard -in' + alias pbpaste='xclip -selection clipboard -out' + end + +end diff --git a/fish.configlink/functions/pyenv.fish b/fish.configlink/functions/pyenv.fish new file mode 100644 index 0000000..672b375 --- /dev/null +++ b/fish.configlink/functions/pyenv.fish @@ -0,0 +1,25 @@ +#!/usr/local/bin/fish + +function 'pyenv' --description 'Features for Pyenv virtualenvs' + + set -g PYENV_VERSIONS_DIR $HOME/.pyenv/versions + + abbr -a d 'deactivate' + alias pv='cd $PYENV_VERSIONS_DIR' + alias ip='source $PYENV_VERSIONS_DIR/ipython/bin/activate.fish' + + + function 'venv' --description 'Enter a pyenv virtualenv' + source ~/.pyenv/versions/$argv[1]/bin/activate.fish + end + + function 'ipy' --description 'Borrow iPython interpreter' + set STORED_VENV $VIRTUAL_ENV + source $PYENV_VERSIONS_DIR/ipython/bin/activate.fish; and \ + ipython; and \ + deactivate; and \ + if [ $STORED_VENV ]; + source $STORED_VENV/bin/activate.fish + end + end +end diff --git a/fish.configlink/functions/theme_gruvbox.fish b/fish.configlink/functions/theme_gruvbox.fish new file mode 100644 index 0000000..b08c09b --- /dev/null +++ b/fish.configlink/functions/theme_gruvbox.fish @@ -0,0 +1,141 @@ +#!/usr/bin/fish +function theme_gruvbox --description 'Apply gruvbox theme' + set -l mode 'dark' + if test (count $argv) -gt 0 + set mode $argv[1] + end + + set -g contrast 'medium' + if test (count $argv) -gt 1 + set contrast $argv[2] + end + + switch $contrast + case 'soft' + case 'medium' + case 'hard' + case '*' + set_color $fish_color_error + echo 'Unknown contrast $contrast, choose soft, medium or hard' + set_color $fish_color_normal + return 1 + end + + switch $mode + case 'light' + __theme_gruvbox_base + __theme_gruvbox_light + case 'dark' + __theme_gruvbox_base + __theme_gruvbox_dark + case '*' + set_color $fish_color_error + echo 'Unknown mode $mode, choose light or dark' + set_color $fish_color_normal + return 1 + end + __theme_gruvbox_palette + return 0 +end + +function __theme_gruvbox_base + __printf_color 1 'cc/24/1d' + __printf_color 2 '98/97/1a' + __printf_color 3 'd7/99/21' + __printf_color 4 '45/85/88' + __printf_color 5 'b1/62/86' + __printf_color 6 '68/9d/6a' +end + +function __theme_gruvbox_light + set -l bg 'fb/f1/c7' + switch $contrast + case "soft" + set bg 'f2/e5/bc' + case "hard" + set bg 'f9/f5/d7' + end + command printf "\033]11;rgb:$bg\007" + + set -l fg '3c/38/36' + command printf "\033]10;rgb:$fg\007" + + __printf_color 0 $bg + __printf_color 7 '7c/6f/64' + __printf_color 8 '92/83/74' + __printf_color 9 '9d/00/06' + __printf_color 10 '79/74/0e' + __printf_color 11 'b5/76/14' + __printf_color 12 '07/66/78' + __printf_color 13 '8f/3f/71' + __printf_color 14 '42/7b/58' + __printf_color 15 $fg +end + +function __theme_gruvbox_dark + set -l bg '28/28/28' + switch $contrast + case "soft" + set bg '32/30/2f' + case "hard" + set bg '1d/20/21' + end + command printf "\033]11;rgb:$bg\007" + + set -l fg 'eb/db/b2' + command printf "\033]10;rgb:$fg\007" + + __printf_color 0 $bg + __printf_color 7 'a8/99/84' + __printf_color 8 '92/83/74' + __printf_color 9 'fb/59/34' + __printf_color 10 'b8/bb/26' + __printf_color 11 'fa/bd/2f' + __printf_color 12 '83/a5/98' + __printf_color 13 'd3/86/9b' + __printf_color 14 '8e/c0/7c' + __printf_color 15 $fg +end + +function __theme_gruvbox_palette + __printf_color 236 '32/30/2f' + __printf_color 234 '1d/20/21' + + __printf_color 235 '28/28/28' + __printf_color 237 '3c/38/36' + __printf_color 239 '50/49/45' + __printf_color 241 '66/5c/54' + __printf_color 243 '7c/6f/64' + + __printf_color 244 '92/83/74' + __printf_color 245 '92/83/74' + + __printf_color 228 'f2/e5/bc' + __printf_color 230 'f9/f5/d7' + + __printf_color 229 'fb/f1/c7' + __printf_color 223 'eb/db/b2' + __printf_color 250 'd5/c4/a1' + __printf_color 248 'bd/ae/93' + __printf_color 246 'a8/99/84' + + __printf_color 167 'fb/49/34' + __printf_color 142 'b8/bb/26' + __printf_color 214 'fa/bd/2f' + __printf_color 109 '83/a5/98' + __printf_color 175 'd3/86/9b' + __printf_color 108 '8e/c0/7c' + __printf_color 208 'fe/80/19' + + __printf_color 88 '9d/00/06' + __printf_color 100 '79/74/0e' + __printf_color 136 'b5/76/14' + __printf_color 24 '07/66/78' + __printf_color 96 '8f/3f/71' + __printf_color 66 '42/7b/58' + __printf_color 130 'af/3a/03' +end + +function __printf_color + command printf "\033]4;$argv[1];rgb:$argv[2]\007" +end diff --git a/homebrew/Brewfile b/homebrew/Brewfile index c96d8a7..2ff714a 100644 --- a/homebrew/Brewfile +++ b/homebrew/Brewfile @@ -1,8 +1,12 @@ tap "homebrew/cask" +# Shells +brew "fish" + # Shell Navigation brew "exa" brew "tmux" +brew "autojump" # Shell Completion brew "tldr" diff --git a/homebrew/Caskfile b/homebrew/Caskfile index 1a1c510..b96744b 100644 --- a/homebrew/Caskfile +++ b/homebrew/Caskfile @@ -1,5 +1,6 @@ # Core Applications cask "iterm2" +cask "alacritty" cask "google-chrome" # Work Programs @@ -8,6 +9,10 @@ cask "zoomus" cask "onepassword" cask "dropbox" +# Fonts +tap "homebrew/cask-fonts" +cask "font-fira-mono-for-powerline" + # Secondary Tools cask "docker" cask "github-desktop" diff --git a/iterm/com.googlecode.iterm2.plist b/iterm/com.googlecode.iterm2.plist index b7c4a23..440d586 100644 --- a/iterm/com.googlecode.iterm2.plist +++ b/iterm/com.googlecode.iterm2.plist @@ -2,6 +2,8 @@ + AllowClipboardAccess + AppleAntiAliasingThreshold 1 ApplePressAndHoldEnabled @@ -643,7 +645,7 @@ NSWindow Frame SUUpdateAlert 2570 588 620 392 1920 0 1920 1177 NSWindow Frame iTerm Window 0 - 463 195 1290 921 0 0 1920 1177 + 265 136 1445 981 0 0 1920 1177 NSWindow Frame iTerm Window 1 341 175 1310 927 0 0 1920 1177 NeverWarnAboutShortLivedSessions_59B0BABD-32F0-4160-A076-C545EA0C9DD2 @@ -4561,7 +4563,7 @@ NoSyncLastTipTime 599358748.53944695 NoSyncLaunchExperienceControllerRunCount - 165 + 174 NoSyncNeverRemindPrefsChangesLostForFile NoSyncNeverRemindPrefsChangesLostForFile_selection @@ -5482,7 +5484,7 @@ SUHasLaunchedBefore SULastCheckTime - 2020-07-13T21:23:14Z + 2020-07-25T13:34:44Z SUSendProfileInfo SUUpdateRelaunchingMarker diff --git a/nvim.configlink/autoload/airline/themes/gruvbox.vim b/nvim.configlink/autoload/airline/themes/gruvbox.vim new file mode 100644 index 0000000..6862a81 --- /dev/null +++ b/nvim.configlink/autoload/airline/themes/gruvbox.vim @@ -0,0 +1,79 @@ +" ----------------------------------------------------------------------------- +" File: gruvbox.vim +" Description: Retro groove color scheme for Airline +" Author: morhetz +" Source: https://github.com/morhetz/gruvbox +" Last Modified: 12 Aug 2017 +" ----------------------------------------------------------------------------- + +let g:airline#themes#gruvbox#palette = {} + +function! airline#themes#gruvbox#refresh() + + let M0 = airline#themes#get_highlight('Identifier') + let accents_group = airline#themes#get_highlight('Special') + let modified_group = [M0[0], '', M0[2], '', ''] + let warning_group = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg']) + let error_group = airline#themes#get_highlight2(['Normal', 'bg'], ['WarningMsg', 'fg']) + + let s:N1 = airline#themes#get_highlight2(['Normal', 'bg'], ['StatusLineNC', 'bg']) + let s:N2 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['Pmenu', 'bg']) + let s:N3 = airline#themes#get_highlight2(['StatusLineNC', 'bg'], ['CursorLine', 'bg']) + let g:airline#themes#gruvbox#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let g:airline#themes#gruvbox#palette.normal_modified = { 'airline_c': modified_group } + let g:airline#themes#gruvbox#palette.normal.airline_warning = warning_group + let g:airline#themes#gruvbox#palette.normal_modified.airline_warning = warning_group + let g:airline#themes#gruvbox#palette.normal.airline_error = error_group + let g:airline#themes#gruvbox#palette.normal_modified.airline_error = error_group + + let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Identifier', 'fg']) + let s:I2 = s:N2 + let s:I3 = airline#themes#get_highlight2(['Normal', 'fg'], ['Pmenu', 'bg']) + let g:airline#themes#gruvbox#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#gruvbox#palette.insert_modified = g:airline#themes#gruvbox#palette.normal_modified + let g:airline#themes#gruvbox#palette.insert.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning + let g:airline#themes#gruvbox#palette.insert_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning + let g:airline#themes#gruvbox#palette.insert.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error + let g:airline#themes#gruvbox#palette.insert_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error + + let s:R1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Structure', 'fg']) + let s:R2 = s:I2 + let s:R3 = s:I3 + let g:airline#themes#gruvbox#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#gruvbox#palette.replace_modified = g:airline#themes#gruvbox#palette.normal_modified + let g:airline#themes#gruvbox#palette.replace.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning + let g:airline#themes#gruvbox#palette.replace_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning + let g:airline#themes#gruvbox#palette.replace.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error + let g:airline#themes#gruvbox#palette.replace_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error + + let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Question', 'fg']) + let s:V2 = s:N2 + let s:V3 = airline#themes#get_highlight2(['Normal', 'bg'], ['TabLine', 'fg']) + let g:airline#themes#gruvbox#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#gruvbox#palette.visual_modified = { 'airline_c': [ s:V3[0], '', s:V3[2], '', '' ] } + let g:airline#themes#gruvbox#palette.visual.airline_warning = g:airline#themes#gruvbox#palette.normal.airline_warning + let g:airline#themes#gruvbox#palette.visual_modified.airline_warning = g:airline#themes#gruvbox#palette.normal_modified.airline_warning + let g:airline#themes#gruvbox#palette.visual.airline_error = g:airline#themes#gruvbox#palette.normal.airline_error + let g:airline#themes#gruvbox#palette.visual_modified.airline_error = g:airline#themes#gruvbox#palette.normal_modified.airline_error + + let s:IA = airline#themes#get_highlight2(['TabLine', 'fg'], ['CursorLine', 'bg']) + let g:airline#themes#gruvbox#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#gruvbox#palette.inactive_modified = { 'airline_c': modified_group } + + let g:airline#themes#gruvbox#palette.accents = { 'red': accents_group } + + let s:TF = airline#themes#get_highlight2(['Normal', 'bg'], ['Normal', 'bg']) + let g:airline#themes#gruvbox#palette.tabline = { + \ 'airline_tab': s:N2, + \ 'airline_tabsel': s:N1, + \ 'airline_tabtype': s:V1, + \ 'airline_tabfill': s:TF, + \ 'airline_tabhid': s:IA, + \ 'airline_tabmod': s:I1 + \ } + +endfunction + +call airline#themes#gruvbox#refresh() + +" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: diff --git a/nvim.configlink/autoload/gruvbox.vim b/nvim.configlink/autoload/gruvbox.vim new file mode 100644 index 0000000..44bec6e --- /dev/null +++ b/nvim.configlink/autoload/gruvbox.vim @@ -0,0 +1,41 @@ +" ----------------------------------------------------------------------------- +" File: gruvbox.vim +" Description: Retro groove color scheme for Vim +" Author: morhetz +" Source: https://github.com/morhetz/gruvbox +" Last Modified: 09 Apr 2014 +" ----------------------------------------------------------------------------- + +function! gruvbox#invert_signs_toggle() + if g:gruvbox_invert_signs == 0 + let g:gruvbox_invert_signs=1 + else + let g:gruvbox_invert_signs=0 + endif + + colorscheme gruvbox +endfunction + +" Search Highlighting {{{ + +function! gruvbox#hls_show() + set hlsearch + call GruvboxHlsShowCursor() +endfunction + +function! gruvbox#hls_hide() + set nohlsearch + call GruvboxHlsHideCursor() +endfunction + +function! gruvbox#hls_toggle() + if &hlsearch + call gruvbox#hls_hide() + else + call gruvbox#hls_show() + endif +endfunction + +" }}} + +" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: diff --git a/nvim.configlink/autoload/lightline/colorscheme/gruvbox.vim b/nvim.configlink/autoload/lightline/colorscheme/gruvbox.vim new file mode 100644 index 0000000..4730c09 --- /dev/null +++ b/nvim.configlink/autoload/lightline/colorscheme/gruvbox.vim @@ -0,0 +1,57 @@ +" ----------------------------------------------------------------------------- +" File: gruvbox.vim +" Description: Gruvbox colorscheme for Lightline (itchyny/lightline.vim) +" Author: gmoe +" Source: https://github.com/morhetz/gruvbox +" Last Modified: 20 Sep 2017 +" ----------------------------------------------------------------------------- + +function! s:getGruvColor(group) + let guiColor = synIDattr(hlID(a:group), "fg", "gui") + let termColor = synIDattr(hlID(a:group), "fg", "cterm") + return [ guiColor, termColor ] +endfunction + +if exists('g:lightline') + + let s:bg0 = s:getGruvColor('GruvboxBg0') + let s:bg1 = s:getGruvColor('GruvboxBg1') + let s:bg2 = s:getGruvColor('GruvboxBg2') + let s:bg4 = s:getGruvColor('GruvboxBg4') + let s:fg1 = s:getGruvColor('GruvboxFg1') + let s:fg4 = s:getGruvColor('GruvboxFg4') + + let s:yellow = s:getGruvColor('GruvboxYellow') + let s:blue = s:getGruvColor('GruvboxBlue') + let s:aqua = s:getGruvColor('GruvboxAqua') + let s:orange = s:getGruvColor('GruvboxOrange') + let s:green = s:getGruvColor('GruvboxGreen') + + let s:p = {'normal':{}, 'inactive':{}, 'insert':{}, 'replace':{}, 'visual':{}, 'tabline':{}, 'terminal':{}} + let s:p.normal.left = [ [ s:bg0, s:fg4, 'bold' ], [ s:fg4, s:bg2 ] ] + let s:p.normal.right = [ [ s:bg0, s:fg4 ], [ s:fg4, s:bg2 ] ] + let s:p.normal.middle = [ [ s:fg4, s:bg1 ] ] + let s:p.inactive.right = [ [ s:bg4, s:bg1 ], [ s:bg4, s:bg1 ] ] + let s:p.inactive.left = [ [ s:bg4, s:bg1 ], [ s:bg4, s:bg1 ] ] + let s:p.inactive.middle = [ [ s:bg4, s:bg1 ] ] + let s:p.insert.left = [ [ s:bg0, s:blue, 'bold' ], [ s:fg1, s:bg2 ] ] + let s:p.insert.right = [ [ s:bg0, s:blue ], [ s:fg1, s:bg2 ] ] + let s:p.insert.middle = [ [ s:fg4, s:bg2 ] ] + let s:p.terminal.left = [ [ s:bg0, s:green, 'bold' ], [ s:fg1, s:bg2 ] ] + let s:p.terminal.right = [ [ s:bg0, s:green ], [ s:fg1, s:bg2 ] ] + let s:p.terminal.middle = [ [ s:fg4, s:bg2 ] ] + let s:p.replace.left = [ [ s:bg0, s:aqua, 'bold' ], [ s:fg1, s:bg2 ] ] + let s:p.replace.right = [ [ s:bg0, s:aqua ], [ s:fg1, s:bg2 ] ] + let s:p.replace.middle = [ [ s:fg4, s:bg2 ] ] + let s:p.visual.left = [ [ s:bg0, s:orange, 'bold' ], [ s:bg0, s:bg4 ] ] + let s:p.visual.right = [ [ s:bg0, s:orange ], [ s:bg0, s:bg4 ] ] + let s:p.visual.middle = [ [ s:fg4, s:bg1 ] ] + let s:p.tabline.left = [ [ s:fg4, s:bg2 ] ] + let s:p.tabline.tabsel = [ [ s:bg0, s:fg4 ] ] + let s:p.tabline.middle = [ [ s:bg0, s:bg0 ] ] + let s:p.tabline.right = [ [ s:bg0, s:orange ] ] + let s:p.normal.error = [ [ s:bg0, s:orange ] ] + let s:p.normal.warning = [ [ s:bg2, s:yellow ] ] + + let g:lightline#colorscheme#gruvbox#palette = lightline#colorscheme#flatten(s:p) +endif diff --git a/nvim.configlink/autoload/pathogen.vim b/nvim.configlink/autoload/pathogen.vim deleted file mode 100644 index 3582fbf..0000000 --- a/nvim.configlink/autoload/pathogen.vim +++ /dev/null @@ -1,264 +0,0 @@ -" pathogen.vim - path option manipulation -" Maintainer: Tim Pope -" Version: 2.4 - -" Install in ~/.vim/autoload (or ~\vimfiles\autoload). -" -" For management of individually installed plugins in ~/.vim/bundle (or -" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your -" .vimrc is the only other setup necessary. -" -" The API is documented inline below. - -if exists("g:loaded_pathogen") || &cp - finish -endif -let g:loaded_pathogen = 1 - -" Point of entry for basic default usage. Give a relative path to invoke -" pathogen#interpose() or an absolute path to invoke pathogen#surround(). -" Curly braces are expanded with pathogen#expand(): "bundle/{}" finds all -" subdirectories inside "bundle" inside all directories in the runtime path. -" If no arguments are given, defaults "bundle/{}", and also "pack/{}/start/{}" -" on versions of Vim without native package support. -function! pathogen#infect(...) abort - if a:0 - let paths = filter(reverse(copy(a:000)), 'type(v:val) == type("")') - else - let paths = ['bundle/{}', 'pack/{}/start/{}'] - endif - if has('packages') - call filter(paths, 'v:val !~# "^pack/[^/]*/start/[^/]*$"') - endif - let static = '^\%([$~\\/]\|\w:[\\/]\)[^{}*]*$' - for path in filter(copy(paths), 'v:val =~# static') - call pathogen#surround(path) - endfor - for path in filter(copy(paths), 'v:val !~# static') - if path =~# '^\%([$~\\/]\|\w:[\\/]\)' - call pathogen#surround(path) - else - call pathogen#interpose(path) - endif - endfor - call pathogen#cycle_filetype() - if pathogen#is_disabled($MYVIMRC) - return 'finish' - endif - return '' -endfunction - -" Split a path into a list. -function! pathogen#split(path) abort - if type(a:path) == type([]) | return a:path | endif - if empty(a:path) | return [] | endif - let split = split(a:path,'\\\@]','\\&','') - endif -endfunction - -" Like findfile(), but hardcoded to use the runtimepath. -function! pathogen#runtime_findfile(file,count) abort - let rtp = pathogen#join(1,pathogen#split(&rtp)) - let file = findfile(a:file,rtp,a:count) - if file ==# '' - return '' - else - return fnamemodify(file,':p') - endif -endfunction - -" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=': diff --git a/nvim.configlink/colors/gruvbox.vim b/nvim.configlink/colors/gruvbox.vim new file mode 100644 index 0000000..66246fb --- /dev/null +++ b/nvim.configlink/colors/gruvbox.vim @@ -0,0 +1,1418 @@ +" ----------------------------------------------------------------------------- +" File: gruvbox.vim +" Description: Retro groove color scheme for Vim +" Author: morhetz +" Source: https://github.com/morhetz/gruvbox +" Last Modified: 12 Aug 2017 +" ----------------------------------------------------------------------------- + +" Supporting code ------------------------------------------------------------- +" Initialisation: {{{ + +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let g:colors_name='gruvbox' + +if !(has('termguicolors') && &termguicolors) && !has('gui_running') && &t_Co != 256 + finish +endif + +" }}} +" Global Settings: {{{ + +if !exists('g:gruvbox_bold') + let g:gruvbox_bold=1 +endif +if !exists('g:gruvbox_italic') + if has('gui_running') || $TERM_ITALICS == 'true' + let g:gruvbox_italic=1 + else + let g:gruvbox_italic=0 + endif +endif +if !exists('g:gruvbox_undercurl') + let g:gruvbox_undercurl=1 +endif +if !exists('g:gruvbox_underline') + let g:gruvbox_underline=1 +endif +if !exists('g:gruvbox_inverse') + let g:gruvbox_inverse=1 +endif + +if !exists('g:gruvbox_guisp_fallback') || index(['fg', 'bg'], g:gruvbox_guisp_fallback) == -1 + let g:gruvbox_guisp_fallback='NONE' +endif + +if !exists('g:gruvbox_improved_strings') + let g:gruvbox_improved_strings=0 +endif + +if !exists('g:gruvbox_improved_warnings') + let g:gruvbox_improved_warnings=0 +endif + +if !exists('g:gruvbox_termcolors') + let g:gruvbox_termcolors=256 +endif + +if !exists('g:gruvbox_invert_indent_guides') + let g:gruvbox_invert_indent_guides=0 +endif + +if exists('g:gruvbox_contrast') + echo 'g:gruvbox_contrast is deprecated; use g:gruvbox_contrast_light and g:gruvbox_contrast_dark instead' +endif + +if !exists('g:gruvbox_contrast_dark') + let g:gruvbox_contrast_dark='medium' +endif + +if !exists('g:gruvbox_contrast_light') + let g:gruvbox_contrast_light='medium' +endif + +let s:is_dark=(&background == 'dark') + +" }}} +" Palette: {{{ + +" setup palette dictionary +let s:gb = {} + +" fill it with absolute colors +let s:gb.dark0_hard = ['#1d2021', 234] " 29-32-33 +let s:gb.dark0 = ['#282828', 235] " 40-40-40 +let s:gb.dark0_soft = ['#32302f', 236] " 50-48-47 +let s:gb.dark1 = ['#3c3836', 237] " 60-56-54 +let s:gb.dark2 = ['#504945', 239] " 80-73-69 +let s:gb.dark3 = ['#665c54', 241] " 102-92-84 +let s:gb.dark4 = ['#7c6f64', 243] " 124-111-100 +let s:gb.dark4_256 = ['#7c6f64', 243] " 124-111-100 + +let s:gb.gray_245 = ['#928374', 245] " 146-131-116 +let s:gb.gray_244 = ['#928374', 244] " 146-131-116 + +let s:gb.light0_hard = ['#f9f5d7', 230] " 249-245-215 +let s:gb.light0 = ['#fbf1c7', 229] " 253-244-193 +let s:gb.light0_soft = ['#f2e5bc', 228] " 242-229-188 +let s:gb.light1 = ['#ebdbb2', 223] " 235-219-178 +let s:gb.light2 = ['#d5c4a1', 250] " 213-196-161 +let s:gb.light3 = ['#bdae93', 248] " 189-174-147 +let s:gb.light4 = ['#a89984', 246] " 168-153-132 +let s:gb.light4_256 = ['#a89984', 246] " 168-153-132 + +let s:gb.bright_red = ['#fb4934', 167] " 251-73-52 +let s:gb.bright_green = ['#b8bb26', 142] " 184-187-38 +let s:gb.bright_yellow = ['#fabd2f', 214] " 250-189-47 +let s:gb.bright_blue = ['#83a598', 109] " 131-165-152 +let s:gb.bright_purple = ['#d3869b', 175] " 211-134-155 +let s:gb.bright_aqua = ['#8ec07c', 108] " 142-192-124 +let s:gb.bright_orange = ['#fe8019', 208] " 254-128-25 + +let s:gb.neutral_red = ['#cc241d', 124] " 204-36-29 +let s:gb.neutral_green = ['#98971a', 106] " 152-151-26 +let s:gb.neutral_yellow = ['#d79921', 172] " 215-153-33 +let s:gb.neutral_blue = ['#458588', 66] " 69-133-136 +let s:gb.neutral_purple = ['#b16286', 132] " 177-98-134 +let s:gb.neutral_aqua = ['#689d6a', 72] " 104-157-106 +let s:gb.neutral_orange = ['#d65d0e', 166] " 214-93-14 + +let s:gb.faded_red = ['#9d0006', 88] " 157-0-6 +let s:gb.faded_green = ['#79740e', 100] " 121-116-14 +let s:gb.faded_yellow = ['#b57614', 136] " 181-118-20 +let s:gb.faded_blue = ['#076678', 24] " 7-102-120 +let s:gb.faded_purple = ['#8f3f71', 96] " 143-63-113 +let s:gb.faded_aqua = ['#427b58', 66] " 66-123-88 +let s:gb.faded_orange = ['#af3a03', 130] " 175-58-3 + +" }}} +" Setup Emphasis: {{{ + +let s:bold = 'bold,' +if g:gruvbox_bold == 0 + let s:bold = '' +endif + +let s:italic = 'italic,' +if g:gruvbox_italic == 0 + let s:italic = '' +endif + +let s:underline = 'underline,' +if g:gruvbox_underline == 0 + let s:underline = '' +endif + +let s:undercurl = 'undercurl,' +if g:gruvbox_undercurl == 0 + let s:undercurl = '' +endif + +let s:inverse = 'inverse,' +if g:gruvbox_inverse == 0 + let s:inverse = '' +endif + +" }}} +" Setup Colors: {{{ + +let s:vim_bg = ['bg', 'bg'] +let s:vim_fg = ['fg', 'fg'] +let s:none = ['NONE', 'NONE'] + +" determine relative colors +if s:is_dark + let s:bg0 = s:gb.dark0 + if g:gruvbox_contrast_dark == 'soft' + let s:bg0 = s:gb.dark0_soft + elseif g:gruvbox_contrast_dark == 'hard' + let s:bg0 = s:gb.dark0_hard + endif + + let s:bg1 = s:gb.dark1 + let s:bg2 = s:gb.dark2 + let s:bg3 = s:gb.dark3 + let s:bg4 = s:gb.dark4 + + let s:gray = s:gb.gray_245 + + let s:fg0 = s:gb.light0 + let s:fg1 = s:gb.light1 + let s:fg2 = s:gb.light2 + let s:fg3 = s:gb.light3 + let s:fg4 = s:gb.light4 + + let s:fg4_256 = s:gb.light4_256 + + let s:red = s:gb.bright_red + let s:green = s:gb.bright_green + let s:yellow = s:gb.bright_yellow + let s:blue = s:gb.bright_blue + let s:purple = s:gb.bright_purple + let s:aqua = s:gb.bright_aqua + let s:orange = s:gb.bright_orange +else + let s:bg0 = s:gb.light0 + if g:gruvbox_contrast_light == 'soft' + let s:bg0 = s:gb.light0_soft + elseif g:gruvbox_contrast_light == 'hard' + let s:bg0 = s:gb.light0_hard + endif + + let s:bg1 = s:gb.light1 + let s:bg2 = s:gb.light2 + let s:bg3 = s:gb.light3 + let s:bg4 = s:gb.light4 + + let s:gray = s:gb.gray_244 + + let s:fg0 = s:gb.dark0 + let s:fg1 = s:gb.dark1 + let s:fg2 = s:gb.dark2 + let s:fg3 = s:gb.dark3 + let s:fg4 = s:gb.dark4 + + let s:fg4_256 = s:gb.dark4_256 + + let s:red = s:gb.faded_red + let s:green = s:gb.faded_green + let s:yellow = s:gb.faded_yellow + let s:blue = s:gb.faded_blue + let s:purple = s:gb.faded_purple + let s:aqua = s:gb.faded_aqua + let s:orange = s:gb.faded_orange +endif + +" reset to 16 colors fallback +if g:gruvbox_termcolors == 16 + let s:bg0[1] = 0 + let s:fg4[1] = 7 + let s:gray[1] = 8 + let s:red[1] = 9 + let s:green[1] = 10 + let s:yellow[1] = 11 + let s:blue[1] = 12 + let s:purple[1] = 13 + let s:aqua[1] = 14 + let s:fg1[1] = 15 +endif + +" save current relative colors back to palette dictionary +let s:gb.bg0 = s:bg0 +let s:gb.bg1 = s:bg1 +let s:gb.bg2 = s:bg2 +let s:gb.bg3 = s:bg3 +let s:gb.bg4 = s:bg4 + +let s:gb.gray = s:gray + +let s:gb.fg0 = s:fg0 +let s:gb.fg1 = s:fg1 +let s:gb.fg2 = s:fg2 +let s:gb.fg3 = s:fg3 +let s:gb.fg4 = s:fg4 + +let s:gb.fg4_256 = s:fg4_256 + +let s:gb.red = s:red +let s:gb.green = s:green +let s:gb.yellow = s:yellow +let s:gb.blue = s:blue +let s:gb.purple = s:purple +let s:gb.aqua = s:aqua +let s:gb.orange = s:orange + +" }}} +" Setup Terminal Colors For Neovim: {{{ + +if has('nvim') + let g:terminal_color_0 = s:bg0[0] + let g:terminal_color_8 = s:gray[0] + + let g:terminal_color_1 = s:gb.neutral_red[0] + let g:terminal_color_9 = s:red[0] + + let g:terminal_color_2 = s:gb.neutral_green[0] + let g:terminal_color_10 = s:green[0] + + let g:terminal_color_3 = s:gb.neutral_yellow[0] + let g:terminal_color_11 = s:yellow[0] + + let g:terminal_color_4 = s:gb.neutral_blue[0] + let g:terminal_color_12 = s:blue[0] + + let g:terminal_color_5 = s:gb.neutral_purple[0] + let g:terminal_color_13 = s:purple[0] + + let g:terminal_color_6 = s:gb.neutral_aqua[0] + let g:terminal_color_14 = s:aqua[0] + + let g:terminal_color_7 = s:fg4[0] + let g:terminal_color_15 = s:fg1[0] +endif + +" }}} +" Overload Setting: {{{ + +let s:hls_cursor = s:orange +if exists('g:gruvbox_hls_cursor') + let s:hls_cursor = get(s:gb, g:gruvbox_hls_cursor) +endif + +let s:number_column = s:none +if exists('g:gruvbox_number_column') + let s:number_column = get(s:gb, g:gruvbox_number_column) +endif + +let s:sign_column = s:bg1 + +if exists('g:gitgutter_override_sign_column_highlight') && + \ g:gitgutter_override_sign_column_highlight == 1 + let s:sign_column = s:number_column +else + let g:gitgutter_override_sign_column_highlight = 0 + + if exists('g:gruvbox_sign_column') + let s:sign_column = get(s:gb, g:gruvbox_sign_column) + endif +endif + +let s:color_column = s:bg1 +if exists('g:gruvbox_color_column') + let s:color_column = get(s:gb, g:gruvbox_color_column) +endif + +let s:vert_split = s:bg0 +if exists('g:gruvbox_vert_split') + let s:vert_split = get(s:gb, g:gruvbox_vert_split) +endif + +let s:invert_signs = '' +if exists('g:gruvbox_invert_signs') + if g:gruvbox_invert_signs == 1 + let s:invert_signs = s:inverse + endif +endif + +let s:invert_selection = s:inverse +if exists('g:gruvbox_invert_selection') + if g:gruvbox_invert_selection == 0 + let s:invert_selection = '' + endif +endif + +let s:invert_tabline = '' +if exists('g:gruvbox_invert_tabline') + if g:gruvbox_invert_tabline == 1 + let s:invert_tabline = s:inverse + endif +endif + +let s:italicize_comments = s:italic +if exists('g:gruvbox_italicize_comments') + if g:gruvbox_italicize_comments == 0 + let s:italicize_comments = '' + endif +endif + +let s:italicize_strings = '' +if exists('g:gruvbox_italicize_strings') + if g:gruvbox_italicize_strings == 1 + let s:italicize_strings = s:italic + endif +endif + +" }}} +" Highlighting Function: {{{ + +function! s:HL(group, fg, ...) + " Arguments: group, guifg, guibg, gui, guisp + + " foreground + let fg = a:fg + + " background + if a:0 >= 1 + let bg = a:1 + else + let bg = s:none + endif + + " emphasis + if a:0 >= 2 && strlen(a:2) + let emstr = a:2 + else + let emstr = 'NONE,' + endif + + " special fallback + if a:0 >= 3 + if g:gruvbox_guisp_fallback != 'NONE' + let fg = a:3 + endif + + " bg fallback mode should invert higlighting + if g:gruvbox_guisp_fallback == 'bg' + let emstr .= 'inverse,' + endif + endif + + let histring = [ 'hi', a:group, + \ 'guifg=' . fg[0], 'ctermfg=' . fg[1], + \ 'guibg=' . bg[0], 'ctermbg=' . bg[1], + \ 'gui=' . emstr[:-2], 'cterm=' . emstr[:-2] + \ ] + + " special + if a:0 >= 3 + call add(histring, 'guisp=' . a:3[0]) + endif + + execute join(histring, ' ') +endfunction + +" }}} +" Gruvbox Hi Groups: {{{ + +" memoize common hi groups +call s:HL('GruvboxFg0', s:fg0) +call s:HL('GruvboxFg1', s:fg1) +call s:HL('GruvboxFg2', s:fg2) +call s:HL('GruvboxFg3', s:fg3) +call s:HL('GruvboxFg4', s:fg4) +call s:HL('GruvboxGray', s:gray) +call s:HL('GruvboxBg0', s:bg0) +call s:HL('GruvboxBg1', s:bg1) +call s:HL('GruvboxBg2', s:bg2) +call s:HL('GruvboxBg3', s:bg3) +call s:HL('GruvboxBg4', s:bg4) + +call s:HL('GruvboxRed', s:red) +call s:HL('GruvboxRedBold', s:red, s:none, s:bold) +call s:HL('GruvboxGreen', s:green) +call s:HL('GruvboxGreenBold', s:green, s:none, s:bold) +call s:HL('GruvboxYellow', s:yellow) +call s:HL('GruvboxYellowBold', s:yellow, s:none, s:bold) +call s:HL('GruvboxBlue', s:blue) +call s:HL('GruvboxBlueBold', s:blue, s:none, s:bold) +call s:HL('GruvboxPurple', s:purple) +call s:HL('GruvboxPurpleBold', s:purple, s:none, s:bold) +call s:HL('GruvboxAqua', s:aqua) +call s:HL('GruvboxAquaBold', s:aqua, s:none, s:bold) +call s:HL('GruvboxOrange', s:orange) +call s:HL('GruvboxOrangeBold', s:orange, s:none, s:bold) + +call s:HL('GruvboxRedSign', s:red, s:sign_column, s:invert_signs) +call s:HL('GruvboxGreenSign', s:green, s:sign_column, s:invert_signs) +call s:HL('GruvboxYellowSign', s:yellow, s:sign_column, s:invert_signs) +call s:HL('GruvboxBlueSign', s:blue, s:sign_column, s:invert_signs) +call s:HL('GruvboxPurpleSign', s:purple, s:sign_column, s:invert_signs) +call s:HL('GruvboxAquaSign', s:aqua, s:sign_column, s:invert_signs) +call s:HL('GruvboxOrangeSign', s:orange, s:sign_column, s:invert_signs) + +" }}} + +" Vanilla colorscheme --------------------------------------------------------- +" General UI: {{{ + +" Normal text +call s:HL('Normal', s:fg1, s:bg0) + +" Correct background (see issue #7): +" --- Problem with changing between dark and light on 256 color terminal +" --- https://github.com/morhetz/gruvbox/issues/7 +if s:is_dark + set background=dark +else + set background=light +endif + +if version >= 700 + " Screen line that the cursor is + call s:HL('CursorLine', s:none, s:bg1) + " Screen column that the cursor is + hi! link CursorColumn CursorLine + + " Tab pages line filler + call s:HL('TabLineFill', s:bg4, s:bg1, s:invert_tabline) + " Active tab page label + call s:HL('TabLineSel', s:green, s:bg1, s:invert_tabline) + " Not active tab page label + hi! link TabLine TabLineFill + + " Match paired bracket under the cursor + call s:HL('MatchParen', s:none, s:bg3, s:bold) +endif + +if version >= 703 + " Highlighted screen columns + call s:HL('ColorColumn', s:none, s:color_column) + + " Concealed element: \lambda → λ + call s:HL('Conceal', s:blue, s:none) + + " Line number of CursorLine + call s:HL('CursorLineNr', s:yellow, s:bg1) +endif + +hi! link NonText GruvboxBg2 +hi! link SpecialKey GruvboxBg2 + +call s:HL('Visual', s:none, s:bg3, s:invert_selection) +hi! link VisualNOS Visual + +call s:HL('Search', s:yellow, s:bg0, s:inverse) +call s:HL('IncSearch', s:hls_cursor, s:bg0, s:inverse) + +call s:HL('Underlined', s:blue, s:none, s:underline) + +call s:HL('StatusLine', s:bg2, s:fg1, s:inverse) +call s:HL('StatusLineNC', s:bg1, s:fg4, s:inverse) + +" The column separating vertically split windows +call s:HL('VertSplit', s:bg3, s:vert_split) + +" Current match in wildmenu completion +call s:HL('WildMenu', s:blue, s:bg2, s:bold) + +" Directory names, special names in listing +hi! link Directory GruvboxGreenBold + +" Titles for output from :set all, :autocmd, etc. +hi! link Title GruvboxGreenBold + +" Error messages on the command line +call s:HL('ErrorMsg', s:bg0, s:red, s:bold) +" More prompt: -- More -- +hi! link MoreMsg GruvboxYellowBold +" Current mode message: -- INSERT -- +hi! link ModeMsg GruvboxYellowBold +" 'Press enter' prompt and yes/no questions +hi! link Question GruvboxOrangeBold +" Warning messages +hi! link WarningMsg GruvboxRedBold + +" }}} +" Gutter: {{{ + +" Line number for :number and :# commands +call s:HL('LineNr', s:bg4, s:number_column) + +" Column where signs are displayed +call s:HL('SignColumn', s:none, s:sign_column) + +" Line used for closed folds +call s:HL('Folded', s:gray, s:bg1, s:italic) +" Column where folds are displayed +call s:HL('FoldColumn', s:gray, s:bg1) + +" }}} +" Cursor: {{{ + +" Character under cursor +call s:HL('Cursor', s:none, s:none, s:inverse) +" Visual mode cursor, selection +hi! link vCursor Cursor +" Input moder cursor +hi! link iCursor Cursor +" Language mapping cursor +hi! link lCursor Cursor + +" }}} +" Syntax Highlighting: {{{ + +if g:gruvbox_improved_strings == 0 + hi! link Special GruvboxOrange +else + call s:HL('Special', s:orange, s:bg1, s:italicize_strings) +endif + +call s:HL('Comment', s:gray, s:none, s:italicize_comments) +call s:HL('Todo', s:vim_fg, s:vim_bg, s:bold . s:italic) +call s:HL('Error', s:red, s:vim_bg, s:bold . s:inverse) + +" Generic statement +hi! link Statement GruvboxRed +" if, then, else, endif, swicth, etc. +hi! link Conditional GruvboxRed +" for, do, while, etc. +hi! link Repeat GruvboxRed +" case, default, etc. +hi! link Label GruvboxRed +" try, catch, throw +hi! link Exception GruvboxRed +" sizeof, "+", "*", etc. +hi! link Operator Normal +" Any other keyword +hi! link Keyword GruvboxRed + +" Variable name +hi! link Identifier GruvboxBlue +" Function name +hi! link Function GruvboxGreenBold + +" Generic preprocessor +hi! link PreProc GruvboxAqua +" Preprocessor #include +hi! link Include GruvboxAqua +" Preprocessor #define +hi! link Define GruvboxAqua +" Same as Define +hi! link Macro GruvboxAqua +" Preprocessor #if, #else, #endif, etc. +hi! link PreCondit GruvboxAqua + +" Generic constant +hi! link Constant GruvboxPurple +" Character constant: 'c', '/n' +hi! link Character GruvboxPurple +" String constant: "this is a string" +if g:gruvbox_improved_strings == 0 + call s:HL('String', s:green, s:none, s:italicize_strings) +else + call s:HL('String', s:fg1, s:bg1, s:italicize_strings) +endif +" Boolean constant: TRUE, false +hi! link Boolean GruvboxPurple +" Number constant: 234, 0xff +hi! link Number GruvboxPurple +" Floating point constant: 2.3e10 +hi! link Float GruvboxPurple + +" Generic type +hi! link Type GruvboxYellow +" static, register, volatile, etc +hi! link StorageClass GruvboxOrange +" struct, union, enum, etc. +hi! link Structure GruvboxAqua +" typedef +hi! link Typedef GruvboxYellow + +" }}} +" Completion Menu: {{{ + +if version >= 700 + " Popup menu: normal item + call s:HL('Pmenu', s:fg1, s:bg2) + " Popup menu: selected item + call s:HL('PmenuSel', s:bg2, s:blue, s:bold) + " Popup menu: scrollbar + call s:HL('PmenuSbar', s:none, s:bg2) + " Popup menu: scrollbar thumb + call s:HL('PmenuThumb', s:none, s:bg4) +endif + +" }}} +" Diffs: {{{ + +call s:HL('DiffDelete', s:red, s:bg0, s:inverse) +call s:HL('DiffAdd', s:green, s:bg0, s:inverse) +"call s:HL('DiffChange', s:bg0, s:blue) +"call s:HL('DiffText', s:bg0, s:yellow) + +" Alternative setting +call s:HL('DiffChange', s:aqua, s:bg0, s:inverse) +call s:HL('DiffText', s:yellow, s:bg0, s:inverse) + +" }}} +" Spelling: {{{ + +if has("spell") + " Not capitalised word, or compile warnings + if g:gruvbox_improved_warnings == 0 + call s:HL('SpellCap', s:none, s:none, s:undercurl, s:red) + else + call s:HL('SpellCap', s:green, s:none, s:bold . s:italic) + endif + " Not recognized word + call s:HL('SpellBad', s:none, s:none, s:undercurl, s:blue) + " Wrong spelling for selected region + call s:HL('SpellLocal', s:none, s:none, s:undercurl, s:aqua) + " Rare word + call s:HL('SpellRare', s:none, s:none, s:undercurl, s:purple) +endif + +" }}} + +" Plugin specific ------------------------------------------------------------- +" EasyMotion: {{{ + +hi! link EasyMotionTarget Search +hi! link EasyMotionShade Comment + +" }}} +" Sneak: {{{ + +hi! link Sneak Search +hi! link SneakLabel Search + +" }}} +" Indent Guides: {{{ + +if !exists('g:indent_guides_auto_colors') + let g:indent_guides_auto_colors = 0 +endif + +if g:indent_guides_auto_colors == 0 + if g:gruvbox_invert_indent_guides == 0 + call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2) + call s:HL('IndentGuidesEven', s:vim_bg, s:bg1) + else + call s:HL('IndentGuidesOdd', s:vim_bg, s:bg2, s:inverse) + call s:HL('IndentGuidesEven', s:vim_bg, s:bg3, s:inverse) + endif +endif + +" }}} +" IndentLine: {{{ + +if !exists('g:indentLine_color_term') + let g:indentLine_color_term = s:bg2[1] +endif +if !exists('g:indentLine_color_gui') + let g:indentLine_color_gui = s:bg2[0] +endif + +" }}} +" Rainbow Parentheses: {{{ + +if !exists('g:rbpt_colorpairs') + let g:rbpt_colorpairs = + \ [ + \ ['blue', '#458588'], ['magenta', '#b16286'], + \ ['red', '#cc241d'], ['166', '#d65d0e'] + \ ] +endif + +let g:rainbow_guifgs = [ '#d65d0e', '#cc241d', '#b16286', '#458588' ] +let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ] + +if !exists('g:rainbow_conf') + let g:rainbow_conf = {} +endif +if !has_key(g:rainbow_conf, 'guifgs') + let g:rainbow_conf['guifgs'] = g:rainbow_guifgs +endif +if !has_key(g:rainbow_conf, 'ctermfgs') + let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs +endif + +let g:niji_dark_colours = g:rbpt_colorpairs +let g:niji_light_colours = g:rbpt_colorpairs + +"}}} +" GitGutter: {{{ + +hi! link GitGutterAdd GruvboxGreenSign +hi! link GitGutterChange GruvboxAquaSign +hi! link GitGutterDelete GruvboxRedSign +hi! link GitGutterChangeDelete GruvboxAquaSign + +" }}} +" GitCommit: "{{{ + +hi! link gitcommitSelectedFile GruvboxGreen +hi! link gitcommitDiscardedFile GruvboxRed + +" }}} +" Signify: {{{ + +hi! link SignifySignAdd GruvboxGreenSign +hi! link SignifySignChange GruvboxAquaSign +hi! link SignifySignDelete GruvboxRedSign + +" }}} +" Syntastic: {{{ + +call s:HL('SyntasticError', s:none, s:none, s:undercurl, s:red) +call s:HL('SyntasticWarning', s:none, s:none, s:undercurl, s:yellow) + +hi! link SyntasticErrorSign GruvboxRedSign +hi! link SyntasticWarningSign GruvboxYellowSign + +" }}} +" Signature: {{{ +hi! link SignatureMarkText GruvboxBlueSign +hi! link SignatureMarkerText GruvboxPurpleSign + +" }}} +" ShowMarks: {{{ + +hi! link ShowMarksHLl GruvboxBlueSign +hi! link ShowMarksHLu GruvboxBlueSign +hi! link ShowMarksHLo GruvboxBlueSign +hi! link ShowMarksHLm GruvboxBlueSign + +" }}} +" CtrlP: {{{ + +hi! link CtrlPMatch GruvboxYellow +hi! link CtrlPNoEntries GruvboxRed +hi! link CtrlPPrtBase GruvboxBg2 +hi! link CtrlPPrtCursor GruvboxBlue +hi! link CtrlPLinePre GruvboxBg2 + +call s:HL('CtrlPMode1', s:blue, s:bg2, s:bold) +call s:HL('CtrlPMode2', s:bg0, s:blue, s:bold) +call s:HL('CtrlPStats', s:fg4, s:bg2, s:bold) + +" }}} +" Startify: {{{ + +hi! link StartifyBracket GruvboxFg3 +hi! link StartifyFile GruvboxFg1 +hi! link StartifyNumber GruvboxBlue +hi! link StartifyPath GruvboxGray +hi! link StartifySlash GruvboxGray +hi! link StartifySection GruvboxYellow +hi! link StartifySpecial GruvboxBg2 +hi! link StartifyHeader GruvboxOrange +hi! link StartifyFooter GruvboxBg2 + +" }}} +" Vimshell: {{{ + +let g:vimshell_escape_colors = [ + \ s:bg4[0], s:red[0], s:green[0], s:yellow[0], + \ s:blue[0], s:purple[0], s:aqua[0], s:fg4[0], + \ s:bg0[0], s:red[0], s:green[0], s:orange[0], + \ s:blue[0], s:purple[0], s:aqua[0], s:fg0[0] + \ ] + +" }}} +" BufTabLine: {{{ + +call s:HL('BufTabLineCurrent', s:bg0, s:fg4) +call s:HL('BufTabLineActive', s:fg4, s:bg2) +call s:HL('BufTabLineHidden', s:bg4, s:bg1) +call s:HL('BufTabLineFill', s:bg0, s:bg0) + +" }}} +" Asynchronous Lint Engine: {{{ + +call s:HL('ALEError', s:none, s:none, s:undercurl, s:red) +call s:HL('ALEWarning', s:none, s:none, s:undercurl, s:yellow) +call s:HL('ALEInfo', s:none, s:none, s:undercurl, s:blue) + +hi! link ALEErrorSign GruvboxRedSign +hi! link ALEWarningSign GruvboxYellowSign +hi! link ALEInfoSign GruvboxBlueSign + +" }}} +" Dirvish: {{{ + +hi! link DirvishPathTail GruvboxAqua +hi! link DirvishArg GruvboxYellow + +" }}} +" Netrw: {{{ + +hi! link netrwDir GruvboxAqua +hi! link netrwClassify GruvboxAqua +hi! link netrwLink GruvboxGray +hi! link netrwSymLink GruvboxFg1 +hi! link netrwExe GruvboxYellow +hi! link netrwComment GruvboxGray +hi! link netrwList GruvboxBlue +hi! link netrwHelpCmd GruvboxAqua +hi! link netrwCmdSep GruvboxFg3 +hi! link netrwVersion GruvboxGreen + +" }}} +" NERDTree: {{{ + +hi! link NERDTreeDir GruvboxAqua +hi! link NERDTreeDirSlash GruvboxAqua + +hi! link NERDTreeOpenable GruvboxOrange +hi! link NERDTreeClosable GruvboxOrange + +hi! link NERDTreeFile GruvboxFg1 +hi! link NERDTreeExecFile GruvboxYellow + +hi! link NERDTreeUp GruvboxGray +hi! link NERDTreeCWD GruvboxGreen +hi! link NERDTreeHelp GruvboxFg1 + +hi! link NERDTreeToggleOn GruvboxGreen +hi! link NERDTreeToggleOff GruvboxRed + +" }}} +" Vim Multiple Cursors: {{{ + +call s:HL('multiple_cursors_cursor', s:none, s:none, s:inverse) +call s:HL('multiple_cursors_visual', s:none, s:bg2) + +" }}} +" coc.nvim: {{{ + +hi! link CocErrorSign GruvboxRedSign +hi! link CocWarningSign GruvboxOrangeSign +hi! link CocInfoSign GruvboxYellowSign +hi! link CocHintSign GruvboxBlueSign +hi! link CocErrorFloat GruvboxRed +hi! link CocWarningFloat GruvboxOrange +hi! link CocInfoFloat GruvboxYellow +hi! link CocHintFloat GruvboxBlue +hi! link CocDiagnosticsError GruvboxRed +hi! link CocDiagnosticsWarning GruvboxOrange +hi! link CocDiagnosticsInfo GruvboxYellow +hi! link CocDiagnosticsHint GruvboxBlue + +hi! link CocSelectedText GruvboxRed +hi! link CocCodeLens GruvboxGray + +call s:HL('CocErrorHighlight', s:none, s:none, s:undercurl, s:red) +call s:HL('CocWarningHighlight', s:none, s:none, s:undercurl, s:orange) +call s:HL('CocInfoHighlight', s:none, s:none, s:undercurl, s:yellow) +call s:HL('CocHintHighlight', s:none, s:none, s:undercurl, s:blue) + +" }}} + +" Filetype specific ----------------------------------------------------------- +" Diff: {{{ + +hi! link diffAdded GruvboxGreen +hi! link diffRemoved GruvboxRed +hi! link diffChanged GruvboxAqua + +hi! link diffFile GruvboxOrange +hi! link diffNewFile GruvboxYellow + +hi! link diffLine GruvboxBlue + +" }}} +" Html: {{{ + +hi! link htmlTag GruvboxBlue +hi! link htmlEndTag GruvboxBlue + +hi! link htmlTagName GruvboxAquaBold +hi! link htmlArg GruvboxAqua + +hi! link htmlScriptTag GruvboxPurple +hi! link htmlTagN GruvboxFg1 +hi! link htmlSpecialTagName GruvboxAquaBold + +call s:HL('htmlLink', s:fg4, s:none, s:underline) + +hi! link htmlSpecialChar GruvboxOrange + +call s:HL('htmlBold', s:vim_fg, s:vim_bg, s:bold) +call s:HL('htmlBoldUnderline', s:vim_fg, s:vim_bg, s:bold . s:underline) +call s:HL('htmlBoldItalic', s:vim_fg, s:vim_bg, s:bold . s:italic) +call s:HL('htmlBoldUnderlineItalic', s:vim_fg, s:vim_bg, s:bold . s:underline . s:italic) + +call s:HL('htmlUnderline', s:vim_fg, s:vim_bg, s:underline) +call s:HL('htmlUnderlineItalic', s:vim_fg, s:vim_bg, s:underline . s:italic) +call s:HL('htmlItalic', s:vim_fg, s:vim_bg, s:italic) + +" }}} +" Xml: {{{ + +hi! link xmlTag GruvboxBlue +hi! link xmlEndTag GruvboxBlue +hi! link xmlTagName GruvboxBlue +hi! link xmlEqual GruvboxBlue +hi! link docbkKeyword GruvboxAquaBold + +hi! link xmlDocTypeDecl GruvboxGray +hi! link xmlDocTypeKeyword GruvboxPurple +hi! link xmlCdataStart GruvboxGray +hi! link xmlCdataCdata GruvboxPurple +hi! link dtdFunction GruvboxGray +hi! link dtdTagName GruvboxPurple + +hi! link xmlAttrib GruvboxAqua +hi! link xmlProcessingDelim GruvboxGray +hi! link dtdParamEntityPunct GruvboxGray +hi! link dtdParamEntityDPunct GruvboxGray +hi! link xmlAttribPunct GruvboxGray + +hi! link xmlEntity GruvboxOrange +hi! link xmlEntityPunct GruvboxOrange +" }}} +" Vim: {{{ + +call s:HL('vimCommentTitle', s:fg4_256, s:none, s:bold . s:italicize_comments) + +hi! link vimNotation GruvboxOrange +hi! link vimBracket GruvboxOrange +hi! link vimMapModKey GruvboxOrange +hi! link vimFuncSID GruvboxFg3 +hi! link vimSetSep GruvboxFg3 +hi! link vimSep GruvboxFg3 +hi! link vimContinue GruvboxFg3 + +" }}} +" Clojure: {{{ + +hi! link clojureKeyword GruvboxBlue +hi! link clojureCond GruvboxOrange +hi! link clojureSpecial GruvboxOrange +hi! link clojureDefine GruvboxOrange + +hi! link clojureFunc GruvboxYellow +hi! link clojureRepeat GruvboxYellow +hi! link clojureCharacter GruvboxAqua +hi! link clojureStringEscape GruvboxAqua +hi! link clojureException GruvboxRed + +hi! link clojureRegexp GruvboxAqua +hi! link clojureRegexpEscape GruvboxAqua +call s:HL('clojureRegexpCharClass', s:fg3, s:none, s:bold) +hi! link clojureRegexpMod clojureRegexpCharClass +hi! link clojureRegexpQuantifier clojureRegexpCharClass + +hi! link clojureParen GruvboxFg3 +hi! link clojureAnonArg GruvboxYellow +hi! link clojureVariable GruvboxBlue +hi! link clojureMacro GruvboxOrange + +hi! link clojureMeta GruvboxYellow +hi! link clojureDeref GruvboxYellow +hi! link clojureQuote GruvboxYellow +hi! link clojureUnquote GruvboxYellow + +" }}} +" C: {{{ + +hi! link cOperator GruvboxPurple +hi! link cStructure GruvboxOrange + +" }}} +" Python: {{{ + +hi! link pythonBuiltin GruvboxOrange +hi! link pythonBuiltinObj GruvboxOrange +hi! link pythonBuiltinFunc GruvboxOrange +hi! link pythonFunction GruvboxAqua +hi! link pythonDecorator GruvboxRed +hi! link pythonInclude GruvboxBlue +hi! link pythonImport GruvboxBlue +hi! link pythonRun GruvboxBlue +hi! link pythonCoding GruvboxBlue +hi! link pythonOperator GruvboxRed +hi! link pythonException GruvboxRed +hi! link pythonExceptions GruvboxPurple +hi! link pythonBoolean GruvboxPurple +hi! link pythonDot GruvboxFg3 +hi! link pythonConditional GruvboxRed +hi! link pythonRepeat GruvboxRed +hi! link pythonDottedName GruvboxGreenBold + +" }}} +" CSS: {{{ + +hi! link cssBraces GruvboxBlue +hi! link cssFunctionName GruvboxYellow +hi! link cssIdentifier GruvboxOrange +hi! link cssClassName GruvboxGreen +hi! link cssColor GruvboxBlue +hi! link cssSelectorOp GruvboxBlue +hi! link cssSelectorOp2 GruvboxBlue +hi! link cssImportant GruvboxGreen +hi! link cssVendor GruvboxFg1 + +hi! link cssTextProp GruvboxAqua +hi! link cssAnimationProp GruvboxAqua +hi! link cssUIProp GruvboxYellow +hi! link cssTransformProp GruvboxAqua +hi! link cssTransitionProp GruvboxAqua +hi! link cssPrintProp GruvboxAqua +hi! link cssPositioningProp GruvboxYellow +hi! link cssBoxProp GruvboxAqua +hi! link cssFontDescriptorProp GruvboxAqua +hi! link cssFlexibleBoxProp GruvboxAqua +hi! link cssBorderOutlineProp GruvboxAqua +hi! link cssBackgroundProp GruvboxAqua +hi! link cssMarginProp GruvboxAqua +hi! link cssListProp GruvboxAqua +hi! link cssTableProp GruvboxAqua +hi! link cssFontProp GruvboxAqua +hi! link cssPaddingProp GruvboxAqua +hi! link cssDimensionProp GruvboxAqua +hi! link cssRenderProp GruvboxAqua +hi! link cssColorProp GruvboxAqua +hi! link cssGeneratedContentProp GruvboxAqua + +" }}} +" JavaScript: {{{ + +hi! link javaScriptBraces GruvboxFg1 +hi! link javaScriptFunction GruvboxAqua +hi! link javaScriptIdentifier GruvboxRed +hi! link javaScriptMember GruvboxBlue +hi! link javaScriptNumber GruvboxPurple +hi! link javaScriptNull GruvboxPurple +hi! link javaScriptParens GruvboxFg3 + +" }}} +" YAJS: {{{ + +hi! link javascriptImport GruvboxAqua +hi! link javascriptExport GruvboxAqua +hi! link javascriptClassKeyword GruvboxAqua +hi! link javascriptClassExtends GruvboxAqua +hi! link javascriptDefault GruvboxAqua + +hi! link javascriptClassName GruvboxYellow +hi! link javascriptClassSuperName GruvboxYellow +hi! link javascriptGlobal GruvboxYellow + +hi! link javascriptEndColons GruvboxFg1 +hi! link javascriptFuncArg GruvboxFg1 +hi! link javascriptGlobalMethod GruvboxFg1 +hi! link javascriptNodeGlobal GruvboxFg1 +hi! link javascriptBOMWindowProp GruvboxFg1 +hi! link javascriptArrayMethod GruvboxFg1 +hi! link javascriptArrayStaticMethod GruvboxFg1 +hi! link javascriptCacheMethod GruvboxFg1 +hi! link javascriptDateMethod GruvboxFg1 +hi! link javascriptMathStaticMethod GruvboxFg1 + +" hi! link javascriptProp GruvboxFg1 +hi! link javascriptURLUtilsProp GruvboxFg1 +hi! link javascriptBOMNavigatorProp GruvboxFg1 +hi! link javascriptDOMDocMethod GruvboxFg1 +hi! link javascriptDOMDocProp GruvboxFg1 +hi! link javascriptBOMLocationMethod GruvboxFg1 +hi! link javascriptBOMWindowMethod GruvboxFg1 +hi! link javascriptStringMethod GruvboxFg1 + +hi! link javascriptVariable GruvboxOrange +" hi! link javascriptVariable GruvboxRed +" hi! link javascriptIdentifier GruvboxOrange +" hi! link javascriptClassSuper GruvboxOrange +hi! link javascriptIdentifier GruvboxOrange +hi! link javascriptClassSuper GruvboxOrange + +" hi! link javascriptFuncKeyword GruvboxOrange +" hi! link javascriptAsyncFunc GruvboxOrange +hi! link javascriptFuncKeyword GruvboxAqua +hi! link javascriptAsyncFunc GruvboxAqua +hi! link javascriptClassStatic GruvboxOrange + +hi! link javascriptOperator GruvboxRed +hi! link javascriptForOperator GruvboxRed +hi! link javascriptYield GruvboxRed +hi! link javascriptExceptions GruvboxRed +hi! link javascriptMessage GruvboxRed + +hi! link javascriptTemplateSB GruvboxAqua +hi! link javascriptTemplateSubstitution GruvboxFg1 + +" hi! link javascriptLabel GruvboxBlue +" hi! link javascriptObjectLabel GruvboxBlue +" hi! link javascriptPropertyName GruvboxBlue +hi! link javascriptLabel GruvboxFg1 +hi! link javascriptObjectLabel GruvboxFg1 +hi! link javascriptPropertyName GruvboxFg1 + +hi! link javascriptLogicSymbols GruvboxFg1 +hi! link javascriptArrowFunc GruvboxYellow + +hi! link javascriptDocParamName GruvboxFg4 +hi! link javascriptDocTags GruvboxFg4 +hi! link javascriptDocNotation GruvboxFg4 +hi! link javascriptDocParamType GruvboxFg4 +hi! link javascriptDocNamedParamType GruvboxFg4 + +hi! link javascriptBrackets GruvboxFg1 +hi! link javascriptDOMElemAttrs GruvboxFg1 +hi! link javascriptDOMEventMethod GruvboxFg1 +hi! link javascriptDOMNodeMethod GruvboxFg1 +hi! link javascriptDOMStorageMethod GruvboxFg1 +hi! link javascriptHeadersMethod GruvboxFg1 + +hi! link javascriptAsyncFuncKeyword GruvboxRed +hi! link javascriptAwaitFuncKeyword GruvboxRed + +" }}} +" PanglossJS: {{{ + +hi! link jsClassKeyword GruvboxAqua +hi! link jsExtendsKeyword GruvboxAqua +hi! link jsExportDefault GruvboxAqua +hi! link jsTemplateBraces GruvboxAqua +hi! link jsGlobalNodeObjects GruvboxFg1 +hi! link jsGlobalObjects GruvboxFg1 +hi! link jsFunction GruvboxAqua +hi! link jsFuncParens GruvboxFg3 +hi! link jsParens GruvboxFg3 +hi! link jsNull GruvboxPurple +hi! link jsUndefined GruvboxPurple +hi! link jsClassDefinition GruvboxYellow + +" }}} +" TypeScript: {{{ + +hi! link typeScriptReserved GruvboxAqua +hi! link typeScriptLabel GruvboxAqua +hi! link typeScriptFuncKeyword GruvboxAqua +hi! link typeScriptIdentifier GruvboxOrange +hi! link typeScriptBraces GruvboxFg1 +hi! link typeScriptEndColons GruvboxFg1 +hi! link typeScriptDOMObjects GruvboxFg1 +hi! link typeScriptAjaxMethods GruvboxFg1 +hi! link typeScriptLogicSymbols GruvboxFg1 +hi! link typeScriptDocSeeTag Comment +hi! link typeScriptDocParam Comment +hi! link typeScriptDocTags vimCommentTitle +hi! link typeScriptGlobalObjects GruvboxFg1 +hi! link typeScriptParens GruvboxFg3 +hi! link typeScriptOpSymbols GruvboxFg3 +hi! link typeScriptHtmlElemProperties GruvboxFg1 +hi! link typeScriptNull GruvboxPurple +hi! link typeScriptInterpolationDelimiter GruvboxAqua + +" }}} +" PureScript: {{{ + +hi! link purescriptModuleKeyword GruvboxAqua +hi! link purescriptModuleName GruvboxFg1 +hi! link purescriptWhere GruvboxAqua +hi! link purescriptDelimiter GruvboxFg4 +hi! link purescriptType GruvboxFg1 +hi! link purescriptImportKeyword GruvboxAqua +hi! link purescriptHidingKeyword GruvboxAqua +hi! link purescriptAsKeyword GruvboxAqua +hi! link purescriptStructure GruvboxAqua +hi! link purescriptOperator GruvboxBlue + +hi! link purescriptTypeVar GruvboxFg1 +hi! link purescriptConstructor GruvboxFg1 +hi! link purescriptFunction GruvboxFg1 +hi! link purescriptConditional GruvboxOrange +hi! link purescriptBacktick GruvboxOrange + +" }}} +" CoffeeScript: {{{ + +hi! link coffeeExtendedOp GruvboxFg3 +hi! link coffeeSpecialOp GruvboxFg3 +hi! link coffeeCurly GruvboxOrange +hi! link coffeeParen GruvboxFg3 +hi! link coffeeBracket GruvboxOrange + +" }}} +" Ruby: {{{ + +hi! link rubyStringDelimiter GruvboxGreen +hi! link rubyInterpolationDelimiter GruvboxAqua + +" }}} +" ObjectiveC: {{{ + +hi! link objcTypeModifier GruvboxRed +hi! link objcDirective GruvboxBlue + +" }}} +" Go: {{{ + +hi! link goDirective GruvboxAqua +hi! link goConstants GruvboxPurple +hi! link goDeclaration GruvboxRed +hi! link goDeclType GruvboxBlue +hi! link goBuiltins GruvboxOrange + +" }}} +" Lua: {{{ + +hi! link luaIn GruvboxRed +hi! link luaFunction GruvboxAqua +hi! link luaTable GruvboxOrange + +" }}} +" MoonScript: {{{ + +hi! link moonSpecialOp GruvboxFg3 +hi! link moonExtendedOp GruvboxFg3 +hi! link moonFunction GruvboxFg3 +hi! link moonObject GruvboxYellow + +" }}} +" Java: {{{ + +hi! link javaAnnotation GruvboxBlue +hi! link javaDocTags GruvboxAqua +hi! link javaCommentTitle vimCommentTitle +hi! link javaParen GruvboxFg3 +hi! link javaParen1 GruvboxFg3 +hi! link javaParen2 GruvboxFg3 +hi! link javaParen3 GruvboxFg3 +hi! link javaParen4 GruvboxFg3 +hi! link javaParen5 GruvboxFg3 +hi! link javaOperator GruvboxOrange + +hi! link javaVarArg GruvboxGreen + +" }}} +" Elixir: {{{ + +hi! link elixirDocString Comment + +hi! link elixirStringDelimiter GruvboxGreen +hi! link elixirInterpolationDelimiter GruvboxAqua + +hi! link elixirModuleDeclaration GruvboxYellow + +" }}} +" Scala: {{{ + +" NB: scala vim syntax file is kinda horrible +hi! link scalaNameDefinition GruvboxFg1 +hi! link scalaCaseFollowing GruvboxFg1 +hi! link scalaCapitalWord GruvboxFg1 +hi! link scalaTypeExtension GruvboxFg1 + +hi! link scalaKeyword GruvboxRed +hi! link scalaKeywordModifier GruvboxRed + +hi! link scalaSpecial GruvboxAqua +hi! link scalaOperator GruvboxFg1 + +hi! link scalaTypeDeclaration GruvboxYellow +hi! link scalaTypeTypePostDeclaration GruvboxYellow + +hi! link scalaInstanceDeclaration GruvboxFg1 +hi! link scalaInterpolation GruvboxAqua + +" }}} +" Markdown: {{{ + +call s:HL('markdownItalic', s:fg3, s:none, s:italic) + +hi! link markdownH1 GruvboxGreenBold +hi! link markdownH2 GruvboxGreenBold +hi! link markdownH3 GruvboxYellowBold +hi! link markdownH4 GruvboxYellowBold +hi! link markdownH5 GruvboxYellow +hi! link markdownH6 GruvboxYellow + +hi! link markdownCode GruvboxAqua +hi! link markdownCodeBlock GruvboxAqua +hi! link markdownCodeDelimiter GruvboxAqua + +hi! link markdownBlockquote GruvboxGray +hi! link markdownListMarker GruvboxGray +hi! link markdownOrderedListMarker GruvboxGray +hi! link markdownRule GruvboxGray +hi! link markdownHeadingRule GruvboxGray + +hi! link markdownUrlDelimiter GruvboxFg3 +hi! link markdownLinkDelimiter GruvboxFg3 +hi! link markdownLinkTextDelimiter GruvboxFg3 + +hi! link markdownHeadingDelimiter GruvboxOrange +hi! link markdownUrl GruvboxPurple +hi! link markdownUrlTitleDelimiter GruvboxGreen + +call s:HL('markdownLinkText', s:gray, s:none, s:underline) +hi! link markdownIdDeclaration markdownLinkText + +" }}} +" Haskell: {{{ + +" hi! link haskellType GruvboxYellow +" hi! link haskellOperators GruvboxOrange +" hi! link haskellConditional GruvboxAqua +" hi! link haskellLet GruvboxOrange +" +hi! link haskellType GruvboxFg1 +hi! link haskellIdentifier GruvboxFg1 +hi! link haskellSeparator GruvboxFg1 +hi! link haskellDelimiter GruvboxFg4 +hi! link haskellOperators GruvboxBlue +" +hi! link haskellBacktick GruvboxOrange +hi! link haskellStatement GruvboxOrange +hi! link haskellConditional GruvboxOrange + +hi! link haskellLet GruvboxAqua +hi! link haskellDefault GruvboxAqua +hi! link haskellWhere GruvboxAqua +hi! link haskellBottom GruvboxAqua +hi! link haskellBlockKeywords GruvboxAqua +hi! link haskellImportKeywords GruvboxAqua +hi! link haskellDeclKeyword GruvboxAqua +hi! link haskellDeriving GruvboxAqua +hi! link haskellAssocType GruvboxAqua + +hi! link haskellNumber GruvboxPurple +hi! link haskellPragma GruvboxPurple + +hi! link haskellString GruvboxGreen +hi! link haskellChar GruvboxGreen + +" }}} +" Json: {{{ + +hi! link jsonKeyword GruvboxGreen +hi! link jsonQuote GruvboxGreen +hi! link jsonBraces GruvboxFg1 +hi! link jsonString GruvboxFg1 + +" }}} + + +" Functions ------------------------------------------------------------------- +" Search Highlighting Cursor {{{ + +function! GruvboxHlsShowCursor() + call s:HL('Cursor', s:bg0, s:hls_cursor) +endfunction + +function! GruvboxHlsHideCursor() + call s:HL('Cursor', s:none, s:none, s:inverse) +endfunction + +" }}} + +" vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker: diff --git a/nvim.configlink/colors/solarized.vim b/nvim.configlink/colors/solarized.vim deleted file mode 100644 index 70f5223..0000000 --- a/nvim.configlink/colors/solarized.vim +++ /dev/null @@ -1,1117 +0,0 @@ -" Name: Solarized vim colorscheme -" Author: Ethan Schoonover -" URL: http://ethanschoonover.com/solarized -" (see this url for latest release & screenshots) -" License: OSI approved MIT license (see end of this file) -" Created: In the middle of the night -" Modified: 2011 May 05 -" -" Usage "{{{ -" -" --------------------------------------------------------------------- -" ABOUT: -" --------------------------------------------------------------------- -" Solarized is a carefully designed selective contrast colorscheme with dual -" light and dark modes that runs in both GUI, 256 and 16 color modes. -" -" See the homepage above for screenshots and details. -" -" --------------------------------------------------------------------- -" OPTIONS: -" --------------------------------------------------------------------- -" See the "solarized.txt" help file included with this colorscheme (in the -" "doc" subdirectory) for information on options, usage, the Toggle Background -" function and more. If you have already installed Solarized, this is available -" from the Solarized menu and command line as ":help solarized" -" -" --------------------------------------------------------------------- -" INSTALLATION: -" --------------------------------------------------------------------- -" Two options for installation: manual or pathogen -" -" MANUAL INSTALLATION OPTION: -" --------------------------------------------------------------------- -" -" 1. Download the solarized distribution (available on the homepage above) -" and unarchive the file. -" 2. Move `solarized.vim` to your `.vim/colors` directory. -" 3. Move each of the files in each subdirectories to the corresponding .vim -" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload -" directory as .vim/autoload/togglebg.vim). -" -" RECOMMENDED PATHOGEN INSTALLATION OPTION: -" --------------------------------------------------------------------- -" -" 1. Download and install Tim Pope's Pathogen from: -" https://github.com/tpope/vim-pathogen -" -" 2. Next, move or clone the `vim-colors-solarized` directory so that it is -" a subdirectory of the `.vim/bundle` directory. -" -" a. **clone with git:** -" -" $ cd ~/.vim/bundle -" $ git clone git://github.com/altercation/vim-colors-solarized.git -" -" b. **or move manually into the pathogen bundle directory:** -" In the parent directory of vim-colors-solarized: -" -" $ mv vim-colors-solarized ~/.vim/bundle/ -" -" MODIFY VIMRC: -" -" After either Option 1 or Option 2 above, put the following two lines in your -" .vimrc: -" -" syntax enable -" set background=dark -" colorscheme solarized -" -" or, for the light background mode of Solarized: -" -" syntax enable -" set background=light -" colorscheme solarized -" -" I like to have a different background in GUI and terminal modes, so I can use -" the following if-then. However, I find vim's background autodetection to be -" pretty good and, at least with MacVim, I can leave this background value -" assignment out entirely and get the same results. -" -" if has('gui_running') -" set background=light -" else -" set background=dark -" endif -" -" See the Solarized homepage at http://ethanschoonover.com/solarized for -" screenshots which will help you select either the light or dark background. -" -" --------------------------------------------------------------------- -" COLOR VALUES -" --------------------------------------------------------------------- -" Download palettes and files from: http://ethanschoonover.com/solarized -" -" L\*a\*b values are canonical (White D65, Reference D50), other values are -" matched in sRGB space. -" -" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB -" --------- ------- ---- ------- ----------- ---------- ----------- ----------- -" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 -" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 -" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46 -" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51 -" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 -" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 -" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93 -" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 -" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 -" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 -" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 -" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 -" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 -" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 -" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 -" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 -" -" --------------------------------------------------------------------- -" COLORSCHEME HACKING -" --------------------------------------------------------------------- -" -" Useful commands for testing colorschemes: -" :source $VIMRUNTIME/syntax/hitest.vim -" :help highlight-groups -" :help cterm-colors -" :help group-name -" -" Useful links for developing colorschemes: -" http://www.vim.org/scripts/script.php?script_id=2937 -" http://vimcasts.org/episodes/creating-colorschemes-for-vim/ -" http://www.frexx.de/xterm-256-notes/" -" -" }}} -" Environment Specific Overrides "{{{ -" Allow or disallow certain features based on current terminal emulator or -" environment. - -" Terminals that support italics -let s:terms_italic=[ - \"rxvt", - \"gnome-terminal" - \] -" For reference only, terminals are known to be incomptible. -" Terminals that are in neither list need to be tested. -let s:terms_noitalic=[ - \"iTerm.app", - \"Apple_Terminal" - \] -if has("gui_running") - let s:terminal_italic=1 " TODO: could refactor to not require this at all -else - let s:terminal_italic=0 " terminals will be guilty until proven compatible - for term in s:terms_italic - if $TERM_PROGRAM =~ term - let s:terminal_italic=1 - endif - endfor -endif - -" }}} -" Default option values"{{{ -" --------------------------------------------------------------------- -" s:options_list is used to autogenerate a list of all non-default options -" using "call SolarizedOptions()" or with the "Generate .vimrc commands" -" Solarized menu option. See the "Menus" section below for the function itself. -let s:options_list=[ - \'" this block of commands has been autogenerated by solarized.vim and', - \'" includes the current, non-default Solarized option values.', - \'" To use, place these commands in your .vimrc file (replacing any', - \'" existing colorscheme commands). See also ":help solarized"', - \'', - \'" ------------------------------------------------------------------', - \'" Solarized Colorscheme Config', - \'" ------------------------------------------------------------------', - \] -let s:colorscheme_list=[ - \'syntax enable', - \'set background='.&background, - \'colorscheme solarized', - \] -let s:defaults_list=[ - \'" ------------------------------------------------------------------', - \'', - \'" The following items are available options, but do not need to be', - \'" included in your .vimrc as they are currently set to their defaults.', - \'' - \] -let s:lazycat_list=[ - \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"', - \'" ------------------------------------------------------------------', - \] - -function! s:SetOption(name,default) - if type(a:default) == type(0) - let l:wrap='' - let l:ewrap='' - else - let l:wrap='"' - let l:ewrap='\"' - endif - if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default - exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"' - exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")' - else - exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")' - endif -endfunction - -if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256) - let s:solarized_termtrans_default = 1 -else - let s:solarized_termtrans_default = 0 -endif -call s:SetOption("termtrans",s:solarized_termtrans_default) -call s:SetOption("degrade",0) -call s:SetOption("bold",1) -call s:SetOption("underline",1) -call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support -call s:SetOption("termcolors",16) -call s:SetOption("contrast","normal") -call s:SetOption("visibility","normal") -call s:SetOption("diffmode","normal") -call s:SetOption("hitrail",0) -call s:SetOption("menu",1) - -"}}} -" Colorscheme initialization "{{{ -" --------------------------------------------------------------------- -hi clear -if exists("syntax_on") - syntax reset -endif -let colors_name = "solarized" - -"}}} -" GUI & CSApprox hexadecimal palettes"{{{ -" --------------------------------------------------------------------- -" -" Set both gui and terminal color values in separate conditional statements -" Due to possibility that CSApprox is running (though I suppose we could just -" leave the hex values out entirely in that case and include only cterm colors) -" We also check to see if user has set solarized (force use of the -" neutral gray monotone palette component) -if (has("gui_running") && g:solarized_degrade == 0) - let s:vmode = "gui" - let s:base03 = "#002b36" - let s:base02 = "#073642" - let s:base01 = "#586e75" - let s:base00 = "#657b83" - let s:base0 = "#839496" - let s:base1 = "#93a1a1" - let s:base2 = "#eee8d5" - let s:base3 = "#fdf6e3" - let s:yellow = "#b58900" - let s:orange = "#cb4b16" - let s:red = "#dc322f" - let s:magenta = "#d33682" - let s:violet = "#6c71c4" - let s:blue = "#268bd2" - let s:cyan = "#2aa198" - "let s:green = "#859900" "original - let s:green = "#719e07" "experimental -elseif (has("gui_running") && g:solarized_degrade == 1) - " These colors are identical to the 256 color mode. They may be viewed - " while in gui mode via "let g:solarized_degrade=1", though this is not - " recommened and is for testing only. - let s:vmode = "gui" - let s:base03 = "#1c1c1c" - let s:base02 = "#262626" - let s:base01 = "#4e4e4e" - let s:base00 = "#585858" - let s:base0 = "#808080" - let s:base1 = "#8a8a8a" - let s:base2 = "#d7d7af" - let s:base3 = "#ffffd7" - let s:yellow = "#af8700" - let s:orange = "#d75f00" - let s:red = "#af0000" - let s:magenta = "#af005f" - let s:violet = "#5f5faf" - let s:blue = "#0087ff" - let s:cyan = "#00afaf" - let s:green = "#5f8700" -elseif g:solarized_termcolors != 256 && &t_Co >= 16 - let s:vmode = "cterm" - let s:base03 = "8" - let s:base02 = "0" - let s:base01 = "10" - let s:base00 = "11" - let s:base0 = "12" - let s:base1 = "14" - let s:base2 = "7" - let s:base3 = "15" - let s:yellow = "3" - let s:orange = "9" - let s:red = "1" - let s:magenta = "5" - let s:violet = "13" - let s:blue = "4" - let s:cyan = "6" - let s:green = "2" -elseif g:solarized_termcolors == 256 - let s:vmode = "cterm" - let s:base03 = "234" - let s:base02 = "235" - let s:base01 = "239" - let s:base00 = "240" - let s:base0 = "244" - let s:base1 = "245" - let s:base2 = "187" - let s:base3 = "230" - let s:yellow = "136" - let s:orange = "166" - let s:red = "124" - let s:magenta = "125" - let s:violet = "61" - let s:blue = "33" - let s:cyan = "37" - let s:green = "64" -else - let s:vmode = "cterm" - let s:bright = "* term=bold cterm=bold" -" let s:base03 = "0".s:bright -" let s:base02 = "0" -" let s:base01 = "2".s:bright -" let s:base00 = "3".s:bright -" let s:base0 = "4".s:bright -" let s:base1 = "6".s:bright -" let s:base2 = "7" -" let s:base3 = "7".s:bright -" let s:yellow = "3" -" let s:orange = "1".s:bright -" let s:red = "1" -" let s:magenta = "5" -" let s:violet = "5".s:bright -" let s:blue = "4" -" let s:cyan = "6" -" let s:green = "2" - let s:base03 = "DarkGray" " 0* - let s:base02 = "Black" " 0 - let s:base01 = "LightGreen" " 2* - let s:base00 = "LightYellow" " 3* - let s:base0 = "LightBlue" " 4* - let s:base1 = "LightCyan" " 6* - let s:base2 = "LightGray" " 7 - let s:base3 = "White" " 7* - let s:yellow = "DarkYellow" " 3 - let s:orange = "LightRed" " 1* - let s:red = "DarkRed" " 1 - let s:magenta = "DarkMagenta" " 5 - let s:violet = "LightMagenta" " 5* - let s:blue = "DarkBlue" " 4 - let s:cyan = "DarkCyan" " 6 - let s:green = "DarkGreen" " 2 - -endif -"}}} -" Formatting options and null values for passthrough effect "{{{ -" --------------------------------------------------------------------- - let s:none = "NONE" - let s:none = "NONE" - let s:t_none = "NONE" - let s:n = "NONE" - let s:c = ",undercurl" - let s:r = ",reverse" - let s:s = ",standout" - let s:ou = "" - let s:ob = "" -"}}} -" Background value based on termtrans setting "{{{ -" --------------------------------------------------------------------- -if (has("gui_running") || g:solarized_termtrans == 0) - let s:back = s:base03 -else - let s:back = "NONE" -endif -"}}} -" Alternate light scheme "{{{ -" --------------------------------------------------------------------- -if &background == "light" - let s:temp03 = s:base03 - let s:temp02 = s:base02 - let s:temp01 = s:base01 - let s:temp00 = s:base00 - let s:base03 = s:base3 - let s:base02 = s:base2 - let s:base01 = s:base1 - let s:base00 = s:base0 - let s:base0 = s:temp00 - let s:base1 = s:temp01 - let s:base2 = s:temp02 - let s:base3 = s:temp03 - if (s:back != "NONE") - let s:back = s:base03 - endif -endif -"}}} -" Optional contrast schemes "{{{ -" --------------------------------------------------------------------- -if g:solarized_contrast == "high" - let s:base01 = s:base00 - let s:base00 = s:base0 - let s:base0 = s:base1 - let s:base1 = s:base2 - let s:base2 = s:base3 - let s:back = s:back -endif -if g:solarized_contrast == "low" - let s:back = s:base02 - let s:ou = ",underline" -endif -"}}} -" Overrides dependent on user specified values and environment "{{{ -" --------------------------------------------------------------------- -if (g:solarized_bold == 0 || &t_Co == 8 ) - let s:b = "" - let s:bb = ",bold" -else - let s:b = ",bold" - let s:bb = "" -endif - -if g:solarized_underline == 0 - let s:u = "" -else - let s:u = ",underline" -endif - -if g:solarized_italic == 0 || s:terminal_italic == 0 - let s:i = "" -else - let s:i = ",italic" -endif -"}}} -" Highlighting primitives"{{{ -" --------------------------------------------------------------------- - -exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'" -exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'" -exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'" -exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'" -exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'" -exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'" -exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'" -exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'" -exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'" -exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'" -exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'" -exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'" -exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'" -exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'" -exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'" -exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'" -exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'" -exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'" - -exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'" -exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'" -exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'" -exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'" -exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'" -exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'" -exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'" -exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'" -exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'" -exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'" -exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'" -exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'" -exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'" -exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'" -exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'" -exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'" -exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'" -exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'" - -exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'" -exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" -exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" -exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" -exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'" -exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" -exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'" -exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'" -exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'" -exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" -exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" -exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'" -" revbb (reverse bold for bright colors) is only set to actual bold in low -" color terminals (t_co=8, such as OS X Terminal.app) and should only be used -" with colors 8-15. -exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'" -exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'" - -if has("gui_running") - exe "let s:sp_none = ' guisp=".s:none ."'" - exe "let s:sp_back = ' guisp=".s:back ."'" - exe "let s:sp_base03 = ' guisp=".s:base03 ."'" - exe "let s:sp_base02 = ' guisp=".s:base02 ."'" - exe "let s:sp_base01 = ' guisp=".s:base01 ."'" - exe "let s:sp_base00 = ' guisp=".s:base00 ."'" - exe "let s:sp_base0 = ' guisp=".s:base0 ."'" - exe "let s:sp_base1 = ' guisp=".s:base1 ."'" - exe "let s:sp_base2 = ' guisp=".s:base2 ."'" - exe "let s:sp_base3 = ' guisp=".s:base3 ."'" - exe "let s:sp_green = ' guisp=".s:green ."'" - exe "let s:sp_yellow = ' guisp=".s:yellow ."'" - exe "let s:sp_orange = ' guisp=".s:orange ."'" - exe "let s:sp_red = ' guisp=".s:red ."'" - exe "let s:sp_magenta = ' guisp=".s:magenta."'" - exe "let s:sp_violet = ' guisp=".s:violet ."'" - exe "let s:sp_blue = ' guisp=".s:blue ."'" - exe "let s:sp_cyan = ' guisp=".s:cyan ."'" -else - let s:sp_none = "" - let s:sp_back = "" - let s:sp_base03 = "" - let s:sp_base02 = "" - let s:sp_base01 = "" - let s:sp_base00 = "" - let s:sp_base0 = "" - let s:sp_base1 = "" - let s:sp_base2 = "" - let s:sp_base3 = "" - let s:sp_green = "" - let s:sp_yellow = "" - let s:sp_orange = "" - let s:sp_red = "" - let s:sp_magenta = "" - let s:sp_violet = "" - let s:sp_blue = "" - let s:sp_cyan = "" -endif - -"}}} -" Basic highlighting"{{{ -" --------------------------------------------------------------------- -" note that link syntax to avoid duplicate configuration doesn't work with the -" exe compiled formats - -exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back - -exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none -" *Comment any comment - -exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none -" *Constant any constant -" String a string constant: "this is a string" -" Character a character constant: 'c', '\n' -" Number a number constant: 234, 0xff -" Boolean a boolean constant: TRUE, false -" Float a floating point constant: 2.3e10 - -exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none -" *Identifier any variable name -" Function function name (also: methods for classes) -" -exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none -" *Statement any statement -" Conditional if, then, else, endif, switch, etc. -" Repeat for, do, while, etc. -" Label case, default, etc. -" Operator "sizeof", "+", "*", etc. -" Keyword any other keyword -" Exception try, catch, throw - -exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none -" *PreProc generic Preprocessor -" Include preprocessor #include -" Define preprocessor #define -" Macro same as Define -" PreCondit preprocessor #if, #else, #endif, etc. - -exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none -" *Type int, long, char, etc. -" StorageClass static, register, volatile, etc. -" Structure struct, union, enum, etc. -" Typedef A typedef - -exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none -" *Special any special symbol -" SpecialChar special character in a constant -" Tag you can use CTRL-] on this -" Delimiter character that needs attention -" SpecialComment special things inside a comment -" Debug debugging statements - -exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none -" *Underlined text that stands out, HTML links - -exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none -" *Ignore left blank, hidden |hl-Ignore| - -exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none -" *Error any erroneous construct - -exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none -" *Todo anything that needs extra attention; mostly the -" keywords TODO FIXME and XXX -" -"}}} -" Extended highlighting "{{{ -" --------------------------------------------------------------------- -if (g:solarized_visibility=="high") - exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none - exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none -elseif (g:solarized_visibility=="low") - exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none - exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none -else - exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02 - exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none -endif -exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb -exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb -exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb -exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none -exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none -exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none -exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02 -exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none -if ( has("gui_running") || &t_Co > 8 ) - exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00 -else - exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02 -endif -exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none -exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb -exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none -exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb -exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03 -exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 -if (g:solarized_diffmode=="high") -exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none -exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none -exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none -exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none -elseif (g:solarized_diffmode=="low") -exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green -exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow -exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none -exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue -else " normal - if has("gui_running") -exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green -exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow -exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02 -exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue - else -exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green -exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow -exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02 -exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue - endif -endif -exe "hi! SignColumn" .s:fmt_none .s:fg_base0 -exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red -exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet -exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan -exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow -exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb -exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb -exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb -exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb -exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 -exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 -exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu -exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02 -exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 -exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02 -exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0 -hi! link lCursor Cursor -exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01 - -"}}} -" vim syntax highlighting "{{{ -" --------------------------------------------------------------------- -"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital -"hi! link vimComment Comment -"hi! link vimLineComment Comment -hi! link vimVar Identifier -hi! link vimFunc Function -hi! link vimUserFunc Function -hi! link helpSpecial Special -hi! link vimSet Normal -hi! link vimSetEqual Normal -exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none -exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none -exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none -exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none -exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none -exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none -exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none -exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none -exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none -exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none -exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none -exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none -exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none -"}}} -" diff highlighting "{{{ -" --------------------------------------------------------------------- -hi! link diffAdded Statement -hi! link diffLine Identifier -"}}} -" git & gitcommit highlighting "{{{ -"git -"exe "hi! gitDateHeader" -"exe "hi! gitIdentityHeader" -"exe "hi! gitIdentityKeyword" -"exe "hi! gitNotesHeader" -"exe "hi! gitReflogHeader" -"exe "hi! gitKeyword" -"exe "hi! gitIdentity" -"exe "hi! gitEmailDelimiter" -"exe "hi! gitEmail" -"exe "hi! gitDate" -"exe "hi! gitMode" -"exe "hi! gitHashAbbrev" -"exe "hi! gitHash" -"exe "hi! gitReflogMiddle" -"exe "hi! gitReference" -"exe "hi! gitStage" -"exe "hi! gitType" -"exe "hi! gitDiffAdded" -"exe "hi! gitDiffRemoved" -"gitcommit -"exe "hi! gitcommitSummary" -exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none -hi! link gitcommitUntracked gitcommitComment -hi! link gitcommitDiscarded gitcommitComment -hi! link gitcommitSelected gitcommitComment -exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none -exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none -exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none -hi! link gitcommitNoBranch gitcommitBranch -exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none -exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none -"exe "hi! gitcommitUnmergedType" -"exe "hi! gitcommitType" -"exe "hi! gitcommitNoChanges" -"exe "hi! gitcommitHeader" -exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none -exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none -exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none -exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none -exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none -exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none -hi! link gitcommitDiscardedArrow gitcommitDiscardedFile -hi! link gitcommitSelectedArrow gitcommitSelectedFile -hi! link gitcommitUnmergedArrow gitcommitUnmergedFile -"exe "hi! gitcommitArrow" -"exe "hi! gitcommitOverflow" -"exe "hi! gitcommitBlank" -" }}} -" html highlighting "{{{ -" --------------------------------------------------------------------- -exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none -exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none -exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none -exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none -exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none -exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none -exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none -"}}} -" perl highlighting "{{{ -" --------------------------------------------------------------------- -exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none -exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none - -"}}} -" tex highlighting "{{{ -" --------------------------------------------------------------------- -exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none -exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none -"}}} -" ruby highlighting "{{{ -" --------------------------------------------------------------------- -exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold -"rubyInclude -"rubySharpBang -"rubyAccess -"rubyPredefinedVariable -"rubyBoolean -"rubyClassVariable -"rubyBeginEnd -"rubyRepeatModifier -"hi! link rubyArrayDelimiter Special " [ , , ] -"rubyCurlyBlock { , , } - -"hi! link rubyClass Keyword -"hi! link rubyModule Keyword -"hi! link rubyKeyword Keyword -"hi! link rubyOperator Operator -"hi! link rubyIdentifier Identifier -"hi! link rubyInstanceVariable Identifier -"hi! link rubyGlobalVariable Identifier -"hi! link rubyClassVariable Identifier -"hi! link rubyConstant Type -"}}} -" haskell syntax highlighting"{{{ -" --------------------------------------------------------------------- -" For use with syntax/haskell.vim : Haskell Syntax File -" http://www.vim.org/scripts/script.php?script_id=3034 -" See also Steffen Siering's github repository: -" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim -" --------------------------------------------------------------------- -" -" Treat True and False specially, see the plugin referenced above -let hs_highlight_boolean=1 -" highlight delims, see the plugin referenced above -let hs_highlight_delimiters=1 - -exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none - -exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none - -exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none -exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none -exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr -exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none -hi! link hsImportParams Delimiter -hi! link hsDelimTypeExport Delimiter -hi! link hsModuleStartLabel hsStructure -hi! link hsModuleWhereLabel hsModuleStartLabel - -" following is for the haskell-conceal plugin -" the first two items don't have an impact, but better safe -exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none - -"}}} -" pandoc markdown syntax highlighting "{{{ -" --------------------------------------------------------------------- - -"PandocHiLink pandocNormalBlock -exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital -exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none -hi! link pandocVerbatimBlockDeep pandocVerbatimBlock -hi! link pandocCodeBlock pandocVerbatimBlock -hi! link pandocCodeBlockDelim pandocVerbatimBlock -exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr - -" Definitions -" --------------------------------------------------------------------- -let s:fg_pdef = s:fg_violet -exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd -exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold -exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital -exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold -exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi -exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi -exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr -exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none - -" Tables -" --------------------------------------------------------------------- -let s:fg_ptable = s:fg_blue -exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none -hi! link pandocTableStructureTop pandocTableStructre -hi! link pandocTableStructureEnd pandocTableStructre -exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none -exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none -exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital -exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold -exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr -exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none - -" Headings -" --------------------------------------------------------------------- -let s:fg_phead = s:fg_orange -exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold -exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr -exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold - -" Links -" --------------------------------------------------------------------- -exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr -exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb -exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr -exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi -exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 -exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 -exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb -exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr -exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold -exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb -exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none -exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr -exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none - -" Main Styles -" --------------------------------------------------------------------- -exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital -exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold -exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr -exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none -exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none - -exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold -exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr -hi! link pandocEscapedCharacter pandocEscapePair -hi! link pandocLineBreak pandocEscapePair - -" Embedded Code -" --------------------------------------------------------------------- -exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold -hi! link pandocMetadataTitle pandocMetadata - -"}}} -" Utility autocommand "{{{ -" --------------------------------------------------------------------- -" In cases where Solarized is initialized inside a terminal vim session and -" then transferred to a gui session via the command `:gui`, the gui vim process -" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui` -" related code that sets gui specific values isn't executed. -" -" Currently, Solarized sets only the cterm or gui values for the colorscheme -" depending on gui or terminal mode. It's possible that, if the following -" autocommand method is deemed excessively poor form, that approach will be -" used again and the autocommand below will be dropped. -" -" However it seems relatively benign in this case to include the autocommand -" here. It fires only in cases where vim is transferring from terminal to gui -" mode (detected with the script scope s:vmode variable). It also allows for -" other potential terminal customizations that might make gui mode suboptimal. -" -autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif -"}}} -" Highlight Trailing Space {{{ -" Experimental: Different highlight when on cursorline -function! s:SolarizedHiTrail() - if g:solarized_hitrail==0 - hi! clear solarizedTrailingSpace - else - syn match solarizedTrailingSpace "\s*$" - exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red - endif -endfunction -augroup SolarizedHiTrail - autocmd! - if g:solarized_hitrail==1 - autocmd! Syntax * call s:SolarizedHiTrail() - autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif - endif -augroup END -" }}} -" Menus "{{{ -" --------------------------------------------------------------------- -" Turn off Solarized menu by including the following assignment in your .vimrc: -" -" let g:solarized_menu=0 - -function! s:SolarizedOptions() - new "new buffer - setf vim "vim filetype - let failed = append(0, s:defaults_list) - let failed = append(0, s:colorscheme_list) - let failed = append(0, s:options_list) - let failed = append(0, s:lazycat_list) - 0 "jump back to the top -endfunction -if !exists(":SolarizedOptions") - command SolarizedOptions :call s:SolarizedOptions() -endif - -function! SolarizedMenu() - if exists("g:loaded_solarized_menu") - try - silent! aunmenu Solarized - endtry - endif - let g:loaded_solarized_menu = 1 - - if g:colors_name == "solarized" && g:solarized_menu != 0 - - amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized - amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized - amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized - an &Solarized.&Contrast.-sep- - amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast' - - amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized - amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized - amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized - an &Solarized.&Visibility.-sep- - amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility' - - amenu &Solarized.&Background.&Toggle\ Background :ToggleBG - amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized - amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized - an &Solarized.&Background.-sep- - amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg - - if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif - exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized" - if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif - exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized" - if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif - exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized" - - amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized - amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized - amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized - - if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif - exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized" - an &Solarized.&Experimental.-sep- - amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail' - - an &Solarized.-sep1- - - amenu &Solarized.&Autogenerate\ options :SolarizedOptions - - an &Solarized.-sep2- - - amenu &Solarized.&Help.&Solarized\ Help :help solarized - amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg - amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu - - an 9999.77 &Help.&Solarized\ Colorscheme :help solarized - an 9999.78 &Help.&Toggle\ Background :help togglebg - an 9999.79 &Help.-sep3- - - endif -endfunction - -autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif - -"}}} -" License "{{{ -" --------------------------------------------------------------------- -" -" Copyright (c) 2011 Ethan Schoonover -" -" Permission is hereby granted, free of charge, to any person obtaining a copy -" of this software and associated documentation files (the "Software"), to deal -" in the Software without restriction, including without limitation the rights -" to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -" copies of the Software, and to permit persons to whom the Software is -" furnished to do so, subject to the following conditions: -" -" The above copyright notice and this permission notice shall be included in -" all copies or substantial portions of the Software. -" -" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -" AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -" OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -" THE SOFTWARE. -" -" vim:foldmethod=marker:foldlevel=0 -"}}} diff --git a/nvim.configlink/init.vim b/nvim.configlink/init.vim index 4f91a81..2d25bba 100644 --- a/nvim.configlink/init.vim +++ b/nvim.configlink/init.vim @@ -1,43 +1,43 @@ -syntax enable -set background=dark -" colorscheme solarized -set nu -set expandtab -set shiftwidth=4 -set softtabstop=4 -set ignorecase -set smartcase +" Vim Config + +syntax enable " Syntax highlighting +set termguicolors " Set to truecolor +colorscheme gruvbox " Installed in autoload/ and colors/ + +set number " Show line numbers +set relativenumber " Relative numbers instead of absolute +set expandtab " Tabs into spaces +set shiftwidth=4 " +set softtabstop=4 " +set ignorecase " Ignore case when searching +set smartcase " Check case when using capitals in search +set incsearch " Search while typing set pastetoggle= set visualbell -" remember last position +" Remember last position if has("autocmd") au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif endif -" path manipulation -execute pathogen#infect() -filetype plugin indent on - -" terraform plugin +" Terraform plugin let g:terraform_align=1 let g:terraform_remap_spacebar=1 -" powerline -let g:Powerline_symbols = 'fancy' - " line type let &t_ti.="\e[1 q" let &t_SI.="\e[5 q" let &t_EI.="\e[1 q" let &t_te.="\e[0 q" -" better backup, swap and undo storage -set noswapfile -set backup -set undofile +" Better backup, swap and undo storage +set noswapfile " Instead of swaps, create backups (less annoying) +set backup " Easier to recover and more secure +set undofile " Keeps undos after quit set backupdir=~/.vim/dirs/backup set undodir=~/.vim/dirs/undo + +" Create backup directories if they don't exist if !isdirectory(&backupdir) call mkdir(&backupdir, "p") endif @@ -45,14 +45,10 @@ if !isdirectory(&undodir) call mkdir(&undodir, "p") endif -" 256 colors -" if !has("gui_running") -" set nocompatible -" colorscheme solarized -" set mouse=a -" endif +" Mouse interaction / scrolling set mouse=nv -" change title +" Change title let &titlestring = @% set title + diff --git a/starship/starship.toml.configlink b/starship/starship.toml.configlink index 4794186..e57c9c5 100644 --- a/starship/starship.toml.configlink +++ b/starship/starship.toml.configlink @@ -1,6 +1,6 @@ # Don't print a new line at the start of the prompt add_newline = false -prompt_order = ["directory", "git_branch", "git_status", "character"] +prompt_order = ["directory", "git_branch", "python", "git_status", "character"] # Replace the "❯" symbol in the prompt with "➜" [character] # The name of the module we are configuring is "character" @@ -11,6 +11,13 @@ symbol = "❯" truncate_to_repo = true truncation_length = 100 +[git_branch] +truncation_length = 1 +truncation_symbol = "" + [git_status] prefix = "" suffix = "" + +[python] +symbol = ""