@ -0,0 +1,33 @@ | |||||
-- Remove any trailing whitespace from the file on write | |||||
vim.api.nvim_create_autocmd({ 'BufWritePre' }, { command = [[%s/\s\+$//e]] }) | |||||
-- Load file on last line | |||||
-- TODO: change this to use lua | |||||
vim.api.nvim_create_autocmd({ 'BufRead' }, { | |||||
command = [[if @% !~# '\.git[\/\\]COMMIT_EDITMSG$' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif]] | |||||
}) | |||||
-- Save session on VimLeave | |||||
vim.api.nvim_create_autocmd({ 'VimLeave' }, { | |||||
command = [[mksession! ~/.config/nvim/session/shutdown_session.vim]] | |||||
}) | |||||
-- Set tabs to 2 for dart, vue, and js files | |||||
vim.api.nvim_create_autocmd({ 'BufNewFile', 'BufRead' }, { | |||||
pattern = { '*.dart', '*.vue', '*.js' }, | |||||
callback = function() | |||||
vim.o.tabstop = 2 | |||||
vim.o.softtabstop = 2 | |||||
vim.o.shiftwidth = 2 | |||||
end | |||||
}) | |||||
-- Ensure to read .docker files as a dockerfile | |||||
vim.api.nvim_create_autocmd({ 'BufNewFile', 'BufRead' }, { | |||||
pattern = { '*.docker' }, | |||||
callback = function() | |||||
vim.o.syntax = 'dockerfile' | |||||
end | |||||
}) | |||||
@ -0,0 +1,30 @@ | |||||
vim.g.mapleader = ',' | |||||
vim.o.clipboard = 'unnamedplus' | |||||
vim.o.nohlsearch = true | |||||
vim.o.incsearch = true | |||||
vim.o.ignorecase = true | |||||
-- autocmd BufWritePre * :%s/\s\+$//e | |||||
vim.o.mouse = 'a' | |||||
vim.o.smartcase = true | |||||
vim.o.linebreak = true | |||||
vim.o.noswapfile = true | |||||
vim.o.nobackup = true | |||||
vim.o.undodir = vim.fn.expand('~/.config/nvim/undodir') | |||||
vim.o.undofile = true | |||||
vim.o.encoding = 'utf-8' | |||||
vim.o.number = true | |||||
vim.o.relativenumber = true | |||||
vim.o.tabstop = 4 | |||||
vim.o.softtabstop = 4 | |||||
vim.o.expandtab = true | |||||
vim.o.shiftwidth = 4 | |||||
vim.o.smarttab = true | |||||
vim.o.formatoptions = 'tqj' |
@ -0,0 +1,35 @@ | |||||
local options = { noremap = true } | |||||
vim.api.nvim_set_keymap('n', 'c', '"_c', options) | |||||
-- Easily open splits | |||||
vim.api.nvim_set_keymap('n', '<leader>hs', '<cmd>split<cr>', options) | |||||
vim.api.nvim_set_keymap('n', '<leader>vs', '<cmd>vsplit<cr>', options) | |||||
-- Copy the entire file | |||||
vim.api.nvim_set_keymap('n', '<leader>y', 'ggyG<C-o>', options) | |||||
-- Easily navigate tabs | |||||
vim.api.nvim_set_keymap('n', '<leader>1', '1gt', options) | |||||
vim.api.nvim_set_keymap('n', '<leader>2', '2gt', options) | |||||
vim.api.nvim_set_keymap('n', '<leader>3', '3gt', options) | |||||
vim.api.nvim_set_keymap('n', '<leader>4', '4gt', options) | |||||
vim.api.nvim_set_keymap('n', '<leader>5', '5gt', options) | |||||
-- Manually store session | |||||
vim.api.nvim_set_keymap('n', '<F5>', '<cmd>mksession! ~/.config/nvim/session/manual_session.vim<cr>', options) | |||||
-- Restore manually stored session | |||||
vim.api.nvim_set_keymap('n', '<F6>', '<cmd>source ~/.config/nvim/session/manual_session.vim<cr>', options) | |||||
-- Restore auto saved session created on exit | |||||
vim.api.nvim_set_keymap('n', '<F7>', '<cmd>source ~/.config/nvim/session/shutdown_session.vim<CR>', options) | |||||
-- Replace all is aliased to S. | |||||
vim.api.nvim_set_keymap('n', '<C-s>', '<cmd>%s//g<Left><Left>', options) | |||||
-- Navigating with guides | |||||
vim.api.nvim_set_keymap('n', '<leader><leader>', '<Esc>/<++><Enter>"_c4l', options) | |||||
vim.api.nvim_set_keymap('i', '<leader><leader>', '<Esc>/<++><Enter>"_c4l', options) | |||||
vim.api.nvim_set_keymap('v', '<leader><leader>', '<Esc>/<++><Enter>"_c4l', options) | |||||
-- Spell-check | |||||
vim.api.nvim_set_keymap('n', '<leader>o', '<cmd>setlocal spell! spelllang=en_au<cr>', options) |
@ -0,0 +1,19 @@ | |||||
local tabWidth = 4 | |||||
function ToggleTabWidth() | |||||
if tabWidth == 2 then | |||||
vim.o.tabstop = 4 | |||||
vim.o.softtabstop = 4 | |||||
vim.o.shiftwidth = 4 | |||||
tabWidth = 4 | |||||
print('Set tab width to 4') | |||||
return | |||||
end | |||||
vim.o.tabstop = 2 | |||||
vim.o.softtabstop = 2 | |||||
vim.o.shiftwidth = 2 | |||||
tabWidth = 2 | |||||
print('Set tab width to 2') | |||||
end | |||||
vim.keymap.set('n', '<leader>t', ToggleTabWidth, { noremap = true}) |
@ -0,0 +1,25 @@ | |||||
return require('packer').startup(function() | |||||
-- Packer can manage itself | |||||
use 'wbthomason/packer.nvim' | |||||
-- colorscheme | |||||
use 'gruvbox-community/gruvbox' | |||||
use { 'neoclide/coc.nvim', run = 'yarn install' } | |||||
use 'nvim-lua/popup.nvim' | |||||
use 'nvim-lua/plenary.nvim' | |||||
use 'nvim-telescope/telescope.nvim' | |||||
use 'nvim-telescope/telescope-fzy-native.nvim' | |||||
use 'Rican7/php-doc-modded' | |||||
use 'f-person/git-blame.nvim' | |||||
use 'dart-lang/dart-vim-plugin' | |||||
use { 'fatih/vim-go', cmd = 'GoUpdateBinaries' } | |||||
use { 'darrikonn/vim-gofmt', cmd = 'GoUpdateBinaries' } | |||||
use 'aserowy/tmux.nvim' | |||||
end) |