Index syndication
comment syndication

Vim Split tips

I use vim a lot of the time, mostly with splits and diffs, so the following key mappings and functions really helped me with managing the split windows. Maybe they will help you too. (Thanks to the Vim tips wiki for these).

  • If you use vertical splits, this will help move left and right across the split. Put in your ~/.vimrc
    " Map multi window keys
    set wmw=0
    " CTRL-H move to left window
    nmap  h
    " CTRL-L move to right window
    nmap  l
    
  • When scrolling up and down a window, you can use zz to jump the current line to the middle of the window. If you want this on always ala Scroll locking, then you can use this function. It is a toggle option. use \zz to toggle it. Put in your ~/.vimrc
    " Map \zz to lock scroll to middle of window
    map zz :let &scrolloff=999-&scrolloff
    
  • In a window split (of any sort) if you want to maximise to the current window, this will do it for you. When you press CTRL-W then o it will maximise the current view, then when pressed again will return your split arrangement! Put in your ~/.vimrc
    " Max/unmax splits
    nnoremap O :call MaximizeToggle ()
    nnoremap o :call MaximizeToggle ()
    nnoremap  :call MaximizeToggle ()
    
    function! MaximizeToggle()
      if exists("s:maximize_session")
        exec "source " . s:maximize_session
        call delete(s:maximize_session)
        unlet s:maximize_session
        let &hidden=s:maximize_hidden_save
        unlet s:maximize_hidden_save
      else
        let s:maximize_hidden_save = &hidden
        let s:maximize_session = tempname()
        set hidden
        exec "mksession! " . s:maximize_session
        only
      endif
    endfunction
    

Clearcase Tips number 01

I found myself writing down example commands in clearcase (V6), so I thought I would share them. If you have ever needed to find files like you do in UNIX, but want to be clearcase specific, then these commands will give you a quick headstart on using the cleartool find command:

How do I list all files and file versions going into a specific build that is labelled?
Assume your label is TR1_PRE_RELEASE

cleartool find . -version 'lbtype (TR1_PRE_RELEASE)' -print

How do I find the latest versions on branch xyz?
In this example, branch xyz is the tst branch

cleartool find . -version 'version (.../tst/LATEST)' -print

How do I find the latest versions on xyz branch WITHOUT a specific label?
For this example the xyz branch is the main (default clearcase) branch, and the label is TR1_PRE_RELEASE

cleartool find . -version 'version (/main/LATEST) && ! lbtype(TR1_PRE_RELEASE)' -print

How do I see what in the filesystem has changed from clearcase?
This example only works if you have set your view on the same machine where the file system to compare is.

cd //
clearfsimport -preview -recurse //* .|grep -v unchan |grep -v identi

I hope that gives you incentive to go and read the clearcase find documentation and learn more for yourself by trying.