Plugins Vim recomendados para codificação JavaScript? [fechadas]

125

Eu sou novo no JS & Vim. Quais plugins me ajudariam a escrever código Javascript?

Tarek Saied
fonte
6
Para dar mais clareza à pergunta e ajudar o OP em inglês em futuras postagens ... Deveria ler-se: "Olá, sou novo no JS & Vim. Quais plug-ins me ajudariam a escrever código Javascript?" Você pode dizer "Eu sou novo em Javascript e vim". Você pode usar "what is" para singular, por exemplo "O que é um plug - in que me ajudaria ..." ou você pode usar " what " para um plural como este: " Quais plug-ins me ajudariam ...". Observe também que, em vez de "plugins is ", você deve usar "plugins would " porque é uma hipótese. Espero que ajude :-)
hendrixski
3
@hendrixski - vote para reabrir isso.
Ocodo 13/03
8
A questão mais construtiva e não construtiva de todos os tempos.
Vladislav Zorov
8
Gosto bastante de como essa pergunta "não construtiva" me ajudou a melhorar muito meu fluxo de trabalho.
perfil completo de MaiaVictor
Como a pergunta é (injustamente IMO) fechada, vou apenas adicionar um comentário aqui: existe um front-end baseado em elétrons para o NeoVim com preenchimento automático do servidor de linguagem de texto datilografado pronto para uso (funciona também com o vanilla JS!): Onivim.io . Ainda é um pouco difícil, mas eu o uso como meu driver diário há algumas semanas e não tive muitos problemas. Ela tem uma comunidade muito boa e está em desenvolvimento muito pesado, então espero coisas boas no futuro! Divulgação completa: Faço uma doação mensal ao projeto e planejo contribuir no futuro.
Parker Ault 25/03

Respostas:

116

Verificação / Linting de sintaxe

Existe uma maneira muito fácil de integrar o JSLint ou o jshint.com orientado pela comunidade (que é muito melhor IMO) com o Vim usando o plug-in Syntastic Vim. Veja meu outro post para mais informações.

Navegação no código fonte / lista de tags

Há também uma maneira muito elegante para adicionar tag de listagem usando da Mozilla DoctorJS (anteriormente jsctags ), que também é usado em Cloud9 IDE 's editor on-line Ace .

  1. Instale os seguintes pacotes usando seu gerenciador de pacotes favorito (Ubuntu apt-get, casabrew de Mac , etc.):
    1. exuberant-ctags
      • NOTA: Após a instalação, verifique se a execução ctagsrealmente é executada exuberant-ctagse não o sistema operacional pré-instalado ctags. Você pode descobrir executando ctags --version.
    2. node (Node.js)
  2. Clone DoctorJSdo github:git clone https://github.com/mozilla/doctorjs.git
  3. Vá para dentro de DoctorJSdir e make install(você também precisará do makeaplicativo instalado, mas isso é muito básico).
    • Existem alguns bugs na instalação do plugin, make installmas não funcionam por enquanto. Por enquanto, basta adicionar o bin/diretório do repositório ao meu $ PATH. Consulte o GitHub do DoctorJS e publica páginas para obter mais informações.
  4. Instale o plugin TagBar Vim ( OBSERVAÇÃO: é o TagBar, não o antigo e infame TagList!).
  5. LUCRO. :)

Novo projeto - Tern.js

DoctorJS está atualmente morto . Há um projeto novo e promissor chamado tern.js . Atualmente, está no beta inicial e deve substituí-lo.

Existe um projeto ramitos / jsctags que usa a andorinha-do-mar como seu mecanismo. Apenas npm install -gisso, e o tagbar o usará automaticamente para arquivos javascript.

Ory Band
fonte
5
+1 para Tagbar (só tinha consciência de TagList!)
RobM
9
Atualmente doctorjs requer que você recursiva clone conforme especificado no este bug , git clone --recursive https://github.com/mozilla/doctorjs.gite depois make install deve funcionar
Andy Ray
1
doctorjs no Windows: baumichel.blogspot.ca/2011/11/… adicionando tipos de arquivos adicionais ao TagBar: github.com/majutsushi/tagbar/wiki
Andrew
6
Antes de fazer o passo 3, cd em doctorjs e fazer isso: git submodule init && git submodule update. Em seguida, execute o passo 3.
glortho
2
O comando brew é realmentebrew install ctags-exuberant
sym3tri
17

snipMate emula o sistema de inserção do TextMate e vem com um monte de snippets JS úteis (entre outros) por padrão. É extremamente fácil adicionar o seu próprio.

O javaScriptLint permite validar seu código em relação ao jsl.

Além disso, você pode encontrar uma variedade de arquivos de sintaxe JavaScript em vim.org. Experimente e veja qual funciona melhor para você e seu estilo de codificação.

O omnicomplete nativo ( ctrlx- ctrlo) funciona muito bem para mim. Você pode torná-lo mais dinâmico com o autoComplPop , mas às vezes pode ser irritante.

editar, em resposta ao comentário de tarek11011:

O acp não funciona para JavaScript por padrão, você precisa ajustá-lo um pouco. Aqui está como eu fiz isso (truque sujo, eu ainda sou um Vim noob):

No vim-autocomplpop / plugin / acp.vim eu adicionei phpe javascript(e actionscript) para behavsque fique assim:

let behavs = {
    \   '*'            : [],
    \   'ruby'         : [],
    \   'python'       : [],
    \   'perl'         : [],
    \   'xml'          : [],
    \   'html'         : [],
    \   'xhtml'        : [],
    \   'css'          : [],
    \   'javascript'   : [],
    \   'actionscript' : [],
    \   'php'          : [],
    \ }

Um pouco abaixo, há uma série de blocos de código que se parecem com isso:

"---------------------------------------------------------------------------
call add(behavs.ruby, {
    \   'command' : "\<C-x>\<C-o>",
    \   'meets'   : 'acp#meetsForRubyOmni',
    \   'repeat'  : 0,
    \ })

Dupliquei este e editei um pouco para ficar assim:

"---------------------------------------------------------------------------
call add(behavs.javascript, {
    \   'command' : "\<C-x>\<C-o>",
    \   'meets'   : 'acp#meetsForRubyOmni',
    \   'repeat'  : 0,
    \ })

e fez o mesmo para actionscript e php.

Se você deseja editar JS / CSS em um documento HTML, é possível: defina ft = html.css.javascript na linha de comando do Vim para make ctrlx- ctrlofuncione conforme o esperado nos nomes de métodos / propriedades nos blocos JS e propriedades / valores nos blocos CSS. No entanto, essa abordagem também tem suas desvantagens (indentação estranha ...).

romainl
fonte
Como você pressionou as teclas de aparência legal?
precisa saber é o seguinte
1
Haha, é <kbd> </kbd>. Os navegadores geralmente não têm estilo padrão para essa tag, parabéns à equipe de SO por fazer o trabalho extra.
romainl
obrigado romainl, mas uma tem um problema com autoComplPop é trabalho apenas com arquivo html há js e css e php
Tarek Saied
Como muitos plugins do Vim, o acp é muito sensível aos tipos de arquivos. Se o tipo de arquivo do buffer for "html", nem acp nem omni complete funcionarão para JS / CSS / PHP incorporado. E vou editar minha resposta, não há opções / salas de edição suficientes aqui.
precisa saber é o seguinte
Você pode preferir usar o ramo de manutenção atual do snipMate que a Rok Garbas & co. coloque junto.
thisgeek
8

Este plugin também é útil: https://github.com/maksimr/vim-jsbeautify . Ele fornece formatação automática completa para javascript. Um toque de tecla e seu código parece bonito. Pode ser útil ao colar trechos de código também. Ele utiliza o popular js-beautifier, que também pode ser encontrado como um aplicativo online. O último pode ser encontrado aqui: http://jsbeautifier.org/ .

Chiel ten Brinke
fonte
3
Eu escrevi um plugin geral de autoformatação para o vim que integra o js-beautifier e muito mais. Verifique aqui: github.com/Chiel92/vim-autoformat
Chiel ten Brinke
mais bonito - o melhor #
Alex Shwarc 22/10
6

Eu uso apenas um plug-in vim específico para js - jslint.vim - https://github.com/hallettj/jslint.vim, que valida seu código com regras jslints e fornece erros de sintaxe também.

Scott
fonte
obrigado, mas acho que tenho um problema, veja img69.imageshack.us/img69/7629/11142565.png
Tarek Saied
Hum, no Windows, há instruções específicas que você precisa seguir, requer um interpretador de javascript. Não tentei instalá-lo no Windows, mas as instruções de instalação estão um pouco abaixo na página do README, desculpe, não posso ajudar mais lá.
Scott
3

Para corrigir o recuo e a formatação automática (Ctrl =): Recuo do JavaScript

Para definir a largura do recuo, adicione o javascript.vimarquivo em ~ / .vim / ftplugin dir com o seguinte conteúdo (para recuo de dois espaços):

 setl sw=2 sts=2 et
Evgenii
fonte
em ~/.vimrc:autocmd FileType javascript setlocal sw=2 ts=2 sts=2
juanpablo