another borrowing from c.vim