Em outro post aqui eu descrevi como configurei o vim para trabalhar com Dart e Flutter. Da mesma forma, pretendo te ajudar a configurar o seu vim para trabalhar com typescript.
Suporte a linguagem
Considerando que você utilize o vim-plug para instalar os plugins para o seu vim. O primeiro passo é adicionar o suporte a linguagem:
Plug 'HerringtonDarkholme/yats.vim'
React
Se você vai utilizar React (arquivos .tsx):
Plug 'MaxMEllon/vim-jsx-pretty'
Plugins
Aqui você precisa considerar as ferramentas que você utiliza no seu dia-a-dia. Por exemplo, para quem utiliza styled-components
é recomendado que se instale o suporte a syntax:
Plug 'styled-components/vim-styled-components', { 'branch': 'main' }
Vale considerar também o Prettier:
Plug 'prettier/vim-prettier'
Para o HTML, eu utilizo apenas o emmet:
Plug 'mattn/emmet-vim'
CoC
Com os plugins acima você vai conseguir desenvolver tranquilo, com syntax highlight e tudo mais. Porem, para obter recursos mais atuais como "go-to-definition", "autocomplete" e "auto import" precisamos instalar o CoC.
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Indique as extensões que você irá utilizar:
let g:coc_global_extensions = [ \ 'coc-snippets', \ 'coc-actions', \ 'coc-lists', \ 'coc-tsserver', \ 'coc-html', \ 'coc-css', \ 'coc-prettier', \ 'coc-vimlsp', \ ]
Você também pode instalar por dentro do neovim com o comando:
:CocInstall <extension-name>
CoC: Popup de sugestão
<Tab>
para navegar e <Ctrl-Space>
para abrir popup de sugestão:
inoremap <silent><expr> <TAB> \ pumvisible() ? "\<C-n>" : \ <SID>check_back_space() ? "\<TAB>" : \ coc#refresh() inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" function! s:check_back_space() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction inoremap <silent><expr> <c-space> coc#refresh()
CoC: Renomear Símbolo
nmap <leader>rn <Plug>(coc-rename)
CoC: Navegação de código
nmap <silent> gf <Plug>(coc-definition)
CoC: Ações de Código
Exemplo de uso: <leader>aap
para o parágrafo atual. <leader>aw
para a palavra.
xmap <silent> <leader>a <Plug>(coc-codeaction-selected) nmap <silent> <leader>a <Plug>(coc-codeaction-selected)
CoC: Lista de comandos, extensões e diagnósticos
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr> nnoremap <silent> <space>e :<C-u>CocList extensions<cr> nnoremap <silent> <space>c :<C-u>CocList commands<cr>
Meu setup
Vou deixar aqui o repositório onde mantenho minha config. Além do que foi falado aqui você também vai encontrar o tema que eu uso e outras configurações pessoais. Vale pesquisar o da galera por ai também :)
enriquesaid / nvim-config
my nvim config
nvim-config
my nvim config
requirements
color scheme
install
:PaqInstall :PaqSync :LspInstall lua :LspInstall typescript :LspInstall html :LspInstall css :TSInstall lua :TSInstall javascript :TSInstall typescript :TSInstall json :TSInstall html :TSInstall css :TSInstall yaml :TSInstall dart
Qualquer coisa estamos ai nos comentários 😄
Um abraço!
Top comments (1)
Cara, sensacional, ficou muito bacana o resultado. Sou iniciante no Vim e depois que comecei a usar me apaixonei, vou usar esse setup tmb, muito obrigado!