177 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Set up vim
 | |
| 
 | |
| " Basic configuration
 | |
| set nocompatible
 | |
| 
 | |
| set encoding=utf-8
 | |
| set binary
 | |
| 
 | |
| " Presentation settings
 | |
| set number              " Precede each line with its line number
 | |
| set numberwidth=3       " Number of culumns for line numbers
 | |
| set textwidth=0         " Do not wrap words (insert)
 | |
| set wrap                " Wrap words (view)
 | |
| set showcmd             " Show (partial) command in status line.
 | |
| set showmatch           " Show matching brackets.
 | |
| set ruler               " Line and column number of the cursor position
 | |
| set wildmenu            " Enhanced command completion
 | |
| set visualbell          " Use visual bell instead of beeping
 | |
| set noerrorbells        " Disable error bells"
 | |
| set laststatus=2        " Always show the status lines
 | |
| set cursorline          " Highligh the cursor line
 | |
| set t_Co=256            " Use 256 colors
 | |
| set background=dark     " Use a dark background
 | |
| 
 | |
| " Highlight spell errors
 | |
| hi SpellErrors guibg=red guifg=black ctermbg=red ctermfg=black
 | |
| 
 | |
| " Toggle spell check with F7
 | |
| map <F7> :setlocal spell! spell?<CR>
 | |
| 
 | |
| " Behavior
 | |
| " Ignore these files when completing names and in explorer
 | |
| set wildignore=.svn,CVS,.git,.hg,*.o,*.a,*.class,*.mo,*.la,*.so,*.obj,*.swp,*.jpg,*.png,*.xpm,*.gif
 | |
| set shell=$SHELL        " Use current shell for shell commands
 | |
| set hidden              " Enable multiple modified buffers
 | |
| set history=1000        " History size
 | |
| set autoread            " Automatically read feil that has been changed on disk and doesn't have changes in vim
 | |
| set backspace=indent,eol,start
 | |
| set guioptions-=T       " Disable toolbar"
 | |
| set completeopt=menuone,preview
 | |
| set cinoptions=:0,(s,u0,U1,g0,t0 " Some indentation options ':h cinoptions' for details
 | |
| set modelines=5         " Number of lines to check for vim: directives at the start/end of file
 | |
| set autoindent          " AutomaticAlly indent new line
 | |
| 
 | |
| " Indentation
 | |
| set ts=4                " Number of spaces in a tab
 | |
| set sw=4                " Number of spaces for indent
 | |
| set et                  " Expand tabs into spaces
 | |
| 
 | |
| " Mouse settings
 | |
| if has("mouse")
 | |
|   set mouse=a
 | |
| endif
 | |
| set mousehide           " Hide mouse pointer on insert mode."
 | |
| 
 | |
| " Search settings
 | |
| set incsearch           " Incremental search
 | |
| set nohlsearch          " Do not highlight search match
 | |
| set ignorecase          " Do case insensitive matching
 | |
| set smartcase           " Do not ignore if search pattern has CAPS
 | |
| 
 | |
| " Directory settings
 | |
| set nobackup            " Do not write backup files
 | |
| set noswapfile          " Do not write .swp files
 | |
| 
 | |
| " Stop here if running in restricted mode
 | |
| if v:progname =~? "rvim"
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| " Backup settings
 | |
| if has("persistent_undo")
 | |
|   silent !mkdir -vp ~/.backup/vim/undo/ > /dev/null 2>&1
 | |
|   set backupdir=~/.backup/vim,.       " List of directories for the backup file
 | |
|   set directory=~/.backup/vim,~/tmp,. " List of directory names for the swap file
 | |
|   set undofile
 | |
|   set undodir=~/.backup/vim/undo/,~/tmp,.
 | |
| endif
 | |
| 
 | |
| " Folding
 | |
| if has("folding")
 | |
|   set foldcolumn=0        " Columns for folding
 | |
|   set foldmethod=indent
 | |
|   set foldlevel=9
 | |
|   set nofoldenable        " Don't fold by default
 | |
| endif
 | |
| 
 | |
| if has("user_commands")
 | |
|   let mapleader = ","
 | |
|   let maplocalleader = "\\"
 | |
| endif
 | |
| 
 | |
| " Remember last position in file
 | |
| if has("autocmd")
 | |
|   autocmd BufReadPost *
 | |
|     \ if line("'\"") > 0 && line("'\"") <= line("$") |
 | |
|     \   exe "normal g`\"" |
 | |
|     \ endif
 | |
| endif
 | |
| 
 | |
| " In this house we obey the laws of airline
 | |
| let g:airline_powerline_fonts = 1
 | |
| let g:airline_enable_fugitive = 1
 | |
| let g:airline_theme = 'base16'
 | |
| 
 | |
| " Use Q for formatting
 | |
| map Q gq
 | |
| 
 | |
| " In many terminal emulators the mouse works just fine, thus enable it.
 | |
| if has('mouse')
 | |
|   set mouse=a
 | |
| endif
 | |
| 
 | |
| if has("autocmd")
 | |
|   " Put these in an autocmd group, so that we can delete them easily.
 | |
|   augroup vimrcEx
 | |
|     au!
 | |
| 
 | |
|     " For all text files set 'textwidth' to 78 characters.
 | |
|     autocmd FileType text setlocal textwidth=78
 | |
| 
 | |
|     " When editing a file, always jump to the last known cursor position.
 | |
|     " Don't do it when the position is invalid or when inside an event handler
 | |
|     " (happens when dropping a file on gvim).
 | |
|     " Also don't do it when the mark is in the first line, that is the default
 | |
|     " position when opening a file.
 | |
|     autocmd BufReadPost *
 | |
|           \ if line("'\"") > 1 && line("'\"") <= line("$") |
 | |
|           \   exe "normal! g`\"" |
 | |
|           \ endif
 | |
| 
 | |
|   augroup END
 | |
| 
 | |
|   " Makefile sanity
 | |
|   autocmd BufEnter ?akefile* set noet ts=8 sw=8
 | |
|   autocmd BufEnter */debian/rules set noet ts=8 sw=8
 | |
| endif " has("autocmd")
 | |
| 
 | |
| " Various options
 | |
| set shortmess+=I  " Don't show the intro message when starting vim
 | |
| set complete+=k  " Scan files with the 'dictionary' option
 | |
| set completeopt+=longest
 | |
| set scrolloff=15  " Minimal number of screen lines above/below the cursor
 | |
| set linebreak  " Wrap long lines at a blank
 | |
| 
 | |
| 
 | |
| if has("syntax")
 | |
|     syntax on  " Enable syntax highlighting
 | |
|     filetype plugin indent on
 | |
| endif
 | |
| 
 | |
| :noremap k gk
 | |
| :noremap j gj
 | |
| 
 | |
| "" Take care of screen/tmux settings
 | |
| if &term =~ '^screen'
 | |
|   " tmux will send xterm-style keys when its xterm-keys option is on
 | |
|   execute "set <xUp>=\e[1;*A"
 | |
|   execute "set <xDown>=\e[1;*B"
 | |
|   execute "set <xRight>=\e[1;*C"
 | |
|   execute "set <xLeft>=\e[1;*D"
 | |
| endif
 | |
| 
 | |
| " base16 color theme
 | |
| let base16colorspace=256
 | |
| colorscheme base16-solarized-dark
 | |
| 
 | |
| " Python-black
 | |
| if has("python3")
 | |
|   packadd black
 | |
| endif
 | |
| 
 | |
| " ALE conflicts with typescript-vim at the moment
 | |
| if ! &ft=="typescript"
 | |
|   packadd ale
 | |
| endif
 |