【发布时间】:2015-08-24 07:47:33
【问题描述】:
我制作了一个以窗口句柄和一个字符串作为参数的 C# 命令行程序。它将带有句柄的窗口带到前台,使用 SendKeys 发送传递的字符串,并将之前在前台的窗口带回前台。
我制作了这个程序,以便我可以将选择的文本从 vim 发送到我想要的任何程序,例如 python 交互式程序。
我不知道如何将选择直接发送到程序,但我确实找到了如何在可视模式下保存选定的文本(How can I save a text block in visual mode to a file in Vim? - 它可以保存整行,但这对于我的目的来说是可以的。理想情况下但是,它不会只保存行)。因此,我将程序的样式参数更改为文件名。我的计划是 vim 将选定的文本保存到文件中,并使用文件名调用程序。
这是我的 vimrc 的一部分
let g:send_keys_handle = 0
let g:send_keys_file = $home . "\\vim\\send.txt"
function! SendSelection()
if g:send_keys_handle
silent !cls
let x = "silent !cmdHost " . g:send_keys_handle . " " . "\"" . g:send_keys_file . "\""
echom x
execute x
endif
endfunction
command! SendS call SendSelection()
noremap <F5> <esc>va(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(:w ~\vim\send.txt<cr>
键映射不完整,但 vim 现在甚至没有执行所有它。当我按 F5 时,它会按预期选择最上面的括号,但不会将选择保存到文件中。
SendS 命令确实有效,所以这不是问题。
【问题讨论】:
标签: vim