Как запросить pwd терминала буфера? - PullRequest
2 голосов
/ 13 марта 2020

Предполагая, что у меня открыт буфер терминала, который cd'ed в каталог ~/foo/bar, как мне перехватить этот каталог для использования в других vimscripts?

1 Ответ

1 голос
/ 14 марта 2020

@ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...