#vim #cursor #buffer
#vim #буфер #текстовый курсор
Вопрос:
Я пытаюсь решить проблему с VIM. Вот чего я пытаюсь добиться:
У меня есть файл с несколькими строками в нем. Когда я перемещаю курсор от строки к строке, я хочу отправить текущую строку в качестве аргумента в Ruby script. Результат этого скрипта должен быть перенаправлен в буфер VIM, который будет показан в разделенном окне над исходным текстом.
до сих пор мне удавалось написать функцию, которая отправляет одну строку в скрипт, а результаты отображаются в буфере выше. Я не уверен, как заставить эту функцию запускаться каждый раз, когда курсор перемещается на новую строку, и заставить результаты обновлять тот же буфер. Любые указатели будут оценены.
Мой код:
function! BB()
redir => a
let str = getline(".")
let str1 = """ . str . """
silent execute "!${HOME}/scripts/test.rb " . str1
redir END
new
put! = a
endfunction
command! -nargs=0 BB echo BB()
Ответ №1:
Первое, что приходит мне на ум, — это отображение движений клавиш. Что-то вроде:
map j j:call BB()<CR>
map k k:call BB()<CR>
Комментарии:
1. Я пробовал отображать только ‘j’, и каждый раз, когда я перехожу к новой строке, вывод открывается в новом буфере вместе со старым. Итак, теперь у меня есть 3 буфера: (