1 Star 0 Fork 0

quick-source/vim-floaterm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
floaterm.vim 1.33 KB
一键复制 编辑 原始数据 按行查看 历史
Voldikss 提交于 5年前 . Unify code indent
" vim:sw=2:
" ============================================================================
" FileName: floaterm.vim
" Description:
" Author: voldikss <dyzplus@gmail.com>
" GitHub: https://github.com/voldikss
" ============================================================================
let s:floaterm = {}
let s:preview_height = 10
let s:bar = '[bufnr] [name]'
function! s:floaterm.source() abort
let candidates = [s:bar]
let bufs = floaterm#buflist#gather()
for bufnr in bufs
let bufinfo = getbufinfo(bufnr)[0]
let name = bufinfo['name']
let title = getbufvar(bufnr, 'term_title')
let line = printf(' %s %s %s', bufnr, name, title)
call add(candidates, line)
endfor
return candidates
endfunction
function! s:floaterm.on_move() abort
let curline = g:clap.display.getcurline()
if curline == s:bar
return
endif
let bufnr = str2nr(matchstr(curline, '\S'))
let lnum = getbufinfo(bufnr)[0]['lnum']
let lines = getbufline(bufnr, max([lnum-s:preview_height, 0]), '$')
let lines = lines[max([len(lines)-s:preview_height, 0]):]
call g:clap.preview.show(lines)
endfunction
function! s:floaterm.sink(curline) abort
if a:curline == s:bar | return | endif
let bufnr = str2nr(matchstr(a:curline, '\S'))
call floaterm#terminal#open_existing(bufnr)
endfunction
let g:clap#provider#floaterm# = s:floaterm
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/quick-source/vim-floaterm.git
git@gitee.com:quick-source/vim-floaterm.git
quick-source
vim-floaterm
vim-floaterm
master

搜索帮助