Поменять местами слова в VIM без использования сторонних плагинов

В RHEL 6 нет systemd (поэтому любая команда systemctl ). Она была представлена ​​в RHEL 7.

1
23.03.2017, 01:53
2 ответа

Возможно, вы могли бы использовать промежуточную переменную, например, такую

​:%s/Tom/XX9G235a65/g​ :%s/Jerry/Tom/g :%s/XX9G235a65/Jerry/g
4
27.01.2020, 23:16

Вот два варианта (, оба используют:help sub-replace-expressionи примерно столь же громоздкие ), которые используют условный оператор и поиск по словарю, соответственно:

:substitute/\<\(Tom\|Jerry\)\>/\=submatch(0) ==# 'Tom' ? 'Jerry' : 'Tom'/g
:substitute/\<\(Tom\|Jerry\)\>/\={'Tom':'Jerry', 'Jerry':'Tom'}[submatch(0)]/g

При этом вам не требуется промежуточное звено, как в ответе @MichaelDurrant.

1
27.01.2020, 23:16

Теги

Похожие вопросы