nnoremap ;; :%s/;$//<CR>
onde pressionar ;;
em normal mode
substitui todos os ;
no final da linha ( ;$
) sem nada ( //
)
Eu estou procurando por um comando de substituição no vim para remover cada ponto-e-vírgula em um arquivo, se este for o último caractere da linha.
Eu já encontrei este comando, que alterna um ponto-e-vírgula no final da linha:
nnoremap ;; :s/\v(.)$/\=submatch(1)==';' ? '' : submatch(1).';'<CR>
Alguém pode me ajudar aqui?
" greenkeeping files
" consecutive blank lines: https://unix.stackexchange.com/questions/12812/replacing-multiple-blank-lines-with-a-single-blank-line-in-vim-sed
" whitespaces: https://stackoverflow.com/questions/356126/how-can-you-automatically-remove-trailing-whitespace-in-vim
" last empty line: https://stackoverflow.com/questions/7495932/how-can-i-trim-blank-lines-at-the-end-of-file-in-vim
" last semicolon: https://unix.stackexchange.com/posts/462443
autocmd BufWritePre *.test silent! :%s/\s\+$//e | silent! :%s/\(\n\n\)\n\+// | silent! :%s#\($\n\s*\)\+\%$## | :%s/;$
O comando abaixo removerá o ponto-e-vírgula, se este for o último caractere da linha.
Experimente o comando abaixo usando sed
sed 's/;*$//g' <file1> file2
Tags vim regular-expression