diff --git a/vim.link/vimrc b/vim.link/vimrc index 30dbcd7..9c228ff 100644 --- a/vim.link/vimrc +++ b/vim.link/vimrc @@ -8,132 +8,128 @@ set history=5000 filetype plugin on "user interface stuff - "disables the autocommenting stuff. - set formatoptions-=o - set formatoptions-=r - set formatoptions-=c + "disables the autocommenting stuff. + set formatoptions-=o + set formatoptions-=r + set formatoptions-=c - "disable text wrapping via carriage returns, should only wrap visually - set textwidth=0 - set wrapmargin=0 - set wrap - set linebreak - set breakindent + "disable text wrapping via carriage returns, should only wrap visually + set textwidth=0 + set wrapmargin=0 + set wrap + set linebreak + set breakindent - "adds a ruler to the side of the screen - set number + "adds a ruler to the side of the screen + set number - "makes the ruler show how many lines away a given line is from your cursor - "set relativenumber + "makes the ruler show how many lines away a given line is from your cursor + "set relativenumber - "displays the coordinates of your cursour in the statusbar - set ruler + "displays the coordinates of your cursour in the statusbar + set ruler - "scrollofff sets the number of lines from the top or bottom of the screen before vim will scroll. sidescroll off does the same thing for the sides of the window - set scrolloff=10 - set sidescrolloff=10 + "scrollofff sets the number of lines from the top or bottom of the screen before vim will scroll. sidescroll off does the same thing for the sides of the window + set scrolloff=10 + set sidescrolloff=10 - "better command line completion - set wildmenu + "better command line completion + set wildmenu - "ignore cases in search unless you have a capital letter in the search - set ignorecase - set smartcase + "ignore cases in search unless you have a capital letter in the search + set ignorecase + set smartcase - "this allows putting the cursor just after the last character of the line. - "set virtualedit=onemore + "this allows putting the cursor just after the last character of the line. + "set virtualedit=onemore - "show unfinished commands on the RIGHT side of the statusbar. yes, it is working. - set showcmd + "show unfinished commands on the RIGHT side of the statusbar. yes, it is working. + set showcmd - "make regex a bit easier to type - set magic - set hidden + "make regex a bit easier to type + set magic + set hidden - "always display status line - set laststatus=2 + "always display status line + set laststatus=2 - "keycodes time out fast, mappings have a bit longer - set timeout timeoutlen=1000 ttimeout ttimeoutlen=10 + "keycodes time out fast, mappings have a bit longer + set timeout timeoutlen=1000 ttimeout ttimeoutlen=10 - "make it so the session feature wont overwrite our vimrc if the vimrc has newer bindings than this session. - set sessionoptions-=options + "make it so the session feature wont overwrite our vimrc if the vimrc has newer bindings than this session. + set sessionoptions-=options "tab stuff - set tabstop=4 - set shiftwidth=4 - set expandtab - set autoindent - - "if vim sees 4 whitespaces in a row, backspace will delete all of them at once, as if they were real tabs - set smarttab + set tabstop=4 + set shiftwidth=4 + set autoindent "highlighting/colour stuff - "sets the colorscheme. to get a list of the available colors, do :colorscheme - colorscheme ron + "sets the colorscheme. to get a list of the available colors, do :colorscheme + colorscheme ron - syntax enable + syntax enable - "highlight search results - set hlsearch + "highlight search results + set hlsearch - "search as you type - set incsearch + "search as you type + set incsearch - " L clears the search highlighting - noremap l :nohls + " L clears the search highlighting + noremap l :nohls "folding stuff TODO: implement other folding methods. - "give a bit of margin space for fold number - set foldcolumn=3 + "give a bit of margin space for fold number + set foldcolumn=3 - set foldenable + set foldenable - "set the minimum number of screen lines for a fold to be closable. - set foldminlines=3 + "set the minimum number of screen lines for a fold to be closable. + set foldminlines=3 - "spacebar opens or closes a fold in normal mode - nmap za + "spacebar opens or closes a fold in normal mode + nmap za - "insert folding: really basic fold method. eventually I may make some custom folds, but with the foldtext fixed a bit, this shouldn't annoy me too much. - if foldtype ==# "basicindent" - "make vim fold automatically based on indentation. - set foldmethod=indent - "set the fold text for this method, in most cases, the line just above our fold is what we want, so we wont put any text into it. just level and linecount. - function! Minimal_foldtext() - let lines_count = v:foldend - v:foldstart + 1 - let lines_count_text = '| ' . printf("%10s", lines_count . ' lines') . ' |' - let line_level_text = '| '.printf("%5s", 'level '.v:foldlevel).' |' - let foldchar = matchstr(&fillchars, 'fold:\zs.') - let foldtextstart = lines_count_text - let foldtextend = line_level_text . repeat(foldchar, 8) - let foldtextlength = strlen(foldtextstart . foldtextend) + &foldcolumn - return foldtextstart . repeat(foldchar, winwidth(0)-foldtextlength) . foldtextend - endfunction - set foldtext=Minimal_foldtext() - endif + "insert folding: really basic fold method. eventually I may make some custom folds, but with the foldtext fixed a bit, this shouldn't annoy me too much. + if foldtype ==# "basicindent" + "make vim fold automatically based on indentation. + set foldmethod=indent + "set the fold text for this method, in most cases, the line just above our fold is what we want, so we wont put any text into it. just level and linecount. + function! Minimal_foldtext() + let lines_count = v:foldend - v:foldstart + 1 + let lines_count_text = '| ' . printf("%10s", lines_count . ' lines') . ' |' + let line_level_text = '| '.printf("%5s", 'level '.v:foldlevel).' |' + let foldchar = matchstr(&fillchars, 'fold:\zs.') + let foldtextstart = lines_count_text + let foldtextend = line_level_text . repeat(foldchar, 8) + let foldtextlength = strlen(foldtextstart . foldtextend) + &foldcolumn + return foldtextstart . repeat(foldchar, winwidth(0)-foldtextlength) . foldtextend + endfunction + set foldtext=Minimal_foldtext() + endif "useful keybinds - "spell checking - "toggle spell checking - map ss :setlocal spell! + "spell checking + "toggle spell checking + map ss :setlocal spell! - "splitting pannes with | or - - nmap \| :vs - nmap \- :sp + "splitting pannes with | or - + nmap \| :vs + nmap \- :sp - " shortcuts using leader - " noremap sn ]s - " noremap sp [s - " noremap s? z= + " shortcuts using leader + " noremap sn ]s + " noremap sp [s + " noremap s? z= - "navigating splits: Control+hjkl will move from split to split - nmap h - nmap j - nmap k - nmap l + "navigating splits: Control+hjkl will move from split to split + nmap h + nmap j + nmap k + nmap l - "command mode keybinds - "w!! writes using sudo - "cnoremap w!! w !sudo tee % >/dev/null + "command mode keybinds + "w!! writes using sudo + "cnoremap w!! w !sudo tee % >/dev/null