gvim窗口根据gnome-terminal位置定位

gvim启动位置固定的话容易挡到东西,所以写了一段vimscript根据gnome-terminal的位置启动gvim,这样被遮住的概率就一些了。

fun! g:get_xterm_pos ()"{{{
    if(!exists('$WINDOWID')) | return [] | endif
    let term_rect_info = system('xwininfo -id ' . $WINDOWID . 
                \ '|grep "Absolute upper-left \(X\|Y\):"' . 
                \ "|awk -F ':' '{print $2}'")
    let term_pos = split(term_rect_info)
    return term_pos
endfun"}}}
fun! g:update_pos_by_xterm (adjust)"{{{
    if(!has('gui_running')) | return | endif
    let term_pos = g:get_xterm_pos()
    if(term_pos == [])
        echoerr 'update failed...'
        return
    endif
    exe printf('winpos %d %d', term_pos[0] + a:adjust[0], term_pos[1] + a:adjust[1])
endfun"}}}
au GUIENTER * call g:update_pos_by_xterm([7, 45])
g:update_pos_by_xterm的adjust是微调位置,以gnome-terminal的左上角为原点,[0,0]就代表和gnome-terminal完全重叠了
posted @ 2013-06-16 16:31  reaper.spring  阅读(415)  评论(0编辑  收藏  举报