vim.opt.termguicolors = true vim.g.loaded_netrw = 1 vim.g.loaded_netrwPlugin = 1 require('mappings') require('lazy-config') require('treesitter-config') require('treesitter-textobjects-config') require('noice-config') require('plugin-mappings') require('gopls') require('code-completion') require('commands') require('lsp-config') require('theme-config') -- General vim.opt.number = true vim.opt.relativenumber = true vim.opt.tabstop = 4 vim.opt.shiftwidth = 4 vim.opt.expandtab = true -- LSP -- Make room for signs in the gutter vim.opt.signcolumn = "yes" -- Disable case sensitivity vim.opt.ignorecase = true vim.opt.foldlevel = 99 vim.opt.hlsearch = true vim.opt.cursorline = true vim.opt.splitbelow = true -- Enable spell checking vim.opt.spell = true -- Check if running in SSH if vim.fn.has('unix') == 1 then if os.getenv('SSH_CLIENT') then -- iterm2 does not support OSC 52 pasting, it can only copy -- it takes over 10-20 seconds to copy to the clipboard if we leave it enabled -- NOTE: System clipboard is "+, copy with keystrokes "+y function no_paste(reg) return function(lines) -- Do nothing! We can't paste with OSC52 end end vim.g.clipboard = { name = "OSC 52", copy = { ["+"] = require("vim.ui.clipboard.osc52").copy("+"), ["*"] = require("vim.ui.clipboard.osc52").copy("*"), }, paste = { ["+"] = no_paste("+"), -- Pasting disabled ["*"] = no_paste("*"), -- Pasting disabled } } end end -- GUI operations if vim.fn.has('gui_running') == 1 then vim.opt.guifont = "JetBrainsMono Nerd Font:h12" -- Clipboard mappings vim.api.nvim_set_keymap('n', '', '"+y', { noremap = true }) vim.api.nvim_set_keymap('v', '', '"+y', { noremap = true }) vim.api.nvim_set_keymap('n', '', '"+x', { noremap = true }) vim.api.nvim_set_keymap('v', '', '"+x', { noremap = true }) vim.api.nvim_set_keymap('n', '', '"+p', { noremap = true }) vim.api.nvim_set_keymap('v', '', '"+p', { noremap = true }) end