parent
b039bf70fd
commit
954642753f
53 changed files with 548 additions and 541 deletions
@ -0,0 +1,83 @@ |
||||
-- Set leader and localleader here as a numeber of plugins will use them |
||||
vim.g.mapleader = " " |
||||
vim.g.maplocalleader = "\\" |
||||
|
||||
vim.cmd([[ |
||||
syntax on |
||||
filetype indent plugin on |
||||
]]) |
||||
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" |
||||
if not vim.loop.fs_stat(lazypath) then |
||||
vim.fn.system({ |
||||
"git", |
||||
"clone", |
||||
"--filter=blob:none", |
||||
"https://github.com/folke/lazy.nvim.git", |
||||
"--branch=stable", -- latest stable release |
||||
lazypath, |
||||
}) |
||||
end |
||||
vim.opt.rtp:prepend(lazypath) |
||||
|
||||
require("lazy").setup("plugins") |
||||
-- require("lazy").setup({ { |
||||
-- "ellisonleao/gruvbox.nvim", |
||||
-- lazy = false, |
||||
-- priority=1000 |
||||
-- },{ |
||||
-- "nvim-treesitter/nvim-treesitter", |
||||
-- build = ":TSUpdate" |
||||
-- } |
||||
-- }) |
||||
-- |
||||
vim.cmd("colorscheme gruvbox") |
||||
|
||||
vim.cmd([[ |
||||
|
||||
|
||||
"if has('packages') |
||||
" packadd! AnsiEsc.vim |
||||
" packadd! fzf.vim |
||||
" packadd! gruvbox |
||||
" packadd! gruvbox-baby |
||||
" packadd! lexima.vim |
||||
" packadd! loupe |
||||
" packadd! ultisnips |
||||
" packadd! vim-fugitive |
||||
" packadd! vim-json |
||||
" packadd! vim-less |
||||
" packadd! vim-projectionist |
||||
" packadd! vim-repeat |
||||
" packadd! vim-snippets |
||||
" packadd! vim-surround |
||||
" packadd! vim-tridactyl |
||||
" packadd! vim-vinegar |
||||
" packadd! vim-openscad |
||||
" if has('nvim') |
||||
" packadd! deoplete.nvim |
||||
" packadd! deoplete-abook |
||||
" packadd! deoplete-lsp |
||||
" packadd! deoplete-notmuch |
||||
" packadd! firenvim |
||||
" packadd! nvim-treesitter |
||||
" " packadd! nvim-biscuits |
||||
" lua <<EOF |
||||
" if ( vim.lsp ~= nil ) then |
||||
" vim.cmd "packadd! nvim-lspconfig" |
||||
" end |
||||
"EOF |
||||
" endif |
||||
"endif |
||||
|
||||
" Enables filetype detection as well as filetype specific indent rules and plugins |
||||
"filetype indent plugin on |
||||
" Enables filetype specific syntaxs |
||||
|
||||
"syntax on |
||||
|
||||
""let g:UltiSnipsExpandTrigger="<tab>" |
||||
""let g:UltiSnipsJumpForwardTrigger="<tab>" |
||||
""let g:UltiSnipsJumpBackwardTrigger="<S-tab>" |
||||
|
||||
]]) |
@ -1,46 +0,0 @@ |
||||
let mapleader = "\<Space>" |
||||
let maplocalleader = "\\" |
||||
|
||||
|
||||
if has('packages') |
||||
packadd! AnsiEsc.vim |
||||
packadd! fzf.vim |
||||
packadd! gruvbox |
||||
packadd! lexima.vim |
||||
packadd! ultisnips |
||||
packadd! vim-fugitive |
||||
packadd! vim-json |
||||
packadd! vim-less |
||||
packadd! vim-projectionist |
||||
packadd! vim-repeat |
||||
packadd! vim-snippets |
||||
packadd! vim-surround |
||||
packadd! vim-tridactyl |
||||
packadd! vim-vinegar |
||||
if has('nvim') |
||||
packadd! deoplete.nvim |
||||
packadd! deoplete-abook |
||||
packadd! deoplete-lsp |
||||
packadd! deoplete-notmuch |
||||
packadd! firenvim |
||||
packadd! nvim-treesitter |
||||
packadd! nvim-biscuits |
||||
lua <<EOF |
||||
if ( vim.lsp ~= nil ) then |
||||
vim.cmd "packadd! nvim-lspconfig" |
||||
end |
||||
EOF |
||||
endif |
||||
endif |
||||
|
||||
" Enables filetype detection as well as filetype specific indent rules and |
||||
" plugins |
||||
filetype indent plugin on " |
||||
" Enables filetype specific syntaxs |
||||
syntax on |
||||
|
||||
let g:UltiSnipsExpandTrigger="<tab>" |
||||
let g:UltiSnipsJumpForwardTrigger="<tab>" |
||||
let g:UltiSnipsJumpBackwardTrigger="<S-tab>" |
||||
|
||||
|
@ -0,0 +1,19 @@ |
||||
{ |
||||
"LuaSnip": { "branch": "master", "commit": "0df29db3543837f8b41597f2640397c5ec792b7b" }, |
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, |
||||
"cmp-cmdline": { "branch": "main", "commit": "8ee981b4a91f536f52add291594e89fb6645e451" }, |
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, |
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, |
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, |
||||
"friendly-snippets": { "branch": "main", "commit": "53d3df271d031c405255e99410628c26a8f0d2b0" }, |
||||
"fzf": { "branch": "master", "commit": "82954258c1c9f61bb6bb764c51470ffbcee01b6c" }, |
||||
"fzf.vim": { "branch": "master", "commit": "1e054c1d075d87903647db9320116d360eb8b024" }, |
||||
"gruvbox.nvim": { "branch": "main", "commit": "0940564208a490c173216c3b7d2188b0a5ad3491" }, |
||||
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, |
||||
"nvim-cmp": { "branch": "main", "commit": "41d7633e4146dce1072de32cea31ee31b056a131" }, |
||||
"nvim-lspconfig": { "branch": "master", "commit": "bd405e45c5fb122c16af8f87fa2dd7ab1981b243" }, |
||||
"nvim-surround": { "branch": "main", "commit": "633a0ab03159569a66b65671b0ffb1a6aed6cf18" }, |
||||
"nvim-treesitter": { "branch": "master", "commit": "a6c655629cad421e432aa84af32cbfe35375113a" }, |
||||
"ultimate-autopair.nvim": { "branch": "v0.6", "commit": "41d8b52183df39096d5a2918467cd6266282f64b" }, |
||||
"vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" } |
||||
} |
@ -0,0 +1,107 @@ |
||||
return {{ |
||||
"neovim/nvim-lspconfig", |
||||
dependencies={ |
||||
"hrsh7th/cmp-nvim-lsp", |
||||
}, |
||||
config=function() |
||||
local servers = { 'lua_ls', 'vimls', 'bashls', 'vale_ls' } |
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities() |
||||
for _, lsp in ipairs(servers) do |
||||
require('lspconfig')[lsp].setup { |
||||
capabilities = capabilities, |
||||
} |
||||
end |
||||
|
||||
|
||||
-- Use LspAttach autocommand to only map the following keys |
||||
-- after the language server attaches to the current buffer |
||||
vim.api.nvim_create_autocmd('LspAttach', { |
||||
group = vim.api.nvim_create_augroup('UserLspConfig', {}), |
||||
callback = function(ev) |
||||
-- Enable completion triggered by <c-x><c-o> |
||||
vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' |
||||
|
||||
-- Buffer local mappings. |
||||
-- See `:help vim.lsp.*` for documentation on any of the below functions |
||||
local opts = { buffer = ev.buf } |
||||
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) |
||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) |
||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) |
||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) |
||||
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts) |
||||
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts) |
||||
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts) |
||||
vim.keymap.set('n', '<space>wl', function() |
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders())) |
||||
end, opts) |
||||
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts) |
||||
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts) |
||||
vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts) |
||||
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) |
||||
--vim.keymap.set('n', '<space>f', function() |
||||
-- vim.lsp.buf.format { async = true } |
||||
--end, opts) |
||||
end, |
||||
}) |
||||
|
||||
end, |
||||
--},{ |
||||
-- "L3MON4D3/LuaSnip", |
||||
-- dependencies={ |
||||
-- "saadparwaiz1/cmp_luasnip", |
||||
-- "rafamadriz/friendly-snippets" |
||||
-- }, |
||||
-- config=function () |
||||
-- require("luasnip.loaders.from_vscode").lazy_load() |
||||
-- end, |
||||
-- keys = { |
||||
-- { "<tab>", function () |
||||
-- return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>" |
||||
-- end, expr = true, silent = true, mode = "i" |
||||
-- }, |
||||
-- { "<tab>", function() require("luasnip").jump(1) end, mode = "s" }, |
||||
-- { "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } }, |
||||
-- } |
||||
},{ |
||||
"hrsh7th/nvim-cmp", |
||||
dependencies={ |
||||
"neovim/nvim-lspconfig", |
||||
--"L3MON4D3/LuaSnip", |
||||
"saadparwaiz1/cmp_luasnip", |
||||
"hrsh7th/cmp-buffer", |
||||
"hrsh7th/cmp-path", |
||||
"hrsh7th/cmp-cmdline", |
||||
}, |
||||
opts=function() |
||||
local cmp = require("cmp") |
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities() |
||||
|
||||
return { |
||||
snippet = { |
||||
-- REQUIRED - you must specify a snippet engine |
||||
expand = function(args) |
||||
--vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. |
||||
require('luasnip').lsp_expand(args.body) -- For `luasnip` users. |
||||
-- require('snippy').expand_snippet(args.body) -- For `snippy` users. |
||||
-- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. |
||||
end, |
||||
}, |
||||
mapping = cmp.mapping.preset.insert({ |
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4), |
||||
['<C-f>'] = cmp.mapping.scroll_docs(4), |
||||
['<C-Space>'] = cmp.mapping.complete(), |
||||
['<C-e>'] = cmp.mapping.abort(), |
||||
['<CR>'] = cmp.mapping.confirm({ select = true }), |
||||
}), |
||||
sources = cmp.config.sources({ |
||||
{ name = "nvim_lsp" }, |
||||
{ name = "luasnip" }, |
||||
{ name = "path" }, |
||||
{ name = "buffer" } |
||||
}) |
||||
} |
||||
end |
||||
}} |
||||
|
||||
|
||||
|
@ -0,0 +1,25 @@ |
||||
return{ { |
||||
"junegunn/fzf.vim", |
||||
dependencies="junegunn/fzf", |
||||
init = function( lazy ) |
||||
vim.g.fzf_command_prefix="Fzf" |
||||
end, |
||||
config = function( lazy, opts) |
||||
vim.g.fzf_layout = { |
||||
window = { |
||||
width= 0.9, |
||||
height=0.8 |
||||
} |
||||
} |
||||
|
||||
vim.keymap.set('n', '<leader>f', ':FzfFiles<cr>', {desc="Fuzzy find files"}) |
||||
vim.keymap.set('n', '<leader>b', ':FzfBuffers<cr>', {desc="Fuzzy find buffers"}) |
||||
vim.keymap.set('n', '<leader>h', ':FzfHelptags<cr>', {desc="Fuzzy find help tags"}) |
||||
vim.keymap.set('n', '<leader>/', ':FzfRg ', {desc="Fuzzy find RG"}) |
||||
vim.keymap.set('n', '\\/', ':FzfRg ^#<cr> ', {desc="Fuzzy find headings"}) |
||||
|
||||
end |
||||
} } |
||||
|
||||
|
||||
|
@ -0,0 +1,21 @@ |
||||
return {{ |
||||
"ellisonleao/gruvbox.nvim", |
||||
lazy = false, |
||||
priority=1000, |
||||
opts={ |
||||
terminal_colors = true, |
||||
italic = { |
||||
strings = false, |
||||
emphasis = false, |
||||
comments = true, |
||||
operators = false, |
||||
folds = true, |
||||
} |
||||
} |
||||
}} |
||||
|
||||
-- Colourscheme settings |
||||
-- vim.g.gruvbox_italic=1 |
||||
-- vim.g.gruvbox_hls_cursor="red" |
||||
-- vim.opt.termguicolors=true |
||||
--vim.cmd('colorscheme gruvbox') |
@ -0,0 +1,3 @@ |
||||
return { { |
||||
"tpope/vim-fugitive" |
||||
} } |
@ -0,0 +1,4 @@ |
||||
return {{ |
||||
"kylechui/nvim-surround", |
||||
opts={} |
||||
}} |
@ -0,0 +1,14 @@ |
||||
return {{ |
||||
"nvim-treesitter/nvim-treesitter", |
||||
build = ":TSUpdate", |
||||
opts = { |
||||
ensure_installed = "all", |
||||
highlight = { |
||||
enable = true |
||||
}, |
||||
indent = { |
||||
enable = true |
||||
} |
||||
} |
||||
|
||||
}} |
@ -0,0 +1,11 @@ |
||||
return {{ |
||||
'altermo/ultimate-autopair.nvim', |
||||
event={'InsertEnter','CmdlineEnter'}, |
||||
branch='v0.6', --recomended as each new version will have breaking changes |
||||
opts={ |
||||
tabout={ |
||||
enable=true |
||||
} |
||||
}, |
||||
}} |
||||
|
@ -1 +0,0 @@ |
||||
Subproject commit d2bb7878622e4c16203acf1c92a0f4bc7ac58003 |
@ -1,4 +0,0 @@ |
||||
[flake8] |
||||
exclude = .git,__pycache__,autoload,doc |
||||
max-complexity = 10 |
||||
max-line-length = 100 |
@ -1,21 +0,0 @@ |
||||
MIT License |
||||
|
||||
Copyright (c) 2017 Filip Szymański |
||||
|
||||
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. |
@ -1,19 +0,0 @@ |
||||
# deoplete-abook |
||||
|
||||
`Deoplete-abook` offers asynchronous completion of email addresses in [Mutt](http://www.mutt.org/) using [abook](http://abook.sourceforge.net/) contacts stored in a plain text database. |
||||
Inspired by [Greg Hurrell's](https://github.com/wincent) Vim screencast [#58](https://www.youtube.com/watch?v=BNnSjJOpXDk). |
||||
|
||||
## Installation |
||||
|
||||
To install `deoplete-abook`, use your favorite [Neovim](https://neovim.io/) plugin manager. |
||||
|
||||
#### Using [vim-plug](https://github.com/junegunn/vim-plug) |
||||
|
||||
```vim |
||||
Plug 'Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins'} |
||||
Plug 'fszymanski/deoplete-abook' |
||||
``` |
||||
|
||||
## Documentation |
||||
|
||||
For more information, see `:help deoplete_abook.txt`. |
@ -1,35 +0,0 @@ |
||||
scriptencoding utf-8 |
||||
|
||||
" Copyright (c) 2017 Filip Szymański. All rights reserved. |
||||
" Use of this source code is governed by an MIT license that can be |
||||
" found in the LICENSE file. |
||||
|
||||
function! s:check_deoplete() abort |
||||
if !empty(globpath(&runtimepath, 'plugin/deoplete.vim')) |
||||
call health#report_ok('Deoplete plugin is installed') |
||||
else |
||||
call health#report_error('Deoplete plugin is not installed', [ |
||||
\ 'The deoplete plugin can be found here: ' . |
||||
\ 'https://github.com/Shougo/deoplete.nvim' |
||||
\ ]) |
||||
endif |
||||
endfunction |
||||
|
||||
function! s:check_addressbook() abort |
||||
let datafile = get(g:, 'deoplete#sources#abook#datafile', |
||||
\ expand('~/.abook/addressbook')) |
||||
if filereadable(datafile) |
||||
call health#report_ok('Addressbook file was found: ' . datafile) |
||||
else |
||||
call health#report_error('Addressbook file was not found', |
||||
\ ['help: deoplete_abook.txt']) |
||||
endif |
||||
endfunction |
||||
|
||||
function! health#deoplete_abook#check() abort |
||||
call health#report_start('Dependencies') |
||||
call s:check_deoplete() |
||||
call s:check_addressbook() |
||||
endfunction |
||||
|
||||
" vim: ts=2 et sw=2 |
@ -1,61 +0,0 @@ |
||||
*deoplete_abook.txt* Deoplete source for abook contacts |
||||
|
||||
Author: Filip Szymański <filip.szymanski@zoho.eu> |
||||
|
||||
============================================================================== |
||||
CONTENTS *deoplete-abook-contents* |
||||
|
||||
1. Introduction |deoplete-abook-introduction| |
||||
2. Configuration |deoplete-abook-configuration| |
||||
3. License |deoplete-abook-license| |
||||
4. Bugs |deoplete-abook-bugs| |
||||
5. Contributing |deoplete-abook-contributing| |
||||
|
||||
============================================================================== |
||||
INTRODUCTION *deoplete-abook-introduction* |
||||
|
||||
This deoplete[1] source offers asynchronous completion of email addresses |
||||
in Mutt[2] using abook[3] contacts stored in a plain text database. |
||||
|
||||
Note: Inspired by Greg Hurrell's[4] Vim screencast #58[5]. |
||||
|
||||
============================================================================== |
||||
CONFIGURATION *deoplete-abook-configuration* |
||||
|
||||
*g:deoplete#sources#abook#datafile* |
||||
Set this option to use an alternative addressbook file. |
||||
> |
||||
let g:deoplete#sources#abook#datafile = expand('~/path/to/addressbook') |
||||
< |
||||
Default: '~/.abook/addressbook' |
||||
Type: string |
||||
|
||||
============================================================================== |
||||
LICENSE *deoplete-abook-license* |
||||
|
||||
MIT |
||||
|
||||
============================================================================== |
||||
BUGS *deoplete-abook-bugs* |
||||
|
||||
If you find a bug please create an issue on GitHub. |
||||
|
||||
https://github.com/fszymanski/deoplete-abook/issues |
||||
|
||||
============================================================================== |
||||
CONTRIBUTING *deoplete-abook-contributing* |
||||
|
||||
Think you can make this plugin better? Awesome. Fork it on GitHub and create |
||||
a pull request. |
||||
|
||||
https://github.com/fszymanski/deoplete-abook |
||||
|
||||
============================================================================== |
||||
|
||||
[1] https://github.com/Shougo/deoplete.nvim |
||||
[2] http://www.mutt.org/ |
||||
[3] http://abook.sourceforge.net/ |
||||
[4] https://github.com/wincent |
||||
[5] https://www.youtube.com/watch?v=BNnSjJOpXDk |
||||
|
||||
vim: tw=78 ts=8 ft=help norl |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,64 +0,0 @@ |
||||
# Copyright (c) 2017 Filip Szymański. All rights reserved. |
||||
# Use of this source code is governed by an MIT license that can be |
||||
# found in the LICENSE file. |
||||
|
||||
import configparser |
||||
import os.path |
||||
import re |
||||
|
||||
from .base import Base # pylint: disable=E0401 |
||||
|
||||
|
||||
# pylint: disable=W0201,W0613 |
||||
class Source(Base): |
||||
COLON_PATTERN = re.compile(r':\s?') |
||||
COMMA_PATTERN = re.compile(r'.+,\s?') |
||||
HEADER_PATTERN = re.compile(r'^(Bcc|Cc|From|Reply-To|To):(\s?|.+,\s?)') |
||||
|
||||
def __init__(self, vim): |
||||
super().__init__(vim) |
||||
|
||||
self.__cache = [] |
||||
|
||||
self.filetypes = ['mail'] |
||||
self.mark = '[abook]' |
||||
self.matchers = ['matcher_length', 'matcher_full_fuzzy'] |
||||
self.min_pattern_length = 0 |
||||
self.name = 'abook' |
||||
|
||||
def on_init(self, context): |
||||
self.__datafile = context['vars'].get('deoplete#sources#abook#datafile', |
||||
os.path.expanduser('~/.abook/addressbook')) |
||||
if not os.path.isfile(self.__datafile): |
||||
self.vim.err_write('[deoplete-abook] No such file: {0}\n'.format(self.__datafile)) |
||||
|
||||
def on_event(self, context): |
||||
self.__make_cache() |
||||
|
||||
def gather_candidates(self, context): |
||||
if self.HEADER_PATTERN.search(context['input']) is not None: |
||||
if not self.__cache: |
||||
self.__make_cache() |
||||
|
||||
return self.__cache |
||||
|
||||
def get_complete_position(self, context): |
||||
colon = self.COLON_PATTERN.search(context['input']) |
||||
comma = self.COMMA_PATTERN.search(context['input']) |
||||
return max(colon.end() if colon is not None else -1, |
||||
comma.end() if comma is not None else -1) |
||||
|
||||
def __make_cache(self): |
||||
addressbook = configparser.ConfigParser() |
||||
addressbook.read(self.__datafile) |
||||
for section in addressbook.sections(): |
||||
emails = addressbook.get(section, 'email', fallback=None) |
||||
if emails is not None: |
||||
name = addressbook.get(section, 'name', fallback=None) |
||||
for email in emails.split(','): |
||||
if name is not None: |
||||
email = '"{0}" <{1}>'.format(name, email) |
||||
|
||||
self.__cache.append({'word': email}) |
||||
|
||||
# vim: ts=4 et sw=4 |
@ -1 +0,0 @@ |
||||
Subproject commit f3d1f14fa8a8cf882be39605fb037ee982c3f37c |
@ -1 +0,0 @@ |
||||
Subproject commit d582895f0e4e7bcc40e43ac2cb357afecfe5eda8 |
@ -1 +0,0 @@ |
||||
Subproject commit 1c40f648d2b00e70beb4c473b7c0e32b633bd9ae |
@ -1 +0,0 @@ |
||||
Subproject commit ff6b8f022213c3d758478dad85d35febf92225e5 |
@ -1 +0,0 @@ |
||||
Subproject commit d6aa21476b2854694e6aa7b0941b8992a906c5ec |
@ -1 +0,0 @@ |
||||
Subproject commit bf2885a95efdad7bd5e4794dd0213917770d79b7 |
@ -1 +0,0 @@ |
||||
Subproject commit 5bda65472020c62def1ca52e6de2c0c5ba47fc7a |
@ -1 +0,0 @@ |
||||
Subproject commit 99ece6758ec49b04de983873e4117a390121fbb8 |
@ -1 +0,0 @@ |
||||
Subproject commit 06e54cdfa38c2129bc555b6ee77d4086c3a74e5c |
@ -1 +0,0 @@ |
||||
Subproject commit dd4e62324ab1607aefdbeddc776489cf9826ee6e |
@ -1 +0,0 @@ |
||||
Subproject commit 53e1921e3ef015ef658e540c0aa9c4835f9c18a6 |
@ -1 +0,0 @@ |
||||
Subproject commit f9c0b8eafea641ba27fd261b2b244944f87e6fd4 |
@ -1 +0,0 @@ |
||||
Subproject commit 3727f089410e23ae113be6222e8a08dd2613ecf2 |
@ -1 +0,0 @@ |
||||
Subproject commit 6e818d5614d5fc18d95a48c92b89e6db39f9e3d6 |
@ -1 +0,0 @@ |
||||
Subproject commit 11ed125209e2277d439cf6d0340c6fca263cb09b |
@ -1 +0,0 @@ |
||||
Subproject commit ddfa49f9ece73aca44d2b45d693e7b58adbf8f8c |
@ -1 +0,0 @@ |
||||
Subproject commit 24afe922e6a05891756ecf331f39a1f6743d3d5a |
@ -1 +0,0 @@ |
||||
Subproject commit 43ed873ba09ac2d71992e773c68c75c6b85686c7 |
@ -1 +0,0 @@ |
||||
Subproject commit aeb933272e72617f7c4d35e1f003be16836b948d |
@ -1 +0,0 @@ |
||||
Subproject commit 784794dd8854b1eee2a9e718b8b1d941a20516b6 |
@ -1 +0,0 @@ |
||||
Subproject commit 43576e84d3034bccb1216f39f51ed36d945d7b96 |
@ -1,22 +0,0 @@ |
||||
" Prefixes all of the fzf commands |
||||
let g:fzf_command_prefix = 'Fzf' |
||||
|
||||
let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.8 } } |
||||
|
||||
" Mappings for common Fzf commands |
||||
nnoremap <leader>f = :FzfFiles<cr> |
||||
nnoremap <leader>b = :FzfBuffers<cr> |
||||
nnoremap <leader>h = :FzfHelptags<cr> |
||||
" The space is important at the end of this mapping |
||||
nnoremap <leader>/ = :FzfRg |
||||
|
||||
function! s:read_template_into_buffer(template) |
||||
" has to be a function to avoid the extra space fzf#run insers otherwise |
||||
execute '0r ~/Templates/'.a:template |
||||
endfunction |
||||
|
||||
command! -bang -nargs=* LoadTemplate call fzf#run({ |
||||
\ 'source': 'ls -1 ~/Templates', |
||||
\ 'down': 20, |
||||
\ 'sink': function('<sid>read_template_into_buffer') |
||||
\ }) |
@ -0,0 +1,125 @@ |
||||
|
||||
|
||||
-- Swap : and ; in normal mode |
||||
vim.keymap.set('n', ';',':', {desc="Swaps semi colon to colon"}) |
||||
vim.keymap.set('n', ':',';', {desc="Swaps semi colon to colon"}) |
||||
|
||||
-- Swap : and ; in visual mode |
||||
vim.keymap.set('v', ';',':', {desc="Swaps semi colon to colon"}) |
||||
vim.keymap.set('v', ':',';', {desc="Swaps semi colon to colon"}) |
||||
|
||||
-- Make jj in insert mode go to normal mode |
||||
vim.keymap.set('i', 'jj','<Esc>', {desc="jj to escape"}) |
||||
|
||||
|
||||
-- Make ctrl+hjkl change focus between windows |
||||
vim.keymap.set('n', '<c-h>','<c-w>h', {desc="Move to left window"}) |
||||
vim.keymap.set('n', '<c-j>','<c-w>j', {desc="Move to below window"}) |
||||
vim.keymap.set('n', '<c-k>','<c-w>k', {desc="Move to above window"}) |
||||
vim.keymap.set('n', '<c-l>','<c-w>l', {desc="Move to left window"}) |
||||
|
||||
if vim.fn.has('clipboard') == 1 then |
||||
vim.keymap.set('v', '<c-c>','"+y"', {desc="Copy to system clipboard"}) |
||||
vim.keymap.set('i', '<c-v>','<Esc>"+pa', {desc="Paste from system clipboard"}) |
||||
end |
||||
|
||||
|
||||
-- Fix previous spelling mistake in insert mode |
||||
-- Shamelessly taken from https://castel.dev/post/lecture-notes-1/ |
||||
-- <c-g>u - break undo sequence (new change) |
||||
-- <Esc> - go into normal mode |
||||
-- [s - go to previous spelling mistake |
||||
-- 1z= - change to the top spelling suggestion |
||||
-- `] - go to the end of the last changed word |
||||
-- a - enter insert mode |
||||
-- <c-g>u - break undo sequence (new change) |
||||
vim.keymap.set('i', '<c-l>','<c-g>u<Esc>[s1z=`]a<c-g>u', {desc="Fix previous spelling mistake"}) |
||||
|
||||
-- Do Shebang line |
||||
-- <Esc> - go into normal mode |
||||
-- :silent - run command silently |
||||
-- s/^/…/ - write at the begining of the line |
||||
-- <bar> - used to seperate commands |
||||
-- filetype detect - attempt to detect filetype again |
||||
-- :nohlsearch - un-hilight the search pattern |
||||
vim.keymap.set('i', '<C-y>', '<Esc>:silent s/^/#!\\/usr\\/bin\\/env / <bar> filetype detect<cr>:nohlsearch<cr>o', {desc="do shebang line"}) |
||||
|
||||
|
||||
-- Makes delete key work properly in insert mode |
||||
vim.keymap.set('i', '<del>', '<Right><BS>', {desc="Delete next character"}) |
||||
|
||||
|
||||
|
||||
-- Compiles documents |
||||
-- The uppercase versions don't push enter an extra time resulting in seeing |
||||
-- the output of the compile command. Useful for debugging |
||||
vim.keymap.set('n', '<leader>cc', ':w! | !compiler "<c-r>%"<CR><CR>' ) |
||||
vim.keymap.set('n', '<leader>cC', ':w! | !compiler "<c-r>%"<CR>' ) |
||||
vim.keymap.set('n', '<leader>cl', ':w! | !compiler "<c-r>%" letter<CR><CR>' ) |
||||
vim.keymap.set('n', '<leader>cL', ':w! | !compiler "<c-r>%" letter<CR>' ) |
||||
vim.keymap.set('n', '<leader>cf', ':w! | !rt partialPdf --overwrite "<c-r>%" <CR><CR>' ) |
||||
vim.keymap.set('n', '<leader>cF', ':w! | !rt partialPdf --overwrite "<c-r>%" <CR>' ) |
||||
vim.keymap.set('n', '<leader>Cf', ':w! | !rt fullReport . --overwrite <CR><CR>' ) |
||||
vim.keymap.set('n', '<leader>CF', ':w! | !rt fullReport . --overwrite <CR>' ) |
||||
|
||||
-- Opens the compiled documents |
||||
-- If something like html, it doesn't need to be compiled first |
||||
vim.keymap.set('n', '<leader>co', ':!opout "<c-r>%"<CR><CR>', {desc="open compiled document"}) |
||||
|
||||
-- Makes vim default to very magic searching |
||||
vim.keymap.set({'n','v'}, '/', '/\\v', {desc="very magic search"}) |
||||
|
||||
-- re-select visual selection when using < or > |
||||
vim.keymap.set('v', '<', '<gv', {desc="Reduce indent and re-select"}) |
||||
vim.keymap.set('v', '>', '>gv', {desc="Increase indent and re-select"}) |
||||
|
||||
|
||||
-- Easy quickfix jumping |
||||
-- zO - Opens folds |
||||
-- zz - Centers vertically |
||||
vim.keymap.set('n', '[c', ':cprevious<cr>zOzz', {desc="previous quickfix"}) |
||||
vim.keymap.set('n', ']c', ':cnext<cr>zOzz', {desc="next quickfix"}) |
||||
|
||||
|
||||
-- Debugging mappings |
||||
-- See `:help vim.diagnostic.*` for documentation on any of the below functions |
||||
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float) |
||||
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) |
||||
vim.keymap.set('n', ']d', vim.diagnostic.goto_next) |
||||
--vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist) |
||||
|
||||
-- Open currend directory |
||||
vim.keymap.set('n', '-', ':e %:h<cr>', {desc="Open directory"}) |
||||
|
||||
|
||||
|
||||
-- Leaving these as old-style to remind me to come back and make them proper lua |
||||
vim.cmd([[ |
||||
|
||||
" Mappings for my encoding functions |
||||
vnoremap [b :call mine#encoding#wrapper('base64Encode')<cr> |
||||
vnoremap ]b :call mine#encoding#wrapper('base64Decode')<cr> |
||||
vnoremap [u :call mine#encoding#wrapper('urlEncode')<cr> |
||||
vnoremap ]u :call mine#encoding#wrapper('urlDecode')<cr> |
||||
vnoremap [U :call mine#encoding#wrapper('urlEncodeAll')<cr> |
||||
vnoremap ]U :call mine#encoding#wrapper('urlDecode')<cr> |
||||
vnoremap [h :call mine#encoding#wrapper('hexEncode')<cr> |
||||
vnoremap ]h :call mine#encoding#wrapper('hexDecode')<cr> |
||||
|
||||
|
||||
" Run proselint and put it in the quickfix list |
||||
nnoremap <leader>p :call mine#functions#proselint()<CR> |
||||
|
||||
if has('nvim') |
||||
if !empty($SUDO_ASKPASS) |
||||
cnoremap WW w !sudo -A tee % > /dev/null |
||||
else |
||||
cnoremap WW echo "SUDO_ASKPASS variable needs to be set"<cr> |
||||
endif |
||||
else |
||||
cnoremap WW w !sudo tee % > /dev/null |
||||
endif |
||||
|
||||
nnoremap <leader>ve :edit $HOME/.config/nvim/init.vim<cr> |
||||
|
||||
]]) |
@ -1,95 +0,0 @@ |
||||
" Swaps semi colon to colon in normal mode |
||||
nnoremap ; : |
||||
nnoremap : ; |
||||
|
||||
" Swaps semi colon to colon in visual mode |
||||
vnoremap ; : |
||||
vnoremap : ; |
||||
|
||||
" Make jj in insert mode go to normal mode |
||||
inoremap jj <Esc> |
||||
|
||||
" Make ctrl+hjkl change focus between windows |
||||
nnoremap <c-h> <c-w>h |
||||
nnoremap <c-j> <c-w>j |
||||
nnoremap <c-k> <c-w>k |
||||
nnoremap <c-l> <c-w>l |
||||
|
||||
if has('clipboard') |
||||
" Make Ctrl C and Ctrl V work on system clipboard |
||||
" if in visual or insert mode respectively |
||||
vnoremap <C-c> "+y |
||||
inoremap <C-v> <Esc>"+pa |
||||
endif |
||||
|
||||
" Fix previous spelling mistake in insert mode |
||||
" Shamelessly taken from https://castel.dev/post/lecture-notes-1/ |
||||
" <c-g>u - break undo sequence (new change) |
||||
" <Esc> - go into normal mode |
||||
" [s - go to previous spelling mistake |
||||
" 1z= - change to the top spelling suggestion |
||||
" `] - go to the end of the last changed word |
||||
" a - enter insert mode |
||||
" <c-g>u - break undo sequence (new change) |
||||
inoremap <C-l> <c-g>u<Esc>[s1z=`]a<c-g>u |
||||
|
||||
" Do Shebang line |
||||
" <Esc> - go into normal mode |
||||
" :silent - run command silently |
||||
" s/^/…/ - write at the begining of the line |
||||
" <bar> - used to seperate commands |
||||
" filetype detect - attempt to detect filetype again |
||||
" :nohlsearch - un-hilight the search pattern |
||||
inoremap <C-y> <Esc>:silent s/^/#!\/usr\/bin\/env / <bar> filetype detect<cr>:nohlsearch<cr>o |
||||
" alternative: inoremap <C-y> <Esc>:silent exe ".!which <cWORD>" <bar> s/^/#!/ <bar> filetype detect<cr>YpDi |
||||
|
||||
" Mappings for my encoding functions |
||||
vnoremap [b :call mine#encoding#wrapper('base64Encode')<cr> |
||||
vnoremap ]b :call mine#encoding#wrapper('base64Decode')<cr> |
||||
vnoremap [u :call mine#encoding#wrapper('urlEncode')<cr> |
||||
vnoremap ]u :call mine#encoding#wrapper('urlDecode')<cr> |
||||
vnoremap [U :call mine#encoding#wrapper('urlEncodeAll')<cr> |
||||
vnoremap ]U :call mine#encoding#wrapper('urlDecode')<cr> |
||||
vnoremap [h :call mine#encoding#wrapper('hexEncode')<cr> |
||||
vnoremap ]h :call mine#encoding#wrapper('hexDecode')<cr> |
||||
|
||||
" Makes the delete key work in insert mode |
||||
inoremap <Del> <Right><BS> |
||||
|
||||
" Compiles documents |
||||
" The uppercase versions don't push enter an extra time resulting in seeing |
||||
" the output of the compile command. Useful for debugging |
||||
nnoremap <leader>cc :w! \| !compiler <c-r>%<CR><CR> |
||||
nnoremap <leader>cC :w! \| !compiler <c-r>%<CR> |
||||
nnoremap <leader>cl :w! \| !compiler <c-r>% letter<CR><CR> |
||||
nnoremap <leader>cL :w! \| !compiler <c-r>% letter<CR> |
||||
|
||||
" Opens the compiled documents |
||||
" If something like html, it doesn't need to be compiled first |
||||
nnoremap <leader>co :!opout <c-r>%<CR><CR> |
||||
|
||||
" Makes vim default to "very magic" searching |
||||
nnoremap / /\v |
||||
vnoremap / /\v |
||||
|
||||
" Makes vim re-select visual selection when using < or > |
||||
vnoremap < <gv |
||||
vnoremap > >gv |
||||
|
||||
nnoremap [c :cprevious<cr>zOzz |
||||
nnoremap ]c :cnext<cr>zOzz |
||||
|
||||
" Run proselint and put it in the quickfix list |
||||
nnoremap <leader>p :call mine#functions#proselint()<CR> |
||||
|
||||
if has('nvim') |
||||
if !empty($SUDO_ASKPASS) |
||||
cnoremap WW w !sudo -A tee % > /dev/null |
||||
else |
||||
cnoremap WW echo "SUDO_ASKPASS variable needs to be set"<cr> |
||||
endif |
||||
else |
||||
cnoremap WW w !sudo tee % > /dev/null |
||||
endif |
||||
|
||||
nnoremap <leader>ve :edit $HOME/.config/nvim/init.vim<cr> |
@ -0,0 +1,77 @@ |
||||
-- Set spellcheck language to english |
||||
vim.opt.spelllang=en_gb |
||||
|
||||
-- Set default split to be right or bottom |
||||
vim.opt.splitright=true |
||||
vim.opt.splitbelow=true |
||||
|
||||
-- Tell vim it's a fast terminal |
||||
vim.opt.ttyfast=true |
||||
|
||||
-- set relative ruler with current line as real line number |
||||
vim.opt.relativenumber=true |
||||
vim.opt.number=true |
||||
|
||||
-- Allows vim to background buffers without saving |
||||
vim.opt.hidden=true |
||||
|
||||
-- Sets vim to smart case |
||||
-- If search is all lowercase, search insensitively; if you include a capital |
||||
-- it becomes a case sensitive match |
||||
vim.opt.ignorecase=true |
||||
vim.opt.smartcase=true |
||||
|
||||
-- Makes vim try to keep 5 lines visible at the top and bottom |
||||
vim.opt.scrolloff=5 |
||||
|
||||
-- set tabwidth |
||||
vim.opt.autoindent=true |
||||
vim.opt.smartindent=true |
||||
vim.opt.shiftwidth=4 |
||||
vim.opt.tabstop=4 |
||||
|
||||
-- Add invisivle character reperesentation |
||||
vim.opt.list=true |
||||
vim.opt.listchars={ |
||||
tab="» ", |
||||
trail="␣" |
||||
} |
||||
|
||||
-- Stops vim wrapping in the middle of a word |
||||
vim.opt.linebreak=true |
||||
|
||||
-- Sets tool for opening non-text files with gx |
||||
-- If in netrw, this is run with just x |
||||
vim.g.netrw_browsex_viewer = "opout" |
||||
|
||||
-- Automatically insert comment leader after hitting enter (r) or when pushing o or O (o) |
||||
vim.opt.formatoptions:append('r') |
||||
vim.opt.formatoptions:append('o') |
||||
|
||||
-- Show the results of the substitute command as you type |
||||
vim.opt.inccommand = 'nosplit' |
||||
|
||||
-- Sets the default fold method to indent |
||||
vim.opt.foldmethod = 'indent' |
||||
|
||||
|
||||
-- Need to find out how to do this in lua |
||||
vim.cmd([[ |
||||
|
||||
if executable('rg') |
||||
set grepprg=rg\ --vimgrep\ --no-heading\ --color=never\ --glob=\"!shell-logs/*\" |
||||
set grepformat=%f:%l:%c:%m,%f:%l:%m |
||||
endif |
||||
|
||||
augroup colorcols |
||||
autocmd! |
||||
autocmd FileType,VimEnter,BufEnter * call mine#functions#colorcols() |
||||
augroup end |
||||
|
||||
" share data between nvim instances (registers etc) |
||||
augroup SHADA |
||||
autocmd! |
||||
autocmd CursorHold,TextYankPost,FocusGained,FocusLost * |
||||
\ if exists(':rshada') | rshada | wshada | endif |
||||
augroup END |
||||
]]) |
@ -1,73 +0,0 @@ |
||||
" Set colourscheme to gruvbox |
||||
let g:gruvbox_italic=1 |
||||
set termguicolors |
||||
colorscheme gruvbox |
||||
|
||||
" Set spellcheck language to english |
||||
set spelllang=en_gb |
||||
|
||||
" Set default split to be right or bottom |
||||
set splitright |
||||
set splitbelow |
||||
|
||||
" Tell vim it's a fast terminal |
||||
set ttyfast |
||||
|
||||
" set relative ruler with current line as real line number |
||||
set relativenumber |
||||
set number |
||||
|
||||
" Allows vim to background buffers without saving |
||||
set hidden |
||||
|
||||
" Sets vim to smart case |
||||
" If search is all lowercase, search insensitively; if you include a capital |
||||
" it becomes a case sensitive match |
||||
set ignorecase smartcase |
||||
|
||||
" Makes vim try to keep 5 lines visible at the top and bottom |
||||
set scrolloff=5 |
||||
|
||||
" set tabwidth |
||||
set autoindent |
||||
set smartindent |
||||
set shiftwidth=4 |
||||
set tabstop=4 |
||||
|
||||
" Add invisivle character reperesentation |
||||
set list listchars=tab:»\ ,trail:\␣,eol:↩ |
||||
|
||||
" Stops vim wrapping in the middle of a word |
||||
set linebreak |
||||
|
||||
" Sets tool for opening non-text files with gx |
||||
" If in netrw, this is run with just x |
||||
let g:netrw_browsex_viewer = "opout" |
||||
|
||||
" Automatically insert comment leader after hitting enter |
||||
set formatoptions+=r |
||||
" Automatically insert comment leader after hitting o or O |
||||
set formatoptions+=o |
||||
|
||||
" Show the results of the substitute command as you type |
||||
set inccommand=nosplit |
||||
|
||||
" Sets the default fold method to indent |
||||
set foldmethod=indent |
||||
|
||||
if executable('rg') |
||||
set grepprg=rg\ --vimgrep\ --no-heading\ --color=never\ --glob=\"!shell-logs/*\" |
||||
set grepformat=%f:%l:%c:%m,%f:%l:%m |
||||
endif |
||||
|
||||
augroup colorcols |
||||
autocmd! |
||||
autocmd FileType,VimEnter,BufEnter * call mine#functions#colorcols() |
||||
augroup end |
||||
|
||||
" share data between nvim instances (registers etc) |
||||
augroup SHADA |
||||
autocmd! |
||||
autocmd CursorHold,TextYankPost,FocusGained,FocusLost * |
||||
\ if exists(':rshada') | rshada | wshada | endif |
||||
augroup END |
@ -1,11 +0,0 @@ |
||||
lua <<EOF |
||||
require'nvim-treesitter.configs'.setup { |
||||
ensure_installed = "all", |
||||
highlight = { |
||||
enable = true |
||||
}, |
||||
indent = { |
||||
enable = true |
||||
} |
||||
} |
||||
EOF |
@ -0,0 +1,2 @@ |
||||
Additionally |
||||
vacuumed |
Binary file not shown.
@ -0,0 +1,54 @@ |
||||
if exists("b:current_syntax") |
||||
finish |
||||
endif |
||||
let s:cpo_save = &cpo |
||||
set cpo&vim |
||||
" , is the delimiter |
||||
" " is word separator |
||||
" no support for escape character |
||||
:syntax match end ',' nextgroup=col00 |
||||
:syntax match col13 ',[^,]*' nextgroup=end |
||||
:syntax match col13 ',\"[^"]*\"' nextgroup=end |
||||
:syntax match col12 ',[^,]*' nextgroup=col13 |
||||
:syntax match col12 ',\"[^"]*\"' nextgroup=col13 |
||||
:syntax match col11 ',[^,]*' nextgroup=col12 |
||||
:syntax match col11 ',\"[^"]*\"' nextgroup=col12 |
||||
:syntax match col10 ',[^,]*' nextgroup=col11 |
||||
:syntax match col10 ',\"[^"]*\"' nextgroup=col11 |
||||
:syntax match col09 ',[^,]*' nextgroup=col10 |
||||
:syntax match col09 ',\"[^"]*\"' nextgroup=col10 |
||||
:syntax match col08 ',[^,]*' nextgroup=col09 |
||||
:syntax match col08 ',\"[^"]*\"' nextgroup=col09 |
||||
:syntax match col07 ',[^,]*' nextgroup=col08 |
||||
:syntax match col07 ',\"[^"]*\"' nextgroup=col08 |
||||
:syntax match col06 ',[^,]*' nextgroup=col07 |
||||
:syntax match col06 ',\"[^"]*\"' nextgroup=col07 |
||||
:syntax match col05 ',[^,]*' nextgroup=col06 |
||||
:syntax match col05 ',\"[^"]*\"' nextgroup=col06 |
||||
:syntax match col04 ',[^,]*' nextgroup=col05 |
||||
:syntax match col04 ',\"[^"]*\"' nextgroup=col05 |
||||
:syntax match col03 ',[^,]*' nextgroup=col04 |
||||
:syntax match col03 ',\"[^"]*\"' nextgroup=col04 |
||||
:syntax match col02 ',[^,]*' nextgroup=col03 |
||||
:syntax match col02 ',\"[^"]*\"' nextgroup=col03 |
||||
:syntax match col01 ',[^,]*' nextgroup=col02 |
||||
:syntax match col01 ',\"[^"]*\"' nextgroup=col02 |
||||
:syntax match col00 '[^,]*' nextgroup=col01 |
||||
:syntax match col00 '\"[^"]*\"' nextgroup=col01 |
||||
:syntax match start '^' nextgroup=col00 |
||||
|
||||
:hi col13 ctermfg=gray |
||||
:hi col12 ctermfg=darkyellow |
||||
:hi col11 ctermfg=darkcyan |
||||
:hi col10 ctermfg=darkmagenta |
||||
:hi col09 ctermfg=darkgreen |
||||
:hi col08 ctermfg=darkred |
||||
:hi col07 ctermfg=darkblue |
||||
:hi col06 ctermfg=white |
||||
:hi col05 ctermfg=yellow |
||||
:hi col04 ctermfg=cyan |
||||
:hi col03 ctermfg=magenta |
||||
:hi col02 ctermfg=green |
||||
:hi col01 ctermfg=red |
||||
:hi col00 ctermfg=blue |
||||
|
Loading…
Reference in new issue