Вы не можете использовать обычную команду в командной строке как есть.
В :g/^ /-1j
, j
- это сокращение :join
: вы переходите на одну строку вверх (-1
, это может быть -
) и выполняете :join
.
В :g/^ /-1J
, J
ничего не значит для Vim: вы используете команду нормального режима вне ее контекста, поэтому, в основном, она ничего не делает после -1
за исключением вывода четкого сообщения об ошибке.
Vim ожидает команду Ex, а не команду нормального режима.
Ваша путаница может возникнуть из-за того, что двоеточие необходимо только один раз, чтобы вы не распознавали команды Ex. Если бы мы добавили пару двоеточий, полная команда, вероятно, имела бы для вас больше смысла:
:g/^ /:-1:j
Чтобы использовать команды обычного режима в командной строке, используйте :norm
:
:g/^ /-1norm J