-- TODO: translate this to lua vim.cmd [[ """ Settings set suffixes+=.aux,.bbl,.blg,.brf,.cb,.dvi,.idx,.ilg,.ind,.inx,.jpg,.log,.out,.png,.toc set suffixes-=.h set suffixes-=.obj set tabstop=3 softtabstop=3 set shiftwidth=3 set expandtab set smartindent " set foldmethod=indent " set foldlevel=0 set undodir=~/.vim/undo set undofile set noswapfile set hlsearch set hidden set ignorecase set smartcase set wrap set linebreak " set guicursor= " always use the block cursor syntax on set redrawtime=1000 " max syntax highlight time set number "relativenumber "autocmd InsertEnter * :set norelativenumber " Automatically toggle line numbers "autocmd InsertLeave * :set relativenumber set noerrorbells set encoding=UTF-8 set cursorline set mouse=a set incsearch set scrolloff=5 " set wildmenu " set wildmode=full " TextEdit might fail if hidden is not set. set hidden set cmdheight=1 " Give more space for displaying messages. " Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable " delays and poor user experience. set updatetime=300 " Don't pass messages to |ins-completion-menu|. set shortmess+=c " Spell check! set spelllang=en_us " spell check in git commits autocmd Filetype gitcommit setlocal spell set showcmd set signcolumn=yes " disable spell check in help files autocmd FileType help setlocal nospell filetype plugin on " Macro for opening a new terminal with spell check off command! Term tabnew | setlocal nospell | term autocmd FileType help setlocal nospell " test whitespace -> " more test whitespace -> " Indented text " even more test whitespace -> """ Key bindings let mapleader = " " " *sigh*... command! Q q command! W w command! Wq wq command! WQ wq command! Wa wa command! WA wa command! Qa qa command! QA qa command! Wqa wqa command! WQa wqa command! WQA wqa " Press Alt h to toggle highlighting on/off, and show current value. noremap set hlsearch! hlsearch? " Toggle spell check with alt S noremap set spell! spell? " find + replace with alt S nnoremap %s//g " Escape to enter normal mode in the terminal tnoremap nnoremap = :exe "resize " . (winheight(0) * 3/2) nnoremap + :exe "resize " . (winheight(0) * 3/2) nnoremap - :exe "resize " . (winheight(0) * 2/3) " Switch panes with ctrl hjkl nnoremap h nnoremap j nnoremap k nnoremap l " Move lines around in visual mode with J and K vnoremap J :m '>+1gv=gv vnoremap K :m '<-2gv=gv " Format text with Q, rather than gw nnoremap Q gw colorscheme slate ]] -- 24-bit color vim.cmd [[ "Use 24-bit (true-color) mode in Vim/Neovim when outside tmux. "If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and use tmux's 24-bit color support "(see < http://sunaku.github.io/tmux-24bit-color.html#usage > for more information.) if (empty($TMUX)) if (has("nvim")) "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > let $NVIM_TUI_ENABLE_TRUE_COLOR=1 endif "For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 > "Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd > " < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 > if (has("termguicolors")) "set termguicolors endif endif ]] -- Make vim a hex editor -- Edit *.bin files as binaries rather than text files (if your file isn't a .bin, -- make a symlink that points to it with the .bin extension and edit the symlink ;) vim.cmd [[ augroup Binary au! au BufReadPre *.bin let &bin=1 au BufReadPost *.bin if &bin | %!xxd au BufReadPost *.bin set ft=xxd | endif au BufWritePre *.bin if &bin | %!xxd -r au BufWritePre *.bin endif au BufWritePost *.bin if &bin | %!xxd au BufWritePost *.bin set nomod | endif augroup END ]] -- 'Visual At' plugin (https://github.com/stoeffel/.dotfiles/blob/master/vim/visual-at.vim) -- basically, record a macro, select some lines, then run it, and the macro -- will be executed on all visual selected lines individually vim.cmd [[ xnoremap @ :call ExecuteMacroOverVisualRange() function! ExecuteMacroOverVisualRange() echo "@".getcmdline() execute ":'<,'>normal @".nr2char(getchar()) endfunction ]] -- Automatically jump to the last position in a file when opening vim.cmd [[ au BufReadPost * if expand('%:p') !~# '\m/\.git/' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif ]] -- Highlight trailing whitespace in red vim.cmd [[ highlight ExtraWhitespace ctermbg=red guibg=red match ExtraWhitespace /\s\+$/ au BufWinEnter * match ExtraWhitespace /\s\+$/ au InsertEnter * match ExtraWhitespace /\s\+\%#\@