dotfiles/nvim/.config/nvim/init.lua

138 lines
3.8 KiB
Lua

vim.o.updatetime = 100
vim.o.scrolloff = 3
vim.o.sidescrolloff = 5
vim.o.textwidth = 78
vim.o.linespace = 0
vim.o.showmatch = true
vim.o.modeline = true
vim.o.showmode = false
vim.o.splitbelow = true
vim.o.splitright = true
vim.o.foldenable = false
vim.o.undofile = true
vim.o.autochdir = false
vim.o.startofline = false
vim.o.ignorecase = true
vim.o.smartcase = true
vim.o.magic = true
vim.o.termguicolors = true
vim.o.fileformat = 'unix'
vim.o.inccommand = 'split'
vim.o.mouse = ''
vim.o.completeopt = 'menuone,noselect'
vim.o.wildmode = 'longest:full,full'
vim.o.wildoptions = 'pum'
vim.o.pumblend = 30
vim.o.backup = false
vim.o.writebackup = false
vim.o.swapfile = false
vim.o.sessionoptions = 'buffers,curdir,tabpages,winsize'
vim.o.shada = ''
vim.o.diffopt = 'filler,internal,algorithm:histogram,indent-heuristic,closeoff,linematch:60'
vim.o.scrolloff = 999
vim.o.formatoptions = "crqn1j"
vim.o.signcolumn = "auto:1-2"
vim.o.spelllang = "en_gb"
vim.o.spelloptions = "camel,noplainbuffer"
vim.o.spell = true
-- Disable providers we do not give a shit about
vim.g.loaded_python3_provider = 0
vim.g.loaded_python_provider = 0
vim.g.loaded_ruby_provider = 0
vim.g.loaded_perl_provider = 0
vim.g.loaded_node_provider = 0
-- Disable some in built plugins completely
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
vim.g.loaded_matchparen = 1
vim.g.loaded_matchit = 1
vim.g.loaded_2html_plugin = 1
vim.g.loaded_getscriptPlugin = 1
vim.g.loaded_gzip = 1
vim.g.loaded_logipat = 1
vim.g.loaded_rrhelper = 1
vim.g.loaded_spellfile_plugin = 1
vim.g.loaded_tarPlugin = 1
vim.g.loaded_vimballPlugin = 1
vim.g.loaded_zipPlugin = 1
-- Map leader
vim.g.mapleader = " "
vim.g.maplocalleader = ","
-- dispatch
vim.g.dispatch_no_maps = 1
-- vim-matchup
vim.g.matchup_matchparen_offscreen = { method = 'popup', fullwidth = true }
vim.g.matchup_surround_enabled = 1
if os.getenv("SSH_CONNECTION") then
local osc52 = require('vim.ui.clipboard.osc52')
vim.g.clipboard = {
name = 'OSC 52',
copy = {
['+'] = osc52.copy,
['*'] = osc52.copy,
},
paste = {
['+'] = osc52.paste,
['*'] = osc52.paste,
},
}
else
-- See :help clipboard and https://github.com/neovim/neovim/issues/14545
vim.g.clipboard = {
name = "clipboard",
copy = {
["+"] = "wl-copy",
["*"] = "wl-copy"
},
paste = {
["+"] = "wl-paste",
["*"] = "wl-paste"
},
cache_enabled = true
}
end
-- No default mappings for tmux navigator
vim.g.tmux_navigator_no_mappings = 1
-- Write the current buffer, but only if changed before navigating from Vim to tmux pane
vim.g.tmux_navigator_save_on_switch = 1
-- We do this to prevent the loading of the system fzf.vim plugin. This is
-- present at least on Arch/Manjaro
vim.cmd.set{ args = { 'rtp-=/usr/share/vim/vimfiles' } }
-- Disable virtual text for all diagnostics
vim.diagnostic.config({
underline = true,
signs = true,
virtual_text = false,
update_in_insert = false,
severity_sort = true,
float = {
header = false,
source = 'always',
border = 'rounded',
focusable = false,
},
})
require 'plugins'
require 'autocmd'
require 'keymappings'
require 'lsp'
require 'treesitter'
-- Setup and load colour scheme
require("monokai-nightasty").setup({
dark_style_background = "transparent",
on_highlights = function(highlights, colors)
highlights.StatusLine = { bg = "#000000" }
highlights.StatusLineNC = { bg = "#000000" }
end,
})
vim.cmd.colorscheme('monokai-nightasty')