Частичное отображение командной строки vim - PullRequest
1 голос
/ 07 февраля 2012

В vim я хочу сделать что-то вроде этого

function! ModuleFile()
  let $module = input("Module of file> ")
  :e **/${module}_
endfunction
map <Leader>e :call ModuleFile()<CR>

Я ожидаю, что, например, если я введу для модуля "ABC", я получу следующую командную строку в vim:

:e **/ABC_

и последующий ввод нового текста, например «name_of_file», даст мне:

:e **/ABC_name_of_file

и, наконец, нажатие Enter приведет к выполнению команды.Смысл этого в том, чтобы иметь возможность получить завершение табуляции.

1 Ответ

2 голосов
/ 07 февраля 2012

Сигилы в скрипте vim не нужны, ${...} или $var - для переменных среды.

function! ModuleFile()
  let module = input("Module of file> ")
  let name   = input("Search pattern> ")
  execute 'args **/' . module . '_' . name
endfunction
map <Leader>e :call ModuleFile()<CR>

После вашего комментария, вероятно, вам нужно:

map <leader>e :args **/<c-r>=input("Module of file: ") . '_' . input("Search pattern: ")<cr>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...