aboutsummaryrefslogtreecommitdiff
path: root/.vimrc
diff options
context:
space:
mode:
authortdro <tdro@users.noreply.github.com>2020-07-03 02:37:54 -0400
committertdro <tdro@users.noreply.github.com>2020-07-03 02:37:54 -0400
commit461c086894d4adf01feaa627f853bcc2ad8f32ac (patch)
tree04d4f2923ae772f79d6e06d347d42a0d11246310 /.vimrc
parent23daf85fe01db687e10a76dfe9cbd3986b0f3464 (diff)
downloaddotfiles-461c086894d4adf01feaa627f853bcc2ad8f32ac.tar.gz
dotfiles-461c086894d4adf01feaa627f853bcc2ad8f32ac.tar.bz2
dotfiles-461c086894d4adf01feaa627f853bcc2ad8f32ac.zip
.vimrc: Pass language REPL
Diffstat (limited to '.vimrc')
-rw-r--r--.vimrc6
1 files changed, 4 insertions, 2 deletions
diff --git a/.vimrc b/.vimrc
index 33b8368..cbaff8e 100644
--- a/.vimrc
+++ b/.vimrc
@@ -256,12 +256,14 @@ let g:nnn#layout = 'new' " Opens the nnn window in a split
let g:nnn#layout = { 'left': '~20%' } " Left 20% of the window
" Send command to terminal https://vi.stackexchange.com/questions/14300/vim-how-to-send-entire-line-to-a-buffer-of-type-terminal
-function s:repl(start, end)
+function s:repl(start, end, language)
let g:terminal_buffer = get(g:, 'terminal_buffer', -1)
if g:terminal_buffer == -1 || !bufexists(g:terminal_buffer)
terminal
let g:terminal_buffer = bufnr('')
+ call term_sendkeys(g:terminal_buffer, "exec " . a:language . "\<cr>")
wincmd p
+ return
elseif bufwinnr(g:terminal_buffer) == -1
exec 'sbuffer ' . g:terminal_buffer
wincmd p
@@ -269,7 +271,7 @@ function s:repl(start, end)
call term_sendkeys(g:terminal_buffer, join(getline(a:start, a:end), "\<cr>") . "\<cr>")
endfunction
-command! -range Repl call s:repl(<line1>, <line2>)
+command! -nargs=? -range Repl call s:repl(<line1>, <line2>, <f-args>)
nnoremap <leader>cc :Repl<cr>
vnoremap <leader>cc :Repl<cr>