Попробуйте вместо этого:
:s/ # .*\n/ /
Объяснение:
Вы использовали неправильную команду, так как они могут выглядеть как новые пользователи.
:[range]g/VRE/act
Глобальное применение «act» ion (однобуквенная команда) ко всем строкам (в диапазоне, по умолчанию для всех файлов), соответствующих VRE (шаблон) :[range]s/VRE/repl/f
Подстановка в строках (в диапазоне, текущей строке по умолчанию) ) соответствующий VRE (шаблон) с аргументом "repl" с использованием необязательных лагов "f"
Теперь о шаблоне, я думаю, этот кандидат покрывает большинство случаев (все, кроме комментариев в начале строки) и комментарии без пробела после знака фунта)
#
Литеральный пробел, затем тег sh, затем снова пробел .*
точка для любого символа, звездочка означает предыдущий может происходить много раз или даже отсутствовать $
доллара в конце, чтобы остаться на "конце строки", но \n
, чтобы поймать здесь ENOL