Last active
December 24, 2015 06:38
-
-
Save payoung/6757966 to your computer and use it in GitHub Desktop.
Personal config file for gVim
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
colorscheme slate | |
set expandtab | |
set tabstop=4 | |
set shiftwidth=4 | |
map <F2> :retab | |
set guifont=Monospace\ 8 | |
" To enable the saving and restoring of screen positions. | |
let g:screen_size_restore_pos = 1 | |
" To save and restore screen for each Vim instance. | |
" This is useful if you routinely run more than one Vim instance. | |
" For all Vim to use the same settings, change this to 0. | |
let g:screen_size_by_vim_instance = 1 | |
if has("gui_running") | |
function! ScreenFilename() | |
if has('amiga') | |
return "s:.vimsize" | |
elseif has('win32') | |
return $HOME.'\_vimsize' | |
else | |
return $HOME.'/.vimsize' | |
endif | |
endfunction | |
function! ScreenRestore() | |
" Restore window size (columns and lines) and position | |
" from values stored in vimsize file. | |
" Must set font first so columns and lines are based on font size. | |
let f = ScreenFilename() | |
if has("gui_running") && g:screen_size_restore_pos && filereadable(f) | |
let vim_instance = (g:screen_size_by_vim_instance==1?(v:servername):'GVIM') | |
for line in readfile(f) | |
let sizepos = split(line) | |
if len(sizepos) == 5 && sizepos[0] == vim_instance | |
silent! execute "set columns=".sizepos[1]." lines=".sizepos[2] | |
silent! execute "winpos ".sizepos[3]." ".sizepos[4] | |
return | |
endif | |
endfor | |
endif | |
endfunction | |
function! ScreenSave() | |
" Save window size and position. | |
if has("gui_running") && g:screen_size_restore_pos | |
let vim_instance = (g:screen_size_by_vim_instance==1?(v:servername):'GVIM') | |
let data = vim_instance . ' ' . &columns . ' ' . &lines . ' ' . | |
\ (getwinposx()<0?0:getwinposx()) . ' ' . | |
\ (getwinposy()<0?0:getwinposy()) | |
let f = ScreenFilename() | |
if filereadable(f) | |
let lines = readfile(f) | |
call filter(lines, "v:val !~ '^" . vim_instance . "\\>'") | |
call add(lines, data) | |
else | |
let lines = [data] | |
endif | |
call writefile(lines, f) | |
endif | |
endfunction | |
if !exists('g:screen_size_restore_pos') | |
let g:screen_size_restore_pos = 1 | |
endif | |
if !exists('g:screen_size_by_vim_instance') | |
let g:screen_size_by_vim_instance = 1 | |
endif | |
autocmd VimEnter * if g:screen_size_restore_pos == 1 | call ScreenRestore() | endif | |
autocmd VimLeavePre * if g:screen_size_restore_pos == 1 | call ScreenSave() | endif | |
endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment