Como posso executar o javascript diretamente e mostrar a saída?

11

Estou apenas fazendo alguns testes com o recurso de linguagem JavaScript sem manipulação de DOM. Então, eu estou editando um arquivo js e me perguntando como simplesmente executá-lo e mostrar a saída do console? Eu instalei o plugin moll / vim-node , mas não faço ideia de como executar o código js.

Aaron Shen
fonte
3
Você pode tentar algo parecido :!node %. Isso fará o shell do nodeprograma externo , passando o nome do arquivo atual como argumento. A saída será exibida na tela e você pode pressionar Enter para descartá-la.
tommcdo
O comentário acima de @tommcdo é uma boa solução concisa que satisfez tudo o que eu estava tentando alcançar através de meios mais complicados, como slime, etc.
Jerome

Respostas:

5

Por esta entrada do vim wikia, você pode criar uma execução de shell para o novo script de buffer e estendê-la para executar seu código usando o nó.

command! -complete=shellcmd -nargs=+ Shell call s:RunShellCommand(<q-args>)
function! s:RunShellCommand(cmdline)
  let isfirst = 1
  let words = []
  for word in split(a:cmdline)
    if isfirst
      let isfirst = 0  " don't change first word (shell command)
    else
      if word[0] =~ '\v[%#<]'
        let word = expand(word)
      endif
      let word = shellescape(word, 1)
    endif
    call add(words, word)
  endfor
  let expanded_cmdline = join(words)
  botright new
  setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile nowrap
  call setline(1, 'You entered:  ' . a:cmdline)
  call setline(2, 'Expanded to:  ' . expanded_cmdline)
  call append(line('$'), substitute(getline(2), '.', '=', 'g'))
  silent execute '$read !'. expanded_cmdline
  1
endfunction

command! -complete=file -nargs=* RunJS call s:RunShellCommand('node '.<q-args>)

Então, se você executar, :RunJS %deverá obter um novo buffer com a saída da execução do node.js. Opcionalmente, você pode chamar as coisas diretamente usando:Shell <cmd>

jecxjo
fonte
4

Eu acho que Codi é o que você está procurando. Ele suporta JavaScript e alguns outros idiomas.

insira a descrição da imagem aqui

Tae
fonte
3

Nenhum plugin é necessário! Você pode executar o nó com o comando shell:!

Execute o arquivo inteiro com :!/usr/local/bin/node %

Execute a linha atual com :exec '!/usr/local/bin/node' '-e' shellescape(getline('.'))

Nate
fonte
0

Eu recomendo https://github.com/Shougo/vimshell.vim para esse fim.

É um plugin do vim que permite executar um terminal no vim. Você pode abrir o terminal em uma nova guia com

:VimShellTab

ou janela quickfix com

:VimShellPop

então você pode executar comandos como de costume, ou seja,

node
user3751385
fonte