" mitsuo's vimrc " Created c. 2019-11-11 " " ┌─┬─┬─┬─┬─┬─┐ " │m│i│t│s│u│o│✓x が " ├─┼─┼─┼─┼─┼─┤ ん " │v│i│m│r│c│←│█▓▒░ ば " └─┴─┴─┴─┴─┴─┘ れ " XDG compliant " TODO: sort sections " Useful " ---------------------------------------------------------------------- set nocompatible " Auto-recognize files and apply pluggins " filetype plugin indent on syntax on set wildmenu set showcmd set scrolloff=5 " show a few lines of context " not default in some systems set backspace=indent,eol,start " number gutter set nonumber set norelativenumber " Search " ---------------------------------------------------------------------- set hlsearch set incsearch " Redraw and turn off search highlight in normal mode (non recursive) nnoremap :nohl set ignorecase set smartcase " Indentation " ---------------------------------------------------------------------- " 4 column softtabs (uses ' ', not '\t'). " TODO: move this 'guide' to somewhere apropiate " tab->softtab (:set tabstop=n) (:set expandtab) :retab " softtab->tab :set noexpandtab :set tabstop={softtabstop} :retab! " Caution: This will insert a tab wherever it can, even between words " separated by as few as 2 spaces! set tabstop=8 set softtabstop=4 set shiftwidth=4 set expandtab " autoindent -> smartindent -> cindent -> indentexpr (from less to more " general, each one overrides the previous ones) set smartindent " This is a really nice and simple one "set cindent "set cinoptions=:0,g0 " See C-indenting " Automatic formatting " ---------------------------------------------------------------------- " see fo-table set formatoptions=rql set formatoptions-=o " Automatically insert the current comment leader " after hitting 'o'. set formatoptions+=t " auto-wrap text (when inserting) set formatoptions+=c " auto-wrap comments (when inserting) set formatoptions+=p " Don't break honorifics like Prof. Smith set formatoptions+=n " Allow lists set formatoptions+=j " Removes comment leader when joining lines " Word wrap " ---------------------------------------------------------------------- set wrap set linebreak " To 'justify' comments or block of text (paragraph) use "gq{motion}" or " "gp{motion}", where {motion} can be "[/", "]/", "ip", "i{", "a{". set textwidth=80 " Other settings " ---------------------------------------------------------------------- set mouse=a " set cmdheight=1 " Always display the status line, even if only one window is displayed set laststatus=2 set ruler set encoding=utf-8 " Mappings " ---------------------------------------------------------------------- map :tabp map :tabn " TODO: Funcking unmap the F1 key "unmap " Yanking and pasting " ---------------------------------------------------------------------- " TODO: map something to "+y (cut buffer) and "*y (selection buffer) while in " visual mode. "vmap <++> "+y " The yank to the cut buffer (clipboard) "vmap <++> "*y " The yank to the selection buffer " Buffers " ---------------------------------------------------------------------- set hidden map :bNext map :bnext " Printing " ---------------------------------------------------------------------- set printoptions=paper:A4,duplex:long " set printoptions+=number:y " TODO: Figure out how to print multibyte encodings. Enabling this settings " produces errors. " set printencoding=utf-8 " set printmbcharset=JIS_X_1990 " This allows Japanese characters to be printed " set printmbfont=r:Noto-Sans-CJK-JP " Variables " ---------------------------------------------------------------------- set undodir=$XDG_DATA_HOME/vim/undo set directory=$XDG_DATA_HOME/vim/swap set backupdir=$XDG_DATA_HOME/vim/backup set viminfo+='1000,n$XDG_DATA_HOME/vim/viminfo set runtimepath=$XDG_CONFIG_HOME/vim,$VIMRUNTIME,$XDG_CONFIG_HOME/vim/after " TODO fix this "let vcpath="~/.vim/vimfun/" " vim configuration path " Functions " ---------------------------------------------------------------------- source ~/.config/vim/fun.vim " Additions " ---------------------------------------------------------------------- " TODO: Funcion para reindentar archivo con mi configuracion. Esta funcion de " vim.fandom.com no se como funciona. (Ver perlexpr?) ":command! -nargs=1 -range SuperRetab ,s/\v%(^ *)@<= {}/\t/g "FIX: this shit :( " digr :) 0x263a :( 0x2639 " yields result of previous WORD arithmetic expression (from the Vim wiki) "inoremap yiW==0 " Replaces previous WORD arithmetic expression with result inoremap diWi=" " iVim " ---------------------------------------------------------------------- " TODO: map :h _argument_ to :h _argument_ L_ This makes help window " to almost fill the super small screen. " Plugins " ---------------------------------------------------------------------- " Install vim-plug if empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif call plug#begin() Plug 'ARM9/arm-syntax-vim' au BufNewFile,BufRead *.s,*.S set filetype=arm " arm = armv6/7 call plug#end()