Starts moving nvim config to lua
This commit is contained in:
parent
b039bf70fd
commit
954642753f
53 changed files with 548 additions and 541 deletions
66
.gitmodules
vendored
66
.gitmodules
vendored
|
@ -16,69 +16,3 @@
|
||||||
[submodule "shells/zsh/plugins/git-fuzzy"]
|
[submodule "shells/zsh/plugins/git-fuzzy"]
|
||||||
path = shells/zsh/plugins/git-fuzzy
|
path = shells/zsh/plugins/git-fuzzy
|
||||||
url = https://github.com/bigH/git-fuzzy
|
url = https://github.com/bigH/git-fuzzy
|
||||||
[submodule "nvim/.config/nvim/pack/opt/gruvbox"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/gruvbox
|
|
||||||
url = https://github.com/morhetz/gruvbox.git
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/fzf.vim"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/fzf.vim
|
|
||||||
url = https://github.com/junegunn/fzf.vim
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-tridactyl"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-tridactyl
|
|
||||||
url = https://github.com/tridactyl/vim-tridactyl
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-less"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-less
|
|
||||||
url = https://github.com/groenewege/vim-less
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-json"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-json
|
|
||||||
url = https://github.com/elzr/vim-json
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-vinegar"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-vinegar
|
|
||||||
url = https://github.com/tpope/vim-vinegar
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-surround"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-surround
|
|
||||||
url = https://github.com/tpope/vim-surround
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-repeat"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-repeat
|
|
||||||
url = https://github.com/tpope/vim-repeat
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/nvim-lspconfig"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/nvim-lspconfig
|
|
||||||
url = https://github.com/neovim/nvim-lspconfig/
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/deoplete.nvim"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/deoplete.nvim
|
|
||||||
url = https://github.com/Shougo/deoplete.nvim
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/deoplete-notmuch"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/deoplete-notmuch
|
|
||||||
url = https://github.com/paretje/deoplete-notmuch
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/deoplete-lsp"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/deoplete-lsp
|
|
||||||
url = https://github.com/Shougo/deoplete-lsp
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-fugitive"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-fugitive
|
|
||||||
url = https://github.com/tpope/vim-fugitive
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/AnsiEsc.vim"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/AnsiEsc.vim
|
|
||||||
url = https://github.com/vim-scripts/AnsiEsc.vim
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/firenvim"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/firenvim
|
|
||||||
url = https://github.com/glacambre/firenvim
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/ultisnips"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/ultisnips
|
|
||||||
url = https://github.com/SirVer/ultisnips
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-snippets"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-snippets
|
|
||||||
url = https://github.com/honza/vim-snippets
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/lexima.vim"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/lexima.vim
|
|
||||||
url = https://github.com/cohama/lexima.vim
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/nvim-treesitter"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/nvim-treesitter
|
|
||||||
url = https://github.com/nvim-treesitter/nvim-treesitter
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-projectionist"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-projectionist
|
|
||||||
url = https://github.com/tpope/vim-projectionist
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/gruvbox-baby"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/gruvbox-baby
|
|
||||||
url = https://github.com/luisiacc/gruvbox-baby
|
|
||||||
[submodule "nvim/.config/nvim/pack/bundle/opt/vim-openscad"]
|
|
||||||
path = nvim/.config/nvim/pack/bundle/opt/vim-openscad
|
|
||||||
url = https://github.com/sirtaj/vim-openscad
|
|
||||||
|
|
|
@ -9,11 +9,12 @@ lua <<EOF
|
||||||
-- Bash Language Server
|
-- Bash Language Server
|
||||||
require'lspconfig'.bashls.setup{}
|
require'lspconfig'.bashls.setup{}
|
||||||
-- Clang Language Server
|
-- Clang Language Server
|
||||||
require'lspconfig'.ccls.setup{}
|
--require'lspconfig'.ccls.setup{}
|
||||||
|
require'lspconfig'.clangd.setup{}
|
||||||
-- Go Language Server
|
-- Go Language Server
|
||||||
require'lspconfig'.gopls.setup{}
|
require'lspconfig'.gopls.setup{}
|
||||||
-- Python Language Server
|
-- Python Language Server
|
||||||
--require'lspconfig'.pyls.setup{}
|
require'lspconfig'.pylsp.setup{}
|
||||||
-- Vim Language Server
|
-- Vim Language Server
|
||||||
require'lspconfig'.vimls.setup{}
|
require'lspconfig'.vimls.setup{}
|
||||||
-- VUE Language Server
|
-- VUE Language Server
|
0
nvim/.config/nvim/after.old/plugin/test.md
Normal file
0
nvim/.config/nvim/after.old/plugin/test.md
Normal file
83
nvim/.config/nvim/init.lua
Normal file
83
nvim/.config/nvim/init.lua
Normal file
|
@ -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>"
|
|
||||||
|
|
||||||
|
|
19
nvim/.config/nvim/lazy-lock.json
Normal file
19
nvim/.config/nvim/lazy-lock.json
Normal file
|
@ -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" }
|
||||||
|
}
|
107
nvim/.config/nvim/lua/plugins/cmp.lua
Normal file
107
nvim/.config/nvim/lua/plugins/cmp.lua
Normal file
|
@ -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
|
||||||
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
25
nvim/.config/nvim/lua/plugins/fzf.lua
Normal file
25
nvim/.config/nvim/lua/plugins/fzf.lua
Normal file
|
@ -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
|
||||||
|
} }
|
||||||
|
|
||||||
|
|
||||||
|
|
21
nvim/.config/nvim/lua/plugins/gruvbox.lua
Normal file
21
nvim/.config/nvim/lua/plugins/gruvbox.lua
Normal file
|
@ -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')
|
3
nvim/.config/nvim/lua/plugins/init.lua
Normal file
3
nvim/.config/nvim/lua/plugins/init.lua
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
return { {
|
||||||
|
"tpope/vim-fugitive"
|
||||||
|
} }
|
4
nvim/.config/nvim/lua/plugins/surround.lua
Normal file
4
nvim/.config/nvim/lua/plugins/surround.lua
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
return {{
|
||||||
|
"kylechui/nvim-surround",
|
||||||
|
opts={}
|
||||||
|
}}
|
14
nvim/.config/nvim/lua/plugins/treesitter.lua
Normal file
14
nvim/.config/nvim/lua/plugins/treesitter.lua
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
return {{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
opts = {
|
||||||
|
ensure_installed = "all",
|
||||||
|
highlight = {
|
||||||
|
enable = true
|
||||||
|
},
|
||||||
|
indent = {
|
||||||
|
enable = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}}
|
11
nvim/.config/nvim/lua/plugins/ultimate-autopair.lua
Normal file
11
nvim/.config/nvim/lua/plugins/ultimate-autopair.lua
Normal file
|
@ -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')
|
|
||||||
\ })
|
|
125
nvim/.config/nvim/plugin/mappings.lua
Normal file
125
nvim/.config/nvim/plugin/mappings.lua
Normal file
|
@ -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>
|
|
77
nvim/.config/nvim/plugin/settings.lua
Normal file
77
nvim/.config/nvim/plugin/settings.lua
Normal file
|
@ -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
|
|
2
nvim/.config/nvim/spell/en.utf-8.add
Normal file
2
nvim/.config/nvim/spell/en.utf-8.add
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Additionally
|
||||||
|
vacuumed
|
BIN
nvim/.config/nvim/spell/en.utf-8.add.spl
Normal file
BIN
nvim/.config/nvim/spell/en.utf-8.add.spl
Normal file
Binary file not shown.
54
nvim/.config/nvim/syntax/csv.vim
Normal file
54
nvim/.config/nvim/syntax/csv.vim
Normal file
|
@ -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…
Add table
Add a link
Reference in a new issue