Comment puis-je exécuter javascript directement et afficher la sortie?

11

Je fais juste quelques tests avec la fonction de langage JavaScript sans manipulation DOM. Je modifie donc un fichier js et je me demande comment l'exécuter simplement et afficher la sortie de la console? J'ai installé le plugin moll / vim-node , mais je ne sais pas comment exécuter le code js.

Aaron Shen
la source
3
Vous pouvez essayer quelque chose comme :!node %. Cela débitera le nodeprogramme externe , en passant le nom de fichier actuel comme argument. La sortie sera affichée à l'écran et vous pouvez appuyer sur Entrée pour la désactiver.
tommcdo
Le commentaire ci-dessus de @tommcdo est une bonne solution concise qui satisfait tout ce que j'avais essayé de réaliser par des moyens plus compliqués tels que le slime, et cetera.
Jerome

Réponses:

5

Par cette entrée wikia vim, vous pouvez créer une exécution de shell vers un nouveau script de tampon, puis l'étendre pour exécuter votre code à l'aide de node.

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>)

Ensuite, si vous exécutez, :RunJS %vous devriez obtenir un nouveau tampon avec la sortie de votre exécution node.js. En option, vous pouvez appeler des choses directement en utilisant:Shell <cmd>

jecxjo
la source
4

Je pense que Codi est ce que vous recherchez. Il prend en charge JavaScript et certaines autres langues.

entrez la description de l'image ici

Tae
la source
3

Aucun plugin requis! Vous pouvez exécuter le nœud avec la commande shell:!

Exécutez le fichier entier avec :!/usr/local/bin/node %

Exécutez la ligne actuelle avec :exec '!/usr/local/bin/node' '-e' shellescape(getline('.'))

Nate
la source
0

Je recommande fortement https://github.com/Shougo/vimshell.vim à cet effet.

C'est un plugin vim qui vous permet d'exécuter un terminal dans vim. Vous pouvez ouvrir le terminal dans un nouvel onglet avec

:VimShellTab

ou fenêtre quickfix avec

:VimShellPop

alors vous pouvez exécuter les commandes comme d'habitude, c.-à-d.

node
user3751385
la source