gpt4 book ai didi

linux - vim:将文本选择发送到 bash

转载 作者:太空狗 更新时间:2023-10-29 12:43:08 26 4
gpt4 key购买 nike

如何将当前选择的(在可视模式下)文本内容发送到 bash 命令?

我知道,可以使用 :! 调用 bash 命令,但对于其余部分,我找不到文档。

最佳答案

首先,您可以通过函数获取可视化选择的文本。我从https://stackoverflow.com/a/6271254/3108885带来的:

function! s:GetVisualSelection()
let [lnum1, col1] = getpos("'<")[1:2]
let [lnum2, col2] = getpos("'>")[1:2]
let lines = getline(lnum1, lnum2)
let lines[-1] = lines[-1][:col2 - (&selection == 'inclusive' ? 1 : 2)]
let lines[0] = lines[0][col1 - 1:]
return join(lines, "\n")
endfunction

然后为可视模式添加 map :

vnoremap <buffer> <F5> :<C-U>exec '!python -c' shellescape(<SID>GetVisualSelection(), 1)<CR>

如果您按下 F5,将执行视觉选择的 python 代码。您可以通过在 vnoremap 之前添加 autocmd FileType python 来仅为 Python 代码定义此映射。因此可以处理多种文件类型。

autocmd FileType python vnoremap <buffer> <F5> :<C-U>exec '!python -c' shellescape(<SID>GetVisualSelection(), 1)<CR>
autocmd FileType ruby vnoremap <buffer> <F5> :<C-U>exec '!ruby -e' shellescape(<SID>GetVisualSelection(), 1)<CR>

关于linux - vim:将文本选择发送到 bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35215339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com