2017-01-05 15 views
0

У меня есть несколько сокращений для ack:Как расширить имя файла без расширения в аббревиатуре в vim?

cnoreabbrev Ack Ack! 
cnoreabbrev ack Ack! 

, который переписывает ack к Ack! в командной строке/режиме ВИМ в.

Теперь я хотел бы использовать имя файла без расширения, чтобы игнорировать его из результатов поиска с помощью

:echo expand('%:r') 

Я представил себе, что я хотел бы сделать это так же, как колотить расширение с помощью `

cnoreabbrev acki Ack! --ignore `expand('%:r')` 

но это не работает.

Как я могу это достичь? Я специально хочу аббревиатуры не функция (но это может быть там косвенно), чтобы иметь непрерывный поток, где я пишу acki, а затем сразу же искать термин

+0

Как насчет '% <'? Не будет ли этого в вашем случае? –

+0

@LucHermitte Это именно то, что мне нужно! Благодарю. Вы можете опубликовать его в качестве ответа (возможно, с некоторым объяснением, как это работает) – Patryk

+0

Не могли бы вы объяснить, в чем главная проблема? – Sabrina

ответ

1

Если вы хотите использовать expand() вам нужно играть с c_CTRL-R=. здесь вам не понадобится нечто сложное.

Действительно, % достаточно, чтобы получить имя файла. Чтобы сохранить только основную часть, вы можете использовать %< из простого старого vi.

+0

Как называется этот механизм ('% <')? Где я могу найти информацию об этом? – Patryk

+0

У меня нет рабочей версии vim со мной прямо сейчас. Я думаю, вы пробовали ': h% <'. Обычно это должно быть с другими модификаторами имен файлов. Вы должны найти ссылку из 'expand()' и 'fnamemodify()' help. Что касается поведения командной строки. Я не уверен, что в помощи. Это старое знание для меня сейчас ^^ ' –

 Смежные вопросы

  • Нет связанных вопросов^_^