Skip to content

Instantly share code, notes, and snippets.

@kmanalo
Last active January 9, 2025 16:24
Show Gist options
  • Save kmanalo/6ded920b681ec39041af to your computer and use it in GitHub Desktop.
Save kmanalo/6ded920b681ec39041af to your computer and use it in GitHub Desktop.
twiddlecase.vim
" https://github.com/tangledhelix/dotfiles/blob/master/vim/plugin/twiddlecase.vim
" Toggles between uppercase, lowercase, titlecase. Bind to a mapping, then
" select something and keep hitting the map until you get what you want.
function! TwiddleCase(str)
if a:str ==# toupper(a:str)
let result = tolower(a:str)
elseif a:str ==# tolower(a:str)
let result = substitute(a:str,'\(\<\w\+\>\)', '\u\1', 'g')
else
let result = toupper(a:str)
endif
return result
endfunction
" Example mapping
"vnoremap ~ ygv"=TwiddleCase(@")<CR>Pgv
@alanoakes
Copy link

Hello @kmanalo ,
I use this simple vim script A LOT every day in my vimrc for the past four years. Thank you very much for putting it in github for others to use!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment