vim: отображение содержимого подстать и безымянный регистр в подстановке - PullRequest
2 голосов
/ 28 декабря 2011

У меня есть несколько команд в командной строке, которая создает текстовую строку в безымянном регистре @ ". Затем у меня есть заменитель, который захватывает пару атомов. Наконец, мне нужно заменить шаблон двумя подспряжениями ( \ 1 и \ 2) И @ ".

Я не могу заставить @ "reg отображать его содержимое ПОСЛЕ первого отображения субматч. Я могу отображать @" до отображения субматч. Например:

multi-commands | @"=textString | 'a,'bs/(atom1)(atom2)/\1\2 "displays perfectly

Или,

multi-commands | @"=textString | 'a,'bs/(atom1)(atom2)/\=@" "displays 'textString' perfectly

Но

multi-commands | @"=textString | 'a,'bs/(atom1)(atom2)/\1\2@"
multi-commands | @"=textString | 'a,'bs/(atom1)(atom2)/\1\2\@"
multi-commands | @"=textString | 'a,'bs/(atom1)(atom2)/\1\2\=@"

Всем не удается отобразить содержимое регистра 'textString' и вместо этого показать '@ "'

Кто-нибудь знает, почему это так?

1 Ответ

3 голосов
/ 28 декабря 2011

Это потому, что \= должен быть первым элементом в замене.

Вы должны использовать следующее:

:'a,'bs/(atom1)(atom2)/\=submatch(1).submatch(2).@"
...