mirror of https://github.com/einverne/dotfiles.git
Ein Verne
9 years ago
7 changed files with 486 additions and 6 deletions
@ -0,0 +1,3 @@ |
|||||||
|
[submodule ".vim/bundle/Vundle.vim"] |
||||||
|
path = .vim/bundle/Vundle.vim |
||||||
|
url = https://github.com/VundleVim/Vundle.vim.git |
@ -0,0 +1,90 @@ |
|||||||
|
" vimrc file for following the coding standards specified in PEP 7 & 8. |
||||||
|
" |
||||||
|
" To use this file, source it in your own personal .vimrc file (``source |
||||||
|
" <filename>``) or, if you don't have a .vimrc file, you can just symlink to it |
||||||
|
" (``ln -s <this file> ~/.vimrc``). All options are protected by autocmds |
||||||
|
" (read below for an explanation of the command) so blind sourcing of this file |
||||||
|
" is safe and will not affect your settings for non-Python or non-C files. |
||||||
|
" |
||||||
|
" |
||||||
|
" All setting are protected by 'au' ('autocmd') statements. Only files ending |
||||||
|
" in .py or .pyw will trigger the Python settings while files ending in *.c or |
||||||
|
" *.h will trigger the C settings. This makes the file "safe" in terms of only |
||||||
|
" adjusting settings for Python and C files. |
||||||
|
" |
||||||
|
" Only basic settings needed to enforce the style guidelines are set. |
||||||
|
" Some suggested options are listed but commented out at the end of this file. |
||||||
|
|
||||||
|
" Number of spaces that a pre-existing tab is equal to. |
||||||
|
" For the amount of space used for a new tab use shiftwidth. |
||||||
|
au BufRead,BufNewFile *py,*pyw,*.c,*.h set tabstop=8 |
||||||
|
|
||||||
|
" What to use for an indent. |
||||||
|
" This will affect Ctrl-T and 'autoindent'. |
||||||
|
" Python: 4 spaces |
||||||
|
" C: tabs (pre-existing files) or 4 spaces (new files) |
||||||
|
au BufRead,BufNewFile *.py,*pyw set shiftwidth=4 |
||||||
|
au BufRead,BufNewFile *.py,*.pyw set expandtab |
||||||
|
fu! Select_c_style() |
||||||
|
if search('^\t', 'n', 150) |
||||||
|
set shiftwidth=8 |
||||||
|
set noexpandtab |
||||||
|
el |
||||||
|
set shiftwidth=4 |
||||||
|
set expandtab |
||||||
|
en |
||||||
|
endf |
||||||
|
au BufRead,BufNewFile *.c,*.h call Select_c_style() |
||||||
|
au BufRead,BufNewFile Makefile* set noexpandtab |
||||||
|
|
||||||
|
" Use the below highlight group when displaying bad whitespace is desired. |
||||||
|
highlight BadWhitespace ctermbg=red guibg=red |
||||||
|
|
||||||
|
" Display tabs at the beginning of a line in Python mode as bad. |
||||||
|
au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/ |
||||||
|
" Make trailing whitespace be flagged as bad. |
||||||
|
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/ |
||||||
|
|
||||||
|
" Wrap text after a certain number of characters |
||||||
|
" Python: 79 |
||||||
|
" C: 79 |
||||||
|
au BufRead,BufNewFile *.py,*.pyw,*.c,*.h set textwidth=79 |
||||||
|
|
||||||
|
" Turn off settings in 'formatoptions' relating to comment formatting. |
||||||
|
" - c : do not automatically insert the comment leader when wrapping based on |
||||||
|
" 'textwidth' |
||||||
|
" - o : do not insert the comment leader when using 'o' or 'O' from command mode |
||||||
|
" - r : do not insert the comment leader when hitting <Enter> in insert mode |
||||||
|
" Python: not needed |
||||||
|
" C: prevents insertion of '*' at the beginning of every line in a comment |
||||||
|
au BufRead,BufNewFile *.c,*.h set formatoptions-=c formatoptions-=o formatoptions-=r |
||||||
|
|
||||||
|
" Use UNIX (\n) line endings. |
||||||
|
" Only used for new files so as to not force existing files to change their |
||||||
|
" line endings. |
||||||
|
" Python: yes |
||||||
|
" C: yes |
||||||
|
au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix |
||||||
|
|
||||||
|
" auto add #! /usr/bin/env python |
||||||
|
autocmd BufNewfile *.py call append(0,'#!/usr/bin/env python') |
||||||
|
autocmd BufNewfile *.py call append(1,'# -*- coding: UTF-8 -*-') |
||||||
|
|
||||||
|
" ---------------------------------------------------------------------------- |
||||||
|
" The following section contains suggested settings. While in no way required |
||||||
|
" to meet coding standards, they are helpful. |
||||||
|
|
||||||
|
" Set the default file encoding to UTF-8: ``set encoding=utf-8`` |
||||||
|
|
||||||
|
" Puts a marker at the beginning of the file to differentiate between UTF and |
||||||
|
" UCS encoding (WARNING: can trick shells into thinking a text file is actually |
||||||
|
" a binary file when executing the text file): ``set bomb`` |
||||||
|
|
||||||
|
" For full syntax highlighting: |
||||||
|
"``let python_highlight_all=1`` |
||||||
|
"``syntax on`` |
||||||
|
|
||||||
|
" Automatically indent based on file type: ``filetype indent on`` |
||||||
|
" Keep indentation level from previous line: ``set autoindent`` |
||||||
|
|
||||||
|
" Folding based on indentation: ``set foldmethod=indent`` |
@ -0,0 +1,45 @@ |
|||||||
|
set nocompatible " be iMproved, required |
||||||
|
filetype off " required |
||||||
|
|
||||||
|
" set the runtime path to include Vundle and initialize |
||||||
|
if has("win32") |
||||||
|
set rtp+=$VIM/vimfiles/bundle/Vundle.vim |
||||||
|
call vundle#begin('$VIM/vimfiles/bundle') |
||||||
|
else |
||||||
|
set rtp+=~/.vim/bundle/Vundle.vim |
||||||
|
call vundle#begin() |
||||||
|
endif |
||||||
|
" alternatively, pass a path where Vundle should install plugins |
||||||
|
"call vundle#begin('~/some/path/here') |
||||||
|
|
||||||
|
" let Vundle manage Vundle, required |
||||||
|
Plugin 'gmarik/Vundle.vim' |
||||||
|
|
||||||
|
" The following are examples of different formats supported. |
||||||
|
" Keep Plugin commands between vundle#begin/end. |
||||||
|
" plugin on GitHub repo |
||||||
|
Plugin 'tpope/vim-fugitive' |
||||||
|
Plugin 'vim-perl/vim-perl' |
||||||
|
Plugin 'godlygeek/tabular' |
||||||
|
Plugin 'plasticboy/vim-markdown' |
||||||
|
Plugin 'scrooloose/nerdtree' |
||||||
|
Plugin 'davidhalter/jedi-vim' |
||||||
|
Plugin 'ervandew/supertab' |
||||||
|
Plugin 'Raimondi/delimitMate' |
||||||
|
"show tabs |
||||||
|
Plugin 'nathanaelkane/vim-indent-guides' |
||||||
|
Plugin 'vim-scripts/taglist.vim' |
||||||
|
" Plugin 'powerline/powerline', {'rtp': 'powerline/bindings/vim/'} |
||||||
|
" Plugin 'Lokaltog/vim-powerline' |
||||||
|
" Plugin 'bling/vim-airline' |
||||||
|
|
||||||
|
" plugin from http://vim-scripts.org/vim/scripts.html |
||||||
|
Plugin 'L9' |
||||||
|
Plugin 'perl-support.vim' |
||||||
|
|
||||||
|
" Git plugin not hosted on GitHub |
||||||
|
Plugin 'git://git.wincent.com/command-t.git' |
||||||
|
|
||||||
|
call vundle#end() " required |
||||||
|
filetype plugin indent on " required |
||||||
|
|
@ -0,0 +1,302 @@ |
|||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" => Judge current OS is Windows or Linux |
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
if(has("win32") || has("win64") || has("win95") || has("win16")) |
||||||
|
let g:iswindows = 1 |
||||||
|
else |
||||||
|
let g:iswindows = 0 |
||||||
|
endif |
||||||
|
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" => Judge current process is vim or gvim |
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
if has("gui_running") |
||||||
|
let g:isGUI = 1 |
||||||
|
else |
||||||
|
let g:isGUI = 0 |
||||||
|
endif |
||||||
|
|
||||||
|
|
||||||
|
" 引用vundle_vimrc |
||||||
|
" 引用python_vimrc配置文件 |
||||||
|
if g:iswindows |
||||||
|
source $VIM/vundle_vimrc |
||||||
|
source $VIM/python_vimrc |
||||||
|
else |
||||||
|
source ~/.vim/startup/vundle_vimrc |
||||||
|
source ~/.vim/startup/python_vimrc |
||||||
|
endif |
||||||
|
|
||||||
|
source $VIMRUNTIME/vimrc_example.vim |
||||||
|
source $VIMRUNTIME/mswin.vim |
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" => General |
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" Sets how many lines of history VIM has to remember |
||||||
|
set history=1000 |
||||||
|
|
||||||
|
" set to auto read when a file is changed outside |
||||||
|
set autoread |
||||||
|
|
||||||
|
" with a map leader it's possible to do extra key combinations |
||||||
|
" like <leader>w saves the current file |
||||||
|
let mapleader = "," |
||||||
|
let g:mapleader = "," |
||||||
|
|
||||||
|
" fast saving |
||||||
|
nmap <leader>w :w!<cr> |
||||||
|
|
||||||
|
"编辑vimrc之后,重新加载 |
||||||
|
if g:iswindows |
||||||
|
autocmd! bufwritepost _vimrc source $VIM/_vimrc |
||||||
|
else |
||||||
|
autocmd! bufwritepost *.vimrc source $HOME/.vimrc |
||||||
|
endif |
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" => VIM user interface |
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" set 8 lines to the cursor - when moving vertically using j/k |
||||||
|
" j/k移动时光标距离文件上下n行 缩写 set so = 8 |
||||||
|
set scrolloff=8 |
||||||
|
|
||||||
|
" gVim automatically maximize when it open |
||||||
|
" 启动时最大化gVim |
||||||
|
" http://superuser.com/questions/140419/how-to-start-gvim-maximized |
||||||
|
au GUIEnter * simalt ~x |
||||||
|
|
||||||
|
" 如下命令使鼠标用起来象微软 Windows |
||||||
|
behave mswin |
||||||
|
|
||||||
|
" 高亮整行 |
||||||
|
set cursorline |
||||||
|
|
||||||
|
" always show current position |
||||||
|
set ruler |
||||||
|
|
||||||
|
" height of the command bar |
||||||
|
set cmdheight=2 |
||||||
|
|
||||||
|
" in many terminal emulators the mouse works just fine, thus enable it |
||||||
|
if has('mouse') |
||||||
|
set mouse=a |
||||||
|
endif |
||||||
|
|
||||||
|
" Ignore case when searching 忽略大小写 |
||||||
|
set ignorecase |
||||||
|
|
||||||
|
" When searching try to be smart about cases |
||||||
|
set smartcase |
||||||
|
|
||||||
|
" Highlight search results |
||||||
|
set hlsearch |
||||||
|
|
||||||
|
" Makes search act like search in modern browsers |
||||||
|
set incsearch |
||||||
|
|
||||||
|
" for regular expressions turn magic on |
||||||
|
set magic |
||||||
|
|
||||||
|
set showcmd |
||||||
|
|
||||||
|
if has('multi_byte_ime') |
||||||
|
"未开启IME时光标背景色 |
||||||
|
hi Cursor guifg=bg guibg=Orange gui=NONE |
||||||
|
"开启IME时光标背景色 |
||||||
|
hi CursorIM guifg=NONE guibg=Skyblue gui=NONE |
||||||
|
" 关闭Vim的自动切换IME输入法(插入模式和检索模式) |
||||||
|
set iminsert=0 imsearch=0 |
||||||
|
" 插入模式输入法状态未被记录时,默认关闭IME |
||||||
|
"inoremap <silent> <ESC> <ESC>:set iminsert=0<CR> |
||||||
|
endif |
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" => Colors and Fonts |
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
"语法高亮 |
||||||
|
syntax on |
||||||
|
|
||||||
|
" using monokai color |
||||||
|
" there should be molokai.vim file under ~/vimfile/colors/ |
||||||
|
" https://github.com/tomasr/molokai |
||||||
|
colorscheme molokai |
||||||
|
|
||||||
|
"vim内部编码 |
||||||
|
set encoding=utf-8 |
||||||
|
" set current file encoding |
||||||
|
set fileencoding=utf-8 |
||||||
|
"按照utf-8 without bom,utf-8,顺序识别打开文件 |
||||||
|
set fileencodings=ucs-bom,utf-8,gbk,gb2312,cp936,big5,gb18030,shift-jis,latin1 |
||||||
|
|
||||||
|
"防止菜单乱码 |
||||||
|
if(g:iswindows && g:isGUI) |
||||||
|
source $VIMRUNTIME/delmenu.vim |
||||||
|
source $VIMRUNTIME/menu.vim |
||||||
|
language messages zh_CN.utf-8 |
||||||
|
endif |
||||||
|
"默认以双字节处理那些特殊字符 |
||||||
|
if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)' |
||||||
|
set ambiwidth=double |
||||||
|
endif |
||||||
|
|
||||||
|
set nobomb "不自动设置字节序标记 |
||||||
|
|
||||||
|
set guifont=Courier\ New\:h12 |
||||||
|
" set guifont=Droid\ Sans\ Mono\ for\ Powerline\:h12 |
||||||
|
set guifontwide=NSimsun\:h12 |
||||||
|
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" => Files, backups and undo |
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" Turn backup off, since most stuff is in SVN, git et.c anyway... |
||||||
|
" no backup file, no write backup file, no swap file |
||||||
|
set nobackup |
||||||
|
set nowb |
||||||
|
set noswapfile |
||||||
|
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" => Text, tab and indent related |
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限 |
||||||
|
set nocompatible |
||||||
|
"设置自动缩进 |
||||||
|
set autoindent |
||||||
|
|
||||||
|
"C语言自动缩进 |
||||||
|
set cindent |
||||||
|
"设置Tab缩进4格 |
||||||
|
set tabstop=4 |
||||||
|
|
||||||
|
" 设置">"操作符 缩进,增加的缩进量是使用'shiftwidth'指定,默认是8 |
||||||
|
set shiftwidth=4 |
||||||
|
|
||||||
|
"显示行号 |
||||||
|
set nu |
||||||
|
|
||||||
|
" set smart indent |
||||||
|
set si |
||||||
|
" wrap lines |
||||||
|
set wrap |
||||||
|
|
||||||
|
" YAML |
||||||
|
autocmd Filetype yaml setlocal tabstop=2 shiftwidth=2 |
||||||
|
|
||||||
|
" Web |
||||||
|
autocmd Filetype json setlocal tabstop=2 shiftwidth=2 |
||||||
|
autocmd Filetype javascript setlocal tabstop=2 shiftwidth=2 |
||||||
|
autocmd Filetype html setlocal tabstop=2 shiftwidth=2 |
||||||
|
autocmd Filetype css setlocal tabstop=2 shiftwidth=2 |
||||||
|
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" => Moving around, tabs, windows and buffers |
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" Treat long lines as break lines (useful when moving around in them) |
||||||
|
map j gj |
||||||
|
map k gk |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""""""""""""""""""""""""""""" |
||||||
|
" => Status line |
||||||
|
"""""""""""""""""""""""""""""" |
||||||
|
"状态栏显示内容 |
||||||
|
"define 3 custom highlight groups |
||||||
|
hi User1 ctermbg=green ctermfg=red guibg=green guifg=red |
||||||
|
hi User2 ctermbg=gray ctermfg=blue guibg=gray guifg=blue |
||||||
|
hi User3 ctermbg=blue ctermfg=green guibg=blue guifg=green |
||||||
|
|
||||||
|
" always show the status line |
||||||
|
set laststatus=2 |
||||||
|
set statusline= |
||||||
|
" full filename modified flag read only flag help file flag Preview |
||||||
|
set statusline=%1*%F%m%r%h%w\ |
||||||
|
set statusline+=%2*[%{strlen(&fenc)?&fenc:'none'}, "file encoding |
||||||
|
set statusline+=%{&ff}] "file format |
||||||
|
set statusline+=%y "file type |
||||||
|
set statusline+=%= "divider left/right separator" |
||||||
|
set statusline+=%3*%c, "column |
||||||
|
set statusline+=%l/%L "line no/all line" |
||||||
|
set statusline+=\ %P |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" Plugin settings |
||||||
|
" Normal mode F2 to call NERDTree |
||||||
|
nmap <F2> :NERDTreeToggle<cr> |
||||||
|
|
||||||
|
" plasticboy/vim-markdown |
||||||
|
" disable folding |
||||||
|
let g:vim_markdown_folding_disabled=1 |
||||||
|
" Highlight YAML frontmatter as used by Jekyll |
||||||
|
let g:vim_markdown_frontmatter=1 |
||||||
|
|
||||||
|
" intend guides |
||||||
|
let g:indent_guides_enable_on_vim_startup = 1 |
||||||
|
|
||||||
|
" jedi-vim plugin config |
||||||
|
let g:jedi#completions_command = "<C-N>" |
||||||
|
let g:jedi#popup_on_dot = 0 |
||||||
|
|
||||||
|
" powerline |
||||||
|
" hide the default mode text (e.g. -- INSERT -- below the statusline) |
||||||
|
" set t_Co=256 |
||||||
|
" let g:Powerline_symbols='fancy' |
||||||
|
|
||||||
|
|
||||||
|
" general mapping |
||||||
|
" no <up> ddkP |
||||||
|
" no <down> ddp |
||||||
|
|
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" =>Others |
||||||
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" |
||||||
|
" Delete trailing white space on save, useful for Python and CoffeeScript ;) |
||||||
|
func! DeleteTrailingWS() |
||||||
|
exe "normal mz" |
||||||
|
%s/\s\+$//ge |
||||||
|
exe "normal `z" |
||||||
|
endfunc |
||||||
|
autocmd BufWrite *.py :call DeleteTrailingWS() |
||||||
|
autocmd BufWrite *.coffee :call DeleteTrailingWS() |
||||||
|
|
||||||
|
" smart way to move between windows |
||||||
|
map <C-j> <C-W>j |
||||||
|
map <C-k> <C-W>k |
||||||
|
map <C-h> <C-W>h |
||||||
|
map <C-l> <C-W>l |
||||||
|
|
||||||
|
set diffexpr=MyDiff() |
||||||
|
function! MyDiff() |
||||||
|
let opt = '-a --binary ' |
||||||
|
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif |
||||||
|
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif |
||||||
|
let arg1 = v:fname_in |
||||||
|
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif |
||||||
|
let arg2 = v:fname_new |
||||||
|
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif |
||||||
|
let arg3 = v:fname_out |
||||||
|
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif |
||||||
|
let eq = '' |
||||||
|
if $VIMRUNTIME =~ ' ' |
||||||
|
if &sh =~ '\<cmd' |
||||||
|
let cmd = '""' . $VIMRUNTIME . '\diff"' |
||||||
|
let eq = '"' |
||||||
|
else |
||||||
|
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"' |
||||||
|
endif |
||||||
|
else |
||||||
|
let cmd = $VIMRUNTIME . '\diff' |
||||||
|
endif |
||||||
|
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq |
||||||
|
endfunction |
||||||
|
|
||||||
|
function! Xml() |
||||||
|
set filetype=xml |
||||||
|
:%s/></>\r</g "把><替换成>回车< |
||||||
|
:normal gg=G<cr> |
||||||
|
endfunction |
||||||
|
map <leader>xml :call Xml() |
@ -0,0 +1,10 @@ |
|||||||
|
#!/bin/bash |
||||||
|
VIMDIR=${1:-$HOME} |
||||||
|
|
||||||
|
mv $VIMDIR/.vim $VIMDIR/.vim.old |
||||||
|
mv $VIMDIR/.vimrc $VIMDIR/.vimrc.old |
||||||
|
ln -s $PWD/.vim $VIMDIR/.vim 2> /dev/null |
||||||
|
cat $PWD/_vimrc > $PWD/.vimrc |
||||||
|
ln -s $PWD/.vimrc $VIMDIR/.vimrc 2> /dev/null |
||||||
|
|
||||||
|
git submodule init && git submodule update |
Loading…
Reference in new issue