vim.g.mapleader = ' ' -- TODO find better place vim.g.floaterm_open_command = 'vsplit' -- better window movement vim.api.nvim_set_keymap('n', '', 'h', {silent = true}) vim.api.nvim_set_keymap('n', '', 'j', {silent = true}) vim.api.nvim_set_keymap('n', '', 'k', {silent = true}) vim.api.nvim_set_keymap('n', '', 'l', {silent = true}) -- TODO fix this -- Terminal window navigation vim.cmd([[ tnoremap h tnoremap j tnoremap k tnoremap l inoremap h inoremap j inoremap k inoremap l tnoremap ]]) -- resize with arrows vim.api.nvim_set_keymap('n', '', ':resize -2', {silent = true}) vim.api.nvim_set_keymap('n', '', ':resize +2', {silent = true}) vim.api.nvim_set_keymap('n', '', ':vertical resize -2', {silent = true}) vim.api.nvim_set_keymap('n', '', ':vertical resize +2', {silent = true}) -- improved keyboard support for navigation (especially terminal) vim.cmd([[ nnoremap h h nnoremap j j nnoremap k k nnoremap l l nnoremap h nnoremap j nnoremap k nnoremap l ]]) -- Change 2 split windows from vert to horiz or horiz to vert vim.cmd([[ map th tH map tk tK ]]) -- Make adjusting split sizes a bit more friendly vim.cmd([[ noremap :vertical resize +3 noremap :vertical resize -3 noremap :resize +3 noremap :resize -3 ]]) -- FloatTerm vim.cmd([[ nnoremap :FloatermNew --height=0.4 --width=0.98 --wintype=floating --position=bottom --autoclose=2 --title= tnoremap :FloatermNew --height=0.4 --width=0.98 --wintype=floating --position=bottom --autoclose=2 --title= nnoremap :FloatermPrev tnoremap :FloatermPrev nnoremap :FloatermNext tnoremap :FloatermNext inoremap :FloatermToggle nnoremap :FloatermToggle tnoremap :FloatermToggle tnoremap nnoremap :FloatermSend vnoremap :FloatermSend ]]) -- Telescope vim.cmd([[ nnoremap ff Telescope find_files nnoremap fg Telescope live_grep nnoremap Telescope buffers nnoremap fb Telescope buffers nnoremap fh Telescope help_tags ]]) -- better indenting vim.api.nvim_set_keymap('v', '<', '', '>gv', {noremap = true, silent = true}) -- I hate escape vim.api.nvim_set_keymap('i', 'jk', '', {noremap = true, silent = true}) vim.api.nvim_set_keymap('i', 'kj', '', {noremap = true, silent = true}) vim.api.nvim_set_keymap('i', 'jj', '', {noremap = true, silent = true}) -- Tab switch buffer vim.api.nvim_set_keymap('n', '', ':bnext', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', '', ':bprevious', {noremap = true, silent = true}) -- Move selected line / block of text in visual mode vim.api.nvim_set_keymap('x', 'K', ':move \'<-2gv-gv', {noremap = true, silent = true}) vim.api.nvim_set_keymap('x', 'J', ':move \'>+1gv-gv', {noremap = true, silent = true}) vim.cmd([[ if !exists('g:vscode') " Let quit work as expected if after entering :q the only window left open is NERD Tree itself autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif " Toggle NERDTree " Can't get by itself to work, so this works as Ctrl - space - space " https://github.com/neovim/neovim/issues/3101 " http://stackoverflow.com/questions/7722177/how-do-i-map-ctrl-x-ctrl-o-to-ctrl-space-in-terminal-vim#answer-24550772 "nnoremap :NERDTreeToggle "nmap "nnoremap :NERDTreeToggle " toggle tagbar nnoremap tb :TagbarToggle " toggle line wrap nnoremap w :set wrap! wrap? " toggle buffer (switch between current and last buffer) nnoremap bb " close buffer nnoremap bd :bd " kill buffer nnoremap bk :bd! " list buffers nnoremap bl :ls " list and select buffer nnoremap bg :ls:buffer " Telescope project nnoremap fp :Telescope project " Automatic formatting for Julia files autocmd FileType julia nnoremap :JuliaFormatterFormat " Maps quit noremap q :q " Maps quit all noremap :qa " Maps write nnoremap w :w end ]])