aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/tlib_vim/autoload/tlib/vim.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/tlib_vim/autoload/tlib/vim.vim')
-rw-r--r--vim/bundle/tlib_vim/autoload/tlib/vim.vim152
1 files changed, 152 insertions, 0 deletions
diff --git a/vim/bundle/tlib_vim/autoload/tlib/vim.vim b/vim/bundle/tlib_vim/autoload/tlib/vim.vim
new file mode 100644
index 0000000..7154aeb
--- /dev/null
+++ b/vim/bundle/tlib_vim/autoload/tlib/vim.vim
@@ -0,0 +1,152 @@
+" @Author: Tom Link (micathom AT gmail com?subject=[vim])
+" @Website: http://www.vim.org/account/profile.php?user_id=4037
+" @GIT: http://github.com/tomtom/tlib_vim/
+" @License: GPL (see http://www.gnu.org/licenses/gpl.txt)
+" @Created: 2010-07-19.
+" @Last Change: 2012-06-08.
+" @Revision: 37
+
+
+let s:restoreframecmd = ''
+let s:fullscreen = 0
+
+if has('win16') || has('win32') || has('win64')
+
+ if !exists('g:tlib#vim#simalt_maximize')
+ " The alt-key for maximizing the window.
+ " CAUTION: The value of this paramter depends on your locale and
+ " maybe the windows version you are running.
+ let g:tlib#vim#simalt_maximize = 'x' "{{{2
+ endif
+
+ if !exists('g:tlib#vim#simalt_restore')
+ " The alt-key for restoring the window.
+ " CAUTION: The value of this paramter depends on your locale and
+ " maybe the windows version you are running.
+ let g:tlib#vim#simalt_restore = 'r' "{{{2
+ endif
+
+ if !exists('g:tlib#vim#use_vimtweak')
+ " If true, use the vimtweak.dll for windows. This will enable
+ " tlib to remove the caption for fullscreen windows.
+ let g:tlib#vim#use_vimtweak = 0 "{{{2
+ endif
+
+ " Maximize the window.
+ " You might need to redefine |g:tlib#vim#simalt_maximize| if it doesn't
+ " work for you.
+ fun! tlib#vim#Maximize(fullscreen) "{{{3
+ if !has("gui_running")
+ return
+ endif
+ call s:SaveFrameParams()
+ let s:fullscreen = a:fullscreen
+ if g:tlib#vim#use_vimtweak && a:fullscreen
+ call libcallnr("vimtweak.dll", "EnableCaption", 0)
+ endif
+ exec 'simalt ~'. g:tlib#vim#simalt_maximize
+ endf
+
+ " Restore the original vimsize after having called |tlib#vim#Maximize()|.
+ function! tlib#vim#RestoreWindow() "{{{3
+ if !has("gui_running")
+ return
+ endif
+ if g:tlib#vim#use_vimtweak
+ call libcallnr("vimtweak.dll", "EnableCaption", 1)
+ endif
+ exec 'simalt ~'. g:tlib#vim#simalt_restore
+ call s:RestoreFrameParams()
+ endf
+
+else
+
+ if !exists('g:tlib#vim#use_wmctrl')
+ " If true, use wmctrl for X windows to make a window
+ " maximized/fullscreen.
+ "
+ " This is the preferred method for maximizing windows under X
+ " windows. Some window managers have problem coping with the
+ " default method of setting 'lines' and 'columns' to a large
+ " value.
+ let g:tlib#vim#use_wmctrl = executable('wmctrl') "{{{2
+ endif
+
+ " :nodoc:
+ fun! tlib#vim#Maximize(fullscreen) "{{{3
+ if !has("gui_running")
+ return
+ endif
+ call s:SaveFrameParams()
+ let s:fullscreen = a:fullscreen
+ if g:tlib#vim#use_wmctrl
+ if a:fullscreen
+ silent !wmctrl -r :ACTIVE: -b add,fullscreen
+ else
+ silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
+ endif
+ else
+ set lines=1000 columns=1000
+ endif
+ endf
+
+ " :nodoc:
+ function! tlib#vim#RestoreWindow() "{{{3
+ if !has("gui_running")
+ return
+ endif
+ if g:tlib#vim#use_wmctrl
+ if s:fullscreen
+ silent !wmctrl -r :ACTIVE: -b remove,fullscreen
+ else
+ silent !wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
+ endif
+ endif
+ call s:RestoreFrameParams()
+ endf
+
+endif
+
+
+function! s:SaveFrameParams() "{{{3
+ let s:restoreframecmd = printf("set lines=%d columns=%d | winpos %d %d", &lines, &columns, getwinposx(), getwinposy())
+endf
+
+
+function! s:RestoreFrameParams() "{{{3
+ if !empty(s:restoreframecmd)
+ exec s:restoreframecmd
+ let s:restoreframecmd = ''
+ endif
+endf
+
+
+" :display: tlib#vim##CopyFunction(old, new, overwrite=0)
+function! tlib#vim#CopyFunction(old, new, ...) "{{{3
+ let overwrite = a:0 >= 1 ? a:1 : 0
+ redir => oldfn
+ exec 'silent function' a:old
+ redir END
+ if exists('*'. a:new)
+ if overwrite > 0
+ exec 'delfunction' a:new
+ elseif overwrite < 0
+ throw 'tlib#vim##CopyFunction: Function already exists: '. a:old .' -> '. a:new
+ else
+ return
+ endif
+ endif
+ let fn = split(oldfn, '\n')
+ let fn = map(fn, 'substitute(v:val, ''^\d\+'', "", "")')
+ let fn[0] = substitute(fn[0], '\V\^\s\*fu\%[nction]!\?\s\+\zs'. a:old, a:new, '')
+ let t = @t
+ try
+ let @t = join(fn, "\n")
+ redir => out
+ @t
+ redir END
+ finally
+ let @t = t
+ endtry
+endf
+