Постановка задачи: После однобуквенных слов принято ставить неразрывный пробел
(чтобы строчка текста не кончалась на это слово). В ТеХ-е это пишется
так "... в~связи...". Есть куча текстов, где этого не сделано, стоит обычный пробел.
Хочется чтобы Vim сам расставлял в таких местах "~" вместо пробела, а где не стоит,
исправлял. В принципе, почитав ман к sed, я написал такой скриптик :
(тут пока ещё баги есть )
В результате sed в stdout шлёт исправленный текст. Пробовал то же писать в Vim
(:s/ \([авикосуя]\) / \1~/g глючит -- либо пишет, что "pattern not found", либо вообще что-нибудь страшное учудит -- учетверит это слово или ещё что сделает
Хочется или заставить Vim делать это по-человечески или скрипт к sed так модифицировать,
чтобы он на каждое исправление спрашивал: OK ? [Yes/No] .
Как это можно сделать ? Может средствами Perl или Python'a.
oyuriyu
О, в Vim надо % ставить, но всё равно строчка
:%s/ \([авикосуя]\) / \1~/g
не добавляет "~" после буквы, просто пробел удаляется.
gusli
Экран перед тильдой нужен :%s/ \([авикосуя]\) / \1\~/g
oyuriyu
Постановка задачи: После однобуквенных слов принято ставить неразрывный пробел(чтобы строчка текста не кончалась на это слово). В ТеХ-е это пишется
так "... в~связи...". Есть куча текстов, где этого не сделано, стоит обычный пробел.
Хочется чтобы Vim сам расставлял в таких местах "~" вместо пробела, а где не стоит,
исправлял. В принципе, почитав ман к sed, я написал такой скриптик :
(тут пока ещё баги есть
В результате sed в stdout шлёт исправленный текст. Пробовал то же писать в Vim
(:s/ \([авикосуя]\) / \1~/g глючит -- либо пишет, что "pattern not found", либо вообще что-нибудь страшное учудит -- учетверит это слово или ещё что сделает
Хочется или заставить Vim делать это по-человечески или скрипт к sed так модифицировать,
чтобы он на каждое исправление спрашивал: OK ? [Yes/No] .
Как это можно сделать ? Может средствами Perl или Python'a.