Как вставить текущее имя файла в содержимое Vim?

После некоторого поиска я познакомился с :echo @% отображает текущее имя файла в нижней строке экрана vim.

Я хотел бы сбросить имя файла (с полным и без полного пути) в содержимое файла, не выходя из vim.

Есть ли способ сделать это?

vim
33 голоса | спросил mtk 4 TueEurope/Moscow2012-12-04T18:31:22+04:00Europe/Moscow12bEurope/MoscowTue, 04 Dec 2012 18:31:22 +0400 2012, 18:31:22

2 ответа


23

Я уверен, что есть другие способы сделать это ... но основная команда, которую вы хотите, это :r[ead], которая вставляет вывод команды в буфер.

Итак, чтобы вставить только имя файла:

:r! echo %

И, чтобы включить полный путь:

:r! echo %:p

Для получения дополнительной информации:

:help read
:help filename-modifiers 
ответил jonyamo 4 TueEurope/Moscow2012-12-04T18:41:15+04:00Europe/Moscow12bEurope/MoscowTue, 04 Dec 2012 18:41:15 +0400 2012, 18:41:15
35

Текущее имя файла находится в регистре "%, поэтому вы можете вставить его (в режиме вставки) с помощью <c-r>%; полный путь можно вставить с помощью <c-r>=expand("%:p"). Вы можете сделать макрос, если вы часто используете его. Более того, подобные трюки см. В :h expand и :h "=.

ответил Kevin 4 TueEurope/Moscow2012-12-04T18:55:44+04:00Europe/Moscow12bEurope/MoscowTue, 04 Dec 2012 18:55:44 +0400 2012, 18:55:44

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132