--set some aliases to make typing this faster. local cmd=vim.cmd local opt=vim.opt local fn=vim.fn local map=vim.api.nvim_set_keymap --do package management require('packages') require('LSPconfig') require('cmp-lsp') --helper functions local function keyCode(string) return vim.api.nvim_replace_termcodes(str, true, true, true, true) end --options using vim.opt (aliased, of course.) opt.mouse='a' opt.lazyredraw=true opt.termguicolors=true opt.autoread=true opt.swapfile=false opt.history=500 opt.formatoptions='rojq' --disable hard text wrapping, will only wrap visually. opt.textwidth=0 opt.wrapmargin=0 opt.wrap=true opt.linebreak=true opt.breakindent=true --add ruler to side of screen. opt.number=true --displays cordinates of your cursor in statusbar opt.ruler=true --always leave 5 cells between cursor and side of window. opt.scrolloff=5 opt.sidescrolloff=5 --better command line completion opt.wildmenu=true --ignore case in search if search is all lowercase. opt.ignorecase=true opt.smartcase=true --show unfinished commands in statusbar. opt.showcmd=true --regex stuff opt.magic=true --always have a status line opt.laststatus=2 --tab stuff opt.tabstop=4 opt.shiftwidth=4 opt.autoindent=true --highlight search results as you type. opt.hlsearch=true opt.incsearch=true --foling stuff opt.foldlevelstart=5 cmd([[source ~/.config/nvim/foldtext.vimrc]]) opt.foldmethod='indent' opt.foldtext='minimal_foldtext()' opt.fillchars='stl:=,stlnc: ,vert:|,fold:-' opt.foldcolumn='4' opt.foldenable=true opt.foldignore='' --leader key is set through a variable, for some reason. vim.g.mapleader = ';' --sets colorscheme. to get a list of avalible options, do colorscheme vim.cmd 'colorscheme moonfly' --keyboard mappings local opts = { noremap=true, silent=true } --toggle spell check map('n', 'sp', ':setlocal spell!', opts) --[[ --easily create splits map('n', '|', ':vs', opts) ]] --[[ map('n', '-', ':sp', opts) --use ctrl+direction to move between splits. ]] map('n', '', 'h', opts) map('n', '', 'j', opts) map('n', '', 'k', opts) map('n', '', 'l', opts) --toggle folds with space. map('', '', 'za', opts) --clear highlighting with leader+h map('', 'h', ':nohls', opts) --open nvim-tree with leader+t map('n', 't', ':NvimTreeToggle', opts) --open symbols-outline with leader+s map('n', 'o', ':SymbolsOutline', opts) --telescope stuff map('n', 'ff', ':lua require "telescope".extensions.file_browser.file_browser()', opts) map('n', 'fg', ':Telescope live_grep', opts) map('n', 'fb', ':Telescope buffers', opts) map('n', 'fm', ':Telescope marks', opts) map('n', 'fp', ':Telescope registers', opts) map('n', 'fs', ':Telescope spell_suggest', opts) map('n', 'fh', ':Telescope keymaps', opts) map('n', 'fz', ':Telescope current_buffer_fuzzy_find', opts) map('n', 'fgc', ':Telescope git_commits', opts) map('n', 'fgb', ':Telescope git_branches', opts) map('n', 'fgs', ':Telescope git_stash', opts) map('n', 'ft', ':Telescope treesitter', opts) --Treesitter context map('n', 'c', ':TSContextToggle', opts) --tabline stuff (gt and gT are prev/next tab in stock vim) map('n', 'gf', ':TablineBufferNext', opts) map('n', 'gF', ':TablineBufferPrevious', opts) --gitsigns map('n', 'bl', ':Gitsigns toggle_current_line_blame', opts)