Рассмотрим способ представления переменных и членов массива в PHP:

$something
$something['member']

Как я могу убедиться, что курсор находится на последнем символе? Простое использование E не поможет, поскольку за переменной могут следовать другие символы, например:

echo "I saw (".$something.") happen.";
echo "I saw (".$something['member'].") happen.";

Я бы предпочел ответ, который позволял бы курсору находиться где угодно на соответствующем тексте ($something или $something['member']), но я был бы удовлетворен ответом, который работает, по крайней мере, для символов something .

Обратите внимание, что моя цель - использовать ответ на этот вопрос, чтобы предшествовать следующему отображению:

nnoremap <leader>fv a}<Esc>ldf"F$i{<Esc>dF"

Это отображение предназначено для превращения этого:

echo "I saw (".$something.") happen.";
echo "I saw (".$something['member'].") happen.";

echo "I saw (" . $something . ") happen.";
echo "I saw (" . $something['member'] . ") happen.";

В это:

echo "I saw ({$something}) happen.";
echo "I saw ({$something['member']}) happen.";

1 ответ1

0

Я бы подошел к этому по-другому. В то время как вы действительно хотите "переменную", то, что вы свободно просите, должно быть достаточно близко, это «все внутри кавычек, плюс также сами кавычки». Для этого вы можете использовать a" объект :help text-objects Поместите курсор в любое место на соответствующем тексте, введите va" чтобы визуально выделить нужную область, или нажмите "ada" чтобы удалить соответствующий текст и поместить его в регистр" a ", или сделайте что-нибудь еще с текстовым объектом , Это должно быть довольно просто (возможно, с использованием substitute() , может быть, с использованием другого метода), чтобы сделать текст таким, каким вы хотите.

Это также тот случай, когда я обычно использую записанный макрос, чтобы сказать правду.

Если a" выбирает слишком много, вы можете попробовать патч добавить произвольные текстовые объекты, чтобы вы могли использовать im. (Inside-match-. Symbol), чтобы получить все из«. » к другому «.» или подобному. Загрузите патч здесь: https://groups.google.com/d/topic/vim_dev/pZxLAAXxk0M/discussion (обратите внимание, что патчей несколько, вам, вероятно, нужен последний).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .