vim.opt.tabstop = 4 -- Number of spaces that a in the file counts for. vim.opt.shiftwidth = 0 -- Number of spaces to use for each step of (auto)indent. vim.opt.expandtab = false -- Do not use the appropriate number of spaces to insert a . vim.opt.showmatch = true -- When a bracket is inserted, briefly jump to the matching vim.opt.ignorecase = true -- Ignore case in search patterns. vim.opt.smartcase = true -- Override 'ignorecase' if the pattern contains upper case vim.opt.background = dark vim.opt.mouse = "" -- Disable mouse vim.opt.number = true if vim.fn.has('nvim-0.10.0') == 1 then vim.cmd("colorscheme vim") end vim.keymap.set('', '', ':move-2', { silent = true }) vim.keymap.set('', '', ':move+1', { silent = true }) vim.keymap.set('t', '', '', { silent = true }) --auto decrypt/encrypt with gpg local gpgGroup = vim.api.nvim_create_augroup('customGpg', { clear = true }) -- autocmds execute in the order in which they were defined. -- https://neovim.io/doc/user/autocmd.html#autocmd-define vim.api.nvim_create_autocmd({ 'BufReadPre', 'FileReadPre' }, { pattern = '*.gpg', group = gpgGroup, callback = function () -- Make sure nothing is written to shada file while editing an encrypted file. vim.opt_local.shada = nil -- We don't want a swap file, as it writes unencrypted data to disk vim.opt_local.swapfile = false -- Switch to binary mode to read the encrypted file vim.opt_local.bin = true vim.cmd("let ch_save = &ch|set ch=2") end }) vim.api.nvim_create_autocmd({ 'BufReadPost', 'FileReadPost' }, { pattern = '*.gpg', group = gpgGroup, callback = function () vim.cmd("'[,']!gpg --decrypt 2> /dev/null") -- Switch to normal mode for editing vim.opt_local.bin = false vim.cmd('let &ch = ch_save|unlet ch_save') vim.cmd(":doautocmd BufReadPost " .. vim.fn.expand("%:r")) end }) -- Convert all text to encrypted text before writing vim.api.nvim_create_autocmd({ 'BufWritePre', 'FileWritePre' }, { pattern = '*.gpg', group = gpgGroup, command = "'[,']!gpg --default-recipient-self -ae 2>/dev/null", }) -- Undo the encryption so we are back in the normal text, directly -- after the file has been written. vim.api.nvim_create_autocmd({ 'BufWritePost', 'FileWritePost' }, { pattern = '*.gpg', group = gpgGroup, command = 'u' })