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