Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Swap your windows without ruining your layout
Branch: master


Swap windows without ruining your layout!


Vim's window movement commands work fine when you only have a few splits open or want to push a window over to an edge. But what happens when you have a complicated layout and you just want to swap a couple arbitrary windows?

When I was just getting started with Vim, I asked about this problem on StackOverflow and I've received a handful of responses over the years. Almost a year after after I asked, sgriffin came through with a solution. Now that I'm a little less of a newbie, I've put his idea in a handy plugin.


  1. Navigate to the window you'd like to move
  2. Press <leader>ww
  3. Navigate to the window you'd like to swap with
  4. Press <leader>ww again

Key Bindings


  • Yank and paste a window with <leader>ww (for me that's ,ww)

Deprecated defaults:

  • [y]ank a [w]indow with <leader>yw
  • [p]aste that [w]indow with <leader>pw.

These mappings are deprecated. See below for instructions on how to keep them working once they are removed from the default list.

Customize the commands to your liking by dropping this in your .vimrc and changing the mappings:

let g:windowswap_map_keys = 0 "prevent default bindings
nnoremap <silent> <leader>yw :call WindowSwap#MarkWindowSwap()<CR>
nnoremap <silent> <leader>pw :call WindowSwap#DoWindowSwap()<CR>
nnoremap <silent> <leader>ww :call WindowSwap#EasyWindowSwap()<CR>


This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers:

  • Vundle - Plugin 'wesQ3/vim-windowswap'
  • Pathogen - git clone ~/.vim/bundle/vim-windowswap
  • NeoBundle - NeoBundle 'wesQ3/vim-windowswap'
  • VAM - call vam#ActivateAddons([ 'wesQ3/vim-windowswap' ])
  • manual - copy all of the files into your ~/.vim directory
Something went wrong with that request. Please try again.