Last active
June 6, 2017 07:43
-
-
Save lingceng/6097985 to your computer and use it in GitHub Desktop.
vimrc with vundle, rails ctrp plugin and basic indent setting
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" out of date | |
" see https://github.com/lingceng/lingceng-config | |
" | |
" lingceng vimrc | |
" | |
set nocompatible " be iMproved, required | |
filetype off " required | |
" vundle plugins ----------- {{{ | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
" alternatively, pass a path where Vundle should install plugins | |
"call vundle#begin('~/some/path/here') | |
" let Vundle manage Vundle, required | |
Plugin 'gmarik/Vundle.vim' | |
" My Bundles here: | |
" user CTRL-P to search | |
" F5 to refresh in search window | |
Plugin 'kien/ctrlp.vim' | |
" | |
" :find user | |
" :Rcontroller | |
" gs to go to definition | |
" | |
Plugin 'tpope/vim-rails.git' | |
" | |
" code snipe | |
" | |
Plugin 'snipMate' | |
" | |
" tree navigate | |
" | |
Plugin 'The-NERD-tree' | |
" | |
" coffeescript | |
" | |
Plugin 'vim-coffee-script' | |
" | |
" show git diff | |
" | |
Plugin 'airblade/vim-gitgutter' | |
" <leader>P to preview markdown | |
" :echo has('ruby') 1 means ruby interpreter is builtin | |
" redcarpet for markdown preview | |
Plugin 'greyblake/vim-preview' | |
" All of your Plugins must be added before the following line | |
call vundle#end() " required | |
" To ignore plugin indent changes, instead use: | |
"filetype plugin on | |
" | |
" Brief help | |
" :BundleInstall - install configured plugins | |
" :PluginList - list configured plugins | |
" :PluginInstall(!) - install (update) plugins | |
" :PluginSearch(!) foo - search (or refresh cache first) for foo | |
" :PluginClean(!) - confirm (or auto-approve) removal of unused plugins | |
" | |
" see :h vundle for more details or wiki for FAQ | |
" Put your non-Plugin stuff after this line | |
" }}} | |
" required for vundle plugins | |
filetype plugin indent on | |
" syntax on | |
syntax on | |
" incsearch highlight the next match while you're stil typing | |
set hlsearch incsearch | |
" tabspace settings ------- {{{ | |
" if you use <tab> to indent the code | |
" vim use tabs other than spaces for the indentaion | |
" expandtab will turn a tab into 'tabstop' spaces | |
set expandtab | |
set tabstop=2 | |
" if you use '>' or <c-t> to indent the code, this matters this default to 8 | |
set shiftwidth=2 | |
" make backspace work like most other apps | |
set backspace=2 | |
" you can also set different indent level for other languages | |
" autocmd FileType c setlocal shiftwidth=4 tabstop=4 | |
" }}} | |
" set tempfile swpfile path | |
set dir=/tmp | |
set backupdir=/tmp | |
" for ruby syntax of minitest | |
" i_CTRL-X_CTRL-U to trigger in ruby file | |
set completefunc=syntaxcomplete#Complete | |
" set autoindent | |
set autoindent | |
" case sensitive when capital character exists | |
set smartcase | |
" custom preview command | |
let mapleader = "," | |
" http://wordlist.aspell.net/dicts/ | |
set dictionary+=~/.vim/dict/*.10 | |
" map settings ---- {{{ | |
" run current to end in shell | |
nnoremap <leader>e y$:!<c-r>" | |
vnoremap <leader>e y:!<c-r>" | |
" copy to clipboard | |
" ^ first non-blank character | |
nnoremap <leader>y "+y$ | |
vnoremap <leader>y "+y | |
nnoremap <leader>p "+p | |
" map ESC | |
" defautl is normal map | |
inoremap <leader><leader> <esc> | |
noremap <leader><leader> <esc> | |
noremap <leader>w :w<cr> | |
inoremap <leader>w <esc>:w<cr> | |
" disable old esc | |
" other is <c-c> | |
inoremap <esc> <nop> | |
" run current line in ruby | |
" | is chain to run command | |
nnoremap <leader>r 0v$:w! /tmp/vim.rb \| !irb /tmp/vim.rb<cr> | |
" run selected content in ruby | |
"vmap ,r y:!ruby -we '<c-r>"' | |
vnoremap <leader>r :w! /tmp/vim.rb \| !irb /tmp/vim.rb<cr> | |
" Ctrl+u make work upcase in insert mode | |
inoremap <c-u> <esc>viwUea | |
" make Ctrl+k to complete with dictionary | |
inoremap <c-k> <c-x><c-k> | |
" vimrc edit and source | |
nnoremap <leader>ev :tabe $MYVIMRC<cr> | |
nnoremap <leader>sv :source $MYVIMRC<cr> | |
" make quates arrounded | |
nnoremap <leader>" viw<esc>a"<esc>hbi"<esc>lel | |
inoremap <leader>" "<esc>bi"<esc>Ea | |
" mark code in markdown | |
nnoremap <leader>` viw<esc>a`<esc>hbi`<esc>lel | |
" abbreviations | |
" enc and hit the space | |
inoreabbrev enc encoding: utf-8 | |
" merge window | |
nnoremap <leader>mk <c-w>k:q<cr> | |
nnoremap <leader>mh <c-w>k:q<cr> | |
nnoremap <leader>mj <c-w>j:q<cr> | |
nnoremap <leader>ml <c-w>l:q<cr> | |
" map tails whitspace and tabs as error | |
"nnoremap <leader>w :match Error /\s+$/<cr> | |
"nnoremap <leader>W :match none<cr> | |
" clear ending white space | |
nnoremap <leader>cw :%s/\v\s+$//g<cr> | |
" warn tailing whitespace and tabs | |
match Error /\v\s+$|\t/ | |
" use :retab to repace tabs to space | |
" use plugin instead | |
" grep | |
" :silent hiding any messages | |
" vnoremap <leader>g y<esc>:grep! -R <c-r>" . <cr>:copen<cr> | |
" open NERDTree | |
nnoremap <leader>n :NERDTree<cr> | |
" find current file in NERDTree | |
nnoremap <leader>f :NERDTreeFind<cr> | |
" user alt-left to move tab left | |
" user alt-right to move tab right | |
nnoremap <C-Left> :tabprevious<CR> | |
nnoremap <C-Right> :tabnext<CR> | |
nnoremap <silent> <A-Left> :execute 'silent! tabmove ' . (tabpagenr()-2)<CR> | |
nnoremap <silent> <A-Right> :execute 'silent! tabmove ' . tabpagenr()<CR> | |
" custom statusline | |
" help statusline | |
hi User1 ctermbg=darkblue guibg=dardblue | |
set laststatus=2 | |
set statusline=%<%f\ %h%m%r%=%1*%y%*\ ts:%{&tabstop}\ %-14.(%l/%L,%c%)\ %P | |
" highlight overflow 80 | |
" http://stackoverflow.com/questions/2447109/showing-a-different-background-colour-in-vim-past-80-characters | |
set textwidth=80 | |
set colorcolumn=+1 | |
hi ColorColumn ctermbg=lightgrey guibg=lightgrey | |
" }}} | |
" eruby file setting ---------------- {{{ | |
augroup filetype_ruby | |
autocmd! | |
" run current file | |
autocmd Filetype ruby nnoremap <buffer> <leader>mr :w<cr>:!irb %\<cr> | |
augroup END | |
" }}} | |
" eruby file setting ---------------- {{{ | |
augroup filetype_eruby | |
autocmd! | |
" nowrap for html and erb | |
autocmd FileType xhtml,html,eruby setlocal nowrap | |
" <% %> for erb | |
" auto complete tag | |
" inoremap to avoid recursively map | |
" <buffer> to avoid mismap between buffer | |
" ctrl_t to complete tag for html and erb | |
autocmd Filetype xhtm,html,eruby inoremap <buffer> <c-t> <esc>bywf>a</<ESC>pa><ESC>F>a | |
" fold option--------------------------- {{{ | |
" 'foldmethod' 'fdm' string (default: "manual") | |
autocmd FileType xhtml,html,eruby setlocal foldmethod=indent | |
" 'foldlevel' 'fdl' number (default: 0) | |
" Sets the fold level: Folds with a higher level will be closed. | |
autocmd FileType xhtml,html,eruby setlocal foldlevel=2 | |
" 'foldminlines' 'fml' number (default: 1) | |
autocmd FileType xhtml,html,eruby setlocal foldminlines=20 | |
" 'foldnestmax' 'fdn' number (default: 20) | |
autocmd FileType xhtml,html,eruby setlocal foldnestmax=10 | |
" }}} | |
augroup END | |
" }}} | |
" vimscript file setting ---------------- {{{ | |
augroup filetype_vim | |
autocmd! | |
" user braces to mark fold in vimrc | |
autocmd FileType vim setlocal foldmethod=marker | |
augroup END | |
" }}} | |
" markdown file setting ---------------- {{{ | |
augroup filetype_markdown | |
autocmd! | |
let maplocalleader = "," | |
" add heading | |
autocmd Filetype markdown inoremap <buffer> <LocalLeader>1 <esc>o===<esc>o | |
autocmd Filetype markdown inoremap <buffer> <LocalLeader>2 <esc>o---<esc>o | |
autocmd Filetype markdown inoremap <buffer> <LocalLeader>3 <esc>I### <esc>o | |
autocmd Filetype markdown inoremap <buffer> <LocalLeader>4 <esc>I#### <esc>o | |
autocmd Filetype markdown inoremap <buffer> <LocalLeader>5 <esc>I##### <<esc>o | |
" to insert image | |
autocmd Filetype markdown inoremap <buffer> <LocalLeader>i []()<esc>F[a | |
augroup END | |
" }}} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment