파일의 모든 세미콜론이 줄의 마지막 문자인 경우 이를 제거하는 대체 명령을 vim에서 찾고 있습니다.
줄 끝에서 세미콜론을 전환하는 다음 명령을 찾았습니다.
nnoremap ;; :s/\v(.)$/\=submatch(1)==';' ? '' : submatch(1).';'<CR>
누구든지 나를 도와줄 수 있나요?
해결책
- 내가 검색하고 있는 명령은 파일을 저장한 후 수행하려는 대규모 정리의 일부입니다. 완전한 솔루션은 다음과 같습니다
" 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\+/\1/ | silent! :%s#\($\n\s*\)\+\%$## | :%s/;$
답변1
nnoremap ;; :%s/;$//<CR>
여기서 키를 누르면 ;;
줄 끝에 있는 normal mode
모든 내용( )이 아무것도 없는 내용( )으로 대체 됩니다.;
;$
//
답변2
세미콜론이 줄의 마지막 문자인 경우 다음 명령을 사용하면 이를 제거합니다.
sed를 사용하여 다음 명령을 시도해 보세요.
sed 's/;*$//g' <file1> file2