Last active
December 27, 2018 06:20
-
-
Save alexniver/9145ebca1222f175c74ce0e728c79df4 to your computer and use it in GitHub Desktop.
windows下使用的vim简易配置
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
" General {{{ | |
set nocompatible | |
set nobackup | |
set noswapfile | |
set history=1024 | |
set autochdir | |
set whichwrap=b,s,<,>,[,] | |
set nobomb | |
set backspace=indent,eol,start whichwrap+=<,>,[,] | |
" Vim 的默认寄存器和系统剪贴板共享 | |
set clipboard+=unnamed | |
" 设置 alt 键不映射到菜单栏 | |
set winaltkeys=no | |
" }}} | |
" Lang & Encoding {{{ | |
set fileencodings=utf-8,gbk2312,gbk,gb18030,cp936 | |
set encoding=utf-8 | |
set langmenu=zh_CN | |
let $LANG = 'en_US.UTF-8' | |
"language messages zh_CN.UTF-8 | |
" }}} | |
" GUI {{{ | |
colorscheme Tomorrow-Night | |
source $VIMRUNTIME/delmenu.vim | |
source $VIMRUNTIME/menu.vim | |
set cursorline | |
set hlsearch | |
set number | |
" 窗口大小 | |
set lines=35 columns=140 | |
" 分割出来的窗口位于当前窗口下边/右边 | |
set splitbelow | |
set splitright | |
"不显示工具/菜单栏 | |
set guioptions-=T | |
set guioptions-=m | |
set guioptions-=L | |
set guioptions-=r | |
set guioptions-=b | |
" 使用内置 tab 样式而不是 gui | |
set guioptions-=e | |
set nolist | |
" set listchars=tab:?\ ,eol:?,trail:·,extends:>,precedes:< | |
set guifont=Inconsolata:h12:cANSI | |
" }}} | |
" Format {{{ | |
set autoindent | |
set smartindent | |
set tabstop=4 | |
set expandtab | |
set softtabstop=4 | |
"set foldmethod=indent | |
syntax on | |
" }}} | |
" Keymap {{{ | |
let mapleader="," | |
nmap <leader>s :source $VIM/_vimrc<cr> | |
nmap <leader>e :e $VIM/_vimrc<cr> | |
map <leader>tn :tabnew<cr> | |
map <leader>tc :tabclose<cr> | |
map <leader>th :tabp<cr> | |
map <leader>tl :tabn<cr> | |
" 移动分割窗口 | |
nmap <C-j> <C-W>j | |
nmap <C-k> <C-W>k | |
nmap <C-h> <C-W>h | |
nmap <C-l> <C-W>l | |
" 正常模式下 alt+j,k,h,l 调整分割窗口大小 | |
nnoremap <M-j> :resize +5<cr> | |
nnoremap <M-k> :resize -5<cr> | |
nnoremap <M-h> :vertical resize -5<cr> | |
nnoremap <M-l> :vertical resize +5<cr> | |
" 插入模式移动光标 alt + 方向键 | |
inoremap <M-j> <Down> | |
inoremap <M-k> <Up> | |
inoremap <M-h> <left> | |
inoremap <M-l> <Right> | |
" IDE like delete | |
inoremap <C-BS> <Esc>bdei | |
nnoremap vv ^vg_ | |
" 转换当前行为大写 | |
inoremap <C-u> <esc>mzgUiw`za | |
" 命令模式下的行首尾 | |
cnoremap <C-a> <home> | |
cnoremap <C-e> <end> | |
nnoremap <F2> :setlocal number!<cr> | |
nnoremap <leader>w :set wrap!<cr> | |
imap <C-v> "+gP | |
vmap <C-c> "+y | |
vnoremap <BS> d | |
vnoremap <C-C> "+y | |
vnoremap <C-Insert> "+y | |
imap <C-V> "+gP | |
map <S-Insert> "+gP | |
cmap <C-V> <C-R>+ | |
cmap <S-Insert> <C-R>+ | |
exe 'inoremap <script> <C-V>' paste#paste_cmd['i'] | |
exe 'vnoremap <script> <C-V>' paste#paste_cmd['v'] | |
" 打开当前目录 windows | |
map <leader>ex :!start explorer %:p:h<CR> | |
" 打开当前目录CMD | |
map <leader>cmd :!start<cr> | |
" 打印当前时间 | |
map <F3> a<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc> | |
" 复制当前文件/路径到剪贴板 | |
nmap ,fn :let @*=substitute(expand("%"), "/", "\\", "g")<CR> | |
nmap ,fp :let @*=substitute(expand("%:p"), "/", "\\", "g")<CR> | |
" 设置切换Buffer快捷键" | |
nnoremap <C-left> :bn<CR> | |
nnoremap <C-right> :bp<CR> | |
" }}} | |
set nocompatible " be iMproved, required | |
filetype off " required | |
" 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 'VundleVim/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 from http://vim-scripts.org/vim/scripts.html | |
" Plugin 'L9' | |
" Git plugin not hosted on GitHub | |
Plugin 'git://git.wincent.com/command-t.git' | |
" git repos on your local machine (i.e. when working on your own plugin) | |
Plugin 'file:///home/gmarik/path/to/plugin' | |
" The sparkup vim script is in a subdirectory of this repo called vim. | |
" Pass the path to set the runtimepath properly. | |
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} | |
" Install L9 and avoid a Naming conflict if you've already installed a | |
" different version somewhere else. | |
" Plugin 'ascenator/L9', {'name': 'newL9'} | |
" All of your Plugins must be added before the following line | |
call vundle#end() " required | |
filetype plugin indent on " required | |
" To ignore plugin indent changes, instead use: | |
"filetype plugin on | |
" | |
" Brief help | |
" :PluginList - lists configured plugins | |
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate | |
" :PluginSearch foo - searches for foo; append `!` to refresh local cache | |
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal | |
" | |
" see :h vundle for more details or wiki for FAQ | |
" Put your non-Plugin stuff after this line | |
" | |
let mapleader = "," | |
set autowrite | |
set nocompatible " Disable compatibility to old-time vi | |
set showmatch " Show matching brackets. | |
set ignorecase " Do case insensitive matching | |
set mouse=v " middle-click paste with mouse | |
set hlsearch " highlight search results | |
set tabstop=4 " number of columns occupied by a tab character | |
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing | |
set expandtab " converts tabs to white space | |
set shiftwidth=4 " width for autoindents | |
set autoindent " indent a new line the same amount as the line just typed | |
set number " add line numbers | |
set wildmode=longest,list " get bash-like tab completions | |
set cc=80 " set an 80 column border for good coding style | |
" set tab, default 4 space | |
" set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab | |
" Spaces & Tabs {{{ | |
set tabstop=4 " number of visual spaces per TAB | |
set softtabstop=4 " number of spaces in tab when editing | |
set shiftwidth=4 " number of spaces to use for autoindent | |
set expandtab " tabs are space | |
set autoindent | |
set copyindent " copy indent from the previous line | |
" }}} Spaces & Tabs | |
autocmd BufNewFile,BufRead,BufWrite *.go setlocal tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab | |
" nerdtree | |
map <F2> :NERDTreeToggle<CR> | |
let NERDTreeQuitOnOpen=1 | |
" auto locate to last edit positon | |
au BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment