local keymap = require 'fs.util.keymap' local nmap = keymap.nmap local imap = keymap.imap local vmap = keymap.vmap vim.g.mapleader = ' ' -- better navigation for wrapped lines nmap { 'j', 'gj' } nmap { 'k', 'gk' } -- retain selection when indenting/unindenting in visual mode vmap { '>', '>gv' } vmap { '<', '<gv' } -- easier window navigation nmap { '', 'j' } nmap { '', 'k' } nmap { '', 'h' } nmap { '', 'l' } -- window resizing nmap { '', 'resize +1' } nmap { '', 'resize -1' } nmap { '', 'vertical resize -1' } nmap { '', 'vertical resize +1' } -- easier tab navigation nmap { '+', 'tabprevious', { silent = true } } nmap { '-', 'tabnext' , { silent = true } } -- move lines up and down nmap { '', [[:move .+1==]] , { silent = true } } nmap { '', [[:move .-2==]] , { silent = true } } vmap { '', [[:move '>+1gv=gv]], { silent = true } } vmap { '', [[:move '<-2gv=gv]], { silent = true } } imap { '', [[:move .+1==gi]] , { silent = true } } imap { '', [[:move .-2==gi]] , { silent = true } } -- move to begin/end of line in insert mode imap { '', '^' } imap { '', '$' } -- cycle through line numbering modes nmap { 'ln', 'set nonumber norelativenumber' , { silent = true } } nmap { 'll', 'set number norelativenumber' , { silent = true } } nmap { 'lr', 'set number relativenumber' , { silent = true } } -- show list of buffers and prepare to switch nmap { 'bf', 'ls:b' } -- quickly change background nmap { 'bg', [[let &background = &background ==? 'light' ? 'dark' : 'light']] } -- disable highlight until next search nmap { 'h', 'nohlsearch' } -- edit configuration files nmap { 'eg', 'tabedit ~/.config/git/config' } nmap { 'et', 'tabedit ~/.config/tmux/tmux.conf' } nmap { 'ev', 'tabedit ~/.config/nvim/init.lua' } nmap { 'es', 'tabedit ~/.config/nvim/spell/en.utf-8.add' } nmap { 'ez', 'tabedit ~/.config/zsh/.zshrc' }