vim-如何查询终端缓冲区的pwd?
假设我打开了一个终端缓冲区,该缓冲区被cd'ed到vim-如何查询终端缓冲区的pwd?,vim,terminal,Vim,Terminal,假设我打开了一个终端缓冲区,该缓冲区被cd'ed到~/foo/bar目录,我如何捕获该目录以用于其他Vimscript?@phd的回答帮助我找到了一个解决方案 function s:get_closest_terminal() " Reference: https://stackoverflow.com/a/27232550/3626104 let l:buffers = sort(tabpagebuflist('%'), 'n') for l:number in re
~/foo/bar
目录,我如何捕获该目录以用于其他Vimscript?@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
无法获取终端缓冲区所在的当前目录。它获取Vim设置的当前目录。它必须是终端缓冲区中的目录。您是指像
:terminal
中那样的终端缓冲区吗?嗯,那很难。看到了吧!把它贴出来作为答复