Я хочу создать функцию в vimscript, которая должна прочитать внешний документ и протестировать его с текстом в буфере.Как адаптировать код от amenu до vimscript?
Это код, который отлично работает в: AMENU (в menu.vim)
/^\%(.*\<\%(<C-r>=join(readfile('d:\database.txt'),'\\|')<CR>\)\>\)\@!.*$<CR>
Я хочу использовать один и тот же код в функции, но не знаю, как адаптировать его.
Этот код содержит 2 <CR>
, которые не работают в функции.
1) Как я могу адаптировать код выше, чтобы заставить его работать в функции vimscript?
Внешний документ будет вставлен с помощью ввода диалогового
function! s:CheckWithDocument()
if !exists("docinput")
let docinput = "Document to match with?"
endif
let a = inputdialog(docinput)
let @/ .....
return
endfunction
Я называю это в AMENU: :call <SID>CheckWithDocument()<CR>
2) Как я могу вставить 'a'
в коде выше vimscript?
Спасибо Коннер за ответ. Я вставил ваш ответ в функцию выше и изменил '\' между двойными кавычками на '\\', но это не сработало. Код верный, но он не был выполнен, как будто в конце не было команды. Когда я беру вывод ('echo @ /') и вставляю его в командной строке, нажимаем клавишу ввода, он отлично работает. –
Reman
К сожалению, я изменил '\\' на '\\\\' между двойными кавычками. – Reman
Нашли это !!! Я должен нажать клавишу 'n', чтобы выделить найденные элементы. – Reman