Это происходит, когда вы пытаетесь получить доступ к элементу массива с синтаксисом с квадратной скобкой, но вы делаете это по строке, а не по массиву, поэтому операция явно не имеет смысла .
Пример:
$var = "test";
echo $var["a_key"];
Если вы считаете, что переменная должна быть массивом, см., где она появляется и исправить там проблему.
Если Вы хотите добавить к именованному использованию регистра, это - соответствующий символ верхнего регистра. т.е. В Вашем примере:
"ayy "Ayy "ap
Только, чтобы подробно остановиться на ответе MarkB, Вы знали, что можно также использовать маркеры для выбора блока текста для рывка?
Переходят к первой строке блока, Вы хотите дергать и ввести команду метки после выбора буквы, поскольку маркер, например,
ma (entered in command mode, i.e. no colon)
тогда переходят к нижней части блока, Вы хотите дергать и ввести команду:
:'a,.ya A
это средство команды берет блок текста от строки, содержащей мой маркер, названный до текущей строки, и дергает его в буфер a. Те же правила как MarkB упомянули, применяют, используют строчное буферное имя для перезаписи буфера. Используйте прописное буферное имя для добавления к буферу. Таким образом, в этом случае это добавит к содержанию буфера a.
N.B. используемый для Вашего маркера не имеет никакого отношения 'к' используемому для выбора регистра. (AFAIK, но YMMV)
BTW '(апостроф a) относится к строке, содержащей маркер a. '(одинарная левая кавычка a) относится к символу под курсором, когда Вы ввели маму.
`ad`b (also entered in command mode)
полезно, потому что это удалит текст между символом, отмеченным с маркером a до символа незадолго до символ, который Вы отметили с маркером b.