解決策

解決策

ファイル内のすべてのセミコロンが行の最後の文字である場合は、それを削除する代替コマンドを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

関連情報