Vim/gVim - Alternância Intuitiva entre Maiúsculo e Minúsculo
Dica publicada em Linux / Configuração
Vim/gVim - Alternância Intuitiva entre Maiúsculo e Minúsculo
Com base nesta dica do Fábio, pesquisando, descobri uma forma de conversão para uppercase e lowercase de forma mais rápida, sem ter que colocar o Vim/gVim em modo visual, e ainda, SEM PRECISAR SELECIONAR. :)
Para mapear os comandos e deixá-los mais intuitivos, uso as combinações Ctrl+setas. E para aplicar o comando na linha toda, uso Alt+setas.
Coloque este arquivo em seu ".vimrc":
No modo normal, posicione o cursor em qualquer ponto da palavra, ou da frase, e aplique.
Aplicação:
Bastante intuitivo também, mas para aplicar esse comando, precisa selecionar antes a palavra.
É isso! Espero que os mapeamentos acima tornem suas atividades no Vim/gVim úteis e produtivas.
E viva o Linux!
Para mapear os comandos e deixá-los mais intuitivos, uso as combinações Ctrl+setas. E para aplicar o comando na linha toda, uso Alt+setas.
Coloque este arquivo em seu ".vimrc":
"PALAVRAS
"Torna palavra em maiúscula
nnoremap <C-Up> viwU
"Torna palavra em minúscula
nnoremap <C-Down> viwu
"LINHAS
"Torna toda linha em maiúscula (M = Alt)
nnoremap <M-Up> <Esc>0v$<esc>gUU
"Torna toda linha em minúscula
nnoremap <M-Down> <Esc>0v$<esc>guu
"Torna palavra em maiúscula
nnoremap <C-Up> viwU
"Torna palavra em minúscula
nnoremap <C-Down> viwu
"LINHAS
"Torna toda linha em maiúscula (M = Alt)
nnoremap <M-Up> <Esc>0v$<esc>gUU
"Torna toda linha em minúscula
nnoremap <M-Down> <Esc>0v$<esc>guu
No modo normal, posicione o cursor em qualquer ponto da palavra, ou da frase, e aplique.
Bônus
Já a função abaixo, torna a palavra em maiúscula ou minúscula, apenas repetindo o acionamento do mapeamento Ctrl+Seta-direita.
"Selecionar palavra
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
vnoremap <C-right> y:call setreg('', TwiddleCase(@"), getregtype(''))<CR>gv""Pgv
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
vnoremap <C-right> y:call setreg('', TwiddleCase(@"), getregtype(''))<CR>gv""Pgv
Aplicação:
- 1º acionamento: torna a 1ª letra da palavra em maiúscula;
- 2º acionamento: torna toda a palavra em maiúscula;
- 3º acionamento: torna toda a palavra em minúscula.
Bastante intuitivo também, mas para aplicar esse comando, precisa selecionar antes a palavra.
É isso! Espero que os mapeamentos acima tornem suas atividades no Vim/gVim úteis e produtivas.
E viva o Linux!
Referências
- https://vim.fandom.com/wiki/Category:VimTip/stats
- https://catswhocode.com/vim-commands/
- https://stackoverflow.com/questions/45842690