VIM 7 и cscope: использование «cscope find f» внутри раскладки клавиатуры для переключения между файлами - PullRequest
2 голосов
/ 24 марта 2011

Я обычно переключаюсь между файлами на моей кодированной базе cscope, используя

:cscope find f <filename>

Я пытаюсь определить сочетание клавиш, чтобы мне не приходилось каждый раз вводить ": cscope find f". Нажатие этого ярлыка вызовет запрос ввода, в который я введу часть имени файла в базе данных cscope. Если есть несколько файлов, отобразится список файлов, из которых я могу выбрать файл, к которому я хочу перейти. До сих пор я дошел до этого, но так как я совсем не разбираюсь в сценариях VIM, я не могу его завершить. (то, что я кодировал до сих пор, взято из другого вопроса, спасибо Eelvex ).

Может ли кто-нибудь исправить приведенный ниже сценарий для меня? Я получаю множество ошибок при попытке использовать этот ярлык

function! GetPat()
  call inputsave()
  let filename = input("Enter filename: ")
  call inputrestore()
  return filename
endfunction
map ` :cscope find f '.GetPat().'<CR>

1 Ответ

2 голосов
/ 24 марта 2011

Сопоставление не будет ждать, пока вы введете данные, а затем продолжите.Кроме того, сопоставление неверно, помните, что сопоставления работают так, как если бы вы набирали текст, вы можете получить что-то подобное, используя (не проверено):

noremap <expr> ` ':cscope find f '.GetPat()."\<CR>"

Но почему бы просто:

noremap ` :cscope find f<space>

Это оставит вас после того, как последний пробел будет готов ввести ваш шаблон, и просто нажмите enter .

...