我正在尝试用 VIM 解决一个问题。这是我要实现的目标:
我有一个包含几行的文件。当我将光标从一行移动到另一行时,我想将当前行作为参数发送给 Ruby 脚本。此脚本的结果应重定向到 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()
最佳答案
我首先想到的是映射按键 Action 。像这样的东西:
map j j:call BB()<CR>
map k k:call BB()<CR>
关于VIM:在光标移动时在每一行上执行 Ruby 脚本并更新缓冲区以在拆分窗口中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7693153/