vim-如何查询终端缓冲区的密码?

问题描述 投票:3回答:1

假设我打开了一个终端缓冲区,并已将其刻录到~/foo/bar目录,如何捕获该目录以用于其他vimscript?

vim terminal
1个回答
1
投票

@ phd的回答帮助我找到了解决方案

function s:get_closest_terminal()
    " Reference: https://stackoverflow.com/a/27232550/3626104
    let l:buffers = sort(tabpagebuflist('%'), 'n')

    for l:number in reverse(l:buffers)
        let l:type = getbufvar(l:number, '&buftype', '')

        if l:type == "terminal"
            return l:number
        endif
    endfor

    return -1
endfunction


function s:get_current_directory()
    let l:terminal_buffer = s:get_closest_terminal()

    if l:terminal_buffer == -1
        echoerr "No directory could be found"

        return ""
    endif

    " Example: "hostname@localhost: /home/username"
    let l:title = term_gettitle(l:terminal_buffer)

    " Example: "/home/username"
    return substitute(l:title, "^.*: ", "", "")
endfunction
© www.soinside.com 2019 - 2024. All rights reserved.