mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-03-13 10:15:41 +08:00
Add float terminal windows support (#3377)
This commit is contained in:
parent
77f8392f86
commit
64b2199683
@ -23,6 +23,7 @@
|
|||||||
" <
|
" <
|
||||||
|
|
||||||
let s:SYSTEM = SpaceVim#api#import('system')
|
let s:SYSTEM = SpaceVim#api#import('system')
|
||||||
|
let s:FLOAT = SpaceVim#api#import('neovim#floating')
|
||||||
|
|
||||||
function! SpaceVim#layers#shell#plugins() abort
|
function! SpaceVim#layers#shell#plugins() abort
|
||||||
let plugins = []
|
let plugins = []
|
||||||
@ -122,7 +123,7 @@ endfunction
|
|||||||
|
|
||||||
function! SpaceVim#layers#shell#get_options() abort
|
function! SpaceVim#layers#shell#get_options() abort
|
||||||
|
|
||||||
return ['default_shell', 'default_position', 'default_height']
|
return ['default_shell', 'default_position', 'default_height',]
|
||||||
|
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@ -169,12 +170,25 @@ function! s:open_default_shell(open_with_file_cwd) abort
|
|||||||
\ 'botright split' :
|
\ 'botright split' :
|
||||||
\ s:default_position ==# 'right' ?
|
\ s:default_position ==# 'right' ?
|
||||||
\ 'rightbelow vsplit' : 'leftabove vsplit'
|
\ 'rightbelow vsplit' : 'leftabove vsplit'
|
||||||
|
if s:default_position == 'float'
|
||||||
|
let s:term_win_id = s:FLOAT.open_win(bufnr('%'), v:true,
|
||||||
|
\ {
|
||||||
|
\ 'relative': 'editor',
|
||||||
|
\ 'width' : &columns,
|
||||||
|
\ 'height' : &lines * s:default_height / 100,
|
||||||
|
\ 'row': 0,
|
||||||
|
\ 'col': &lines - (&lines * s:default_height / 100) - 2
|
||||||
|
\ })
|
||||||
|
|
||||||
|
exe win_id2win(s:term_win_id) . 'wincmd w'
|
||||||
|
else
|
||||||
exe cmd
|
exe cmd
|
||||||
let w:shell_layer_win = 1
|
|
||||||
let lines = &lines * s:default_height / 100
|
let lines = &lines * s:default_height / 100
|
||||||
if lines < winheight(0) && (s:default_position ==# 'top' || s:default_position ==# 'bottom')
|
if lines < winheight(0) && (s:default_position ==# 'top' || s:default_position ==# 'bottom')
|
||||||
exe 'resize ' . lines
|
exe 'resize ' . lines
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
let w:shell_layer_win = 1
|
||||||
for open_terminal in s:open_terminals_buffers
|
for open_terminal in s:open_terminals_buffers
|
||||||
if bufexists(open_terminal)
|
if bufexists(open_terminal)
|
||||||
if getbufvar(open_terminal, '_spacevim_shell_cwd') ==# l:path
|
if getbufvar(open_terminal, '_spacevim_shell_cwd') ==# l:path
|
||||||
|
@ -44,7 +44,7 @@ The default shell is quickly accessible via a the default shortcut key `SPC '`.
|
|||||||
### 设置终端打开位置及高度
|
### 设置终端打开位置及高度
|
||||||
|
|
||||||
在启用该模块时,可以通过 `default_position` 这一模块选项来指定终端打开的位置,
|
在启用该模块时,可以通过 `default_position` 这一模块选项来指定终端打开的位置,
|
||||||
目前可以选的值为:`top`, `bottom`, `left`, `right`, or `full`,默认的值为 `top`。
|
目前可以选的值为:`top`, `bottom`, `left`, `right`, `float` or `full`,默认的值为 `top`。
|
||||||
|
|
||||||
同时,可以通过 `default_height` 这一模块选项指定终端打开的高度,默认值为 30。
|
同时,可以通过 `default_height` 这一模块选项指定终端打开的高度,默认值为 30。
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ description: "This layer provide shell support in SpaceVim"
|
|||||||
- [Default shell](#default-shell)
|
- [Default shell](#default-shell)
|
||||||
- [Default shell position and height](#default-shell-position-and-height)
|
- [Default shell position and height](#default-shell-position-and-height)
|
||||||
- [Key bindings](#key-bindings)
|
- [Key bindings](#key-bindings)
|
||||||
|
- [Additional key bindings on Windows](#additional-key-bindings-on-windows)
|
||||||
|
|
||||||
<!-- vim-markdown-toc -->
|
<!-- vim-markdown-toc -->
|
||||||
|
|
||||||
@ -45,8 +46,8 @@ The default shell is quickly accessible via a the default shortcut key `SPC '`.
|
|||||||
### Default shell position and height
|
### Default shell position and height
|
||||||
|
|
||||||
It is possible to choose where the shell should pop up by setting the
|
It is possible to choose where the shell should pop up by setting the
|
||||||
variable `default_position` to either `top`, `bottom`, `left`, `right`, or
|
variable `default_position` to either `top`, `bottom`, `left`, `right`, `float`
|
||||||
`full`. Default value is `top`. It is also possible to set the default height
|
or `full`. Default value is `top`. It is also possible to set the default height
|
||||||
in percents with the variable `default_height`. Default value is 30.
|
in percents with the variable `default_height`. Default value is 30.
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
|
Loading…
x
Reference in New Issue
Block a user