Create a file named ~/.config/nvim/init.vim and insert this:

set nu
set tabstop=4
set softtabstop=4
set shiftwidth=4
set hlsearch
set expandtab
set updatetime=2000
set autoindent
set laststatus=2
set smartcase
set showcmd
set tags=tags
set visualbell

hi Search cterm=NONE ctermfg=black ctermbg=yellow

" <Ctrl-l> redraws the screen and removes any search highlighting.
nnoremap <silent> <C-l> :nohl<CR>

" colorscheme darkblue
colorscheme slate

"F2 and F3 to move to next/previous buffer
map <F2> :bprev<CR>
map <F3> :bnext<CR>

" next match when browsing code definitions
map <F7> :tprev<CR>
map <F8> :tnext<CR>

nnoremap n nzzzv
nnoremap N Nzzzv

" pause in activity in insert mode
autocmd CursorHoldI * :call Shortcuts()

function Shortcuts()
    let pos = getcurpos()
    let ext = expand('%:e')
    let offset = pos[2]
    let args = {"file": expand("%:p"), "line": getline("."), "line_num": pos[1], "col_num": pos[2]}

    execute ":silent %!shortcuts " . ext

    if ext == "go"
        execute ":silent %!try goimports"
    endif

    if ext == "dart"
        execute ":silent %!try dart format "
    endif

    :call cursor(pos[1], pos[2])
endfunction

syntax enable
filetype plugin on

set path+=**
set wildmenu

let g:netrw_banner=0
let g:netrw_browse_split=4
let g:netrw_altv=1
let g:netrw_liststyle=3
let g:netrw_list_hide=netrw_gitignore#Hide()
let g:netrw_list_hide.=',\(^\|\s\s)\zs\.\S\+'

nnoremap <C-n> <Cx^]>

let g:markdown_fenced_languages = ['html', 'python', 'go']

" remap ctrl+] to ctrl+d
nnoremap <C-d> <C-]>

autocmd BufNewFile *.sh 0r ~/.config/nvim/templates/template.sh
autocmd BufNewFile *.py 0r ~/.config/nvim/templates/template.py
autocmd BufNewFile *.go 0r ~/.config/nvim/templates/template.go