Qual fluxo de trabalho usar ao editar grandes projetos com vários arquivos

7

Ultimamente, tenho mudado cada vez mais meu trabalho do IntelliJ para o vim. Com um punhado de plugins e ajustes, não sinto muita falta do IDE.

Uma coisa que sinto falta é a facilidade de navegar em uma grande árvore de diretórios dos arquivos de origem.

Estou trabalhando em um projeto de tamanho médio com 39 arquivos de origem. dividido em um punhado de diretórios.

O IntelliJ exibia o diretório do projeto como isto(não a minha foto). Se você não conhece um IDE, pode clicar em um dos arquivos para abri-lo na janela principal de edição ou em uma divisão.

No momento, tenho apenas um monte de painéis do Tmux abertos, mas isso só é eficaz para dois ou três arquivos antes que os painéis fiquem muito pequenos.

A barra lateral do Tmux replica visualmente o recurso, mas você ainda precisa digitar manualmente um nome de arquivo + caminho para editá-lo.

O Vim é nativo :Exe :Sexfunciona bem, mas (até onde eu sei) não existe uma maneira de usá-los para abrir um arquivo em outra divisão. Eu gostaria de poder abri-lo e usá-lo para abrir arquivos em buffers / splits existentes.

Jones
fonte
3
Tente usar oum arquivo ao usar o netrw (o netrw é o que é :Exaberto).
Tumbler41

Respostas:

6

Eu usei vinagre por um longo tempo e, graças ao "caminho tpope", me ensinou os netrwatalhos nativos (que possuem uma vista em árvore , a propósito, pressione i3 vezes). Tudo o que sinto falta de um Vim vazio é o -mapeamento para subir em um diretório.

Embora eu tenha mudado para o dirvish, que é incrivelmente mais rápido em diretórios grandes e tem uma abordagem ainda mais idiomática; do README:

Navegador de caminho projetado para funcionar com os mecanismos integrados do Vim e plugins complementares

Cada linha é um caminho de arquivo (oculto por ocultar )

Nunca modifica o sistema de arquivos

Seleção visual abre vários arquivos

Ao contrário do NERDTree e de outros plugins que imitam um IDE clássico, esses dois usam o buffer atual para exibir a lista de arquivos, forçando um fluxo de trabalho mais focado e, no final, permitindo mais espaço para o conteúdo. Nada impede que você abra netrw ou dirvish em uma divisão vertical como uma gaveta de projeto.

Neovim com dirvish e ctrlp

Também estou acostumado a ctrlp (visível acima) para encontrar rapidamente arquivos no diretório atual. Esta configuração inspirada no post mais rápido do Grebping no Vim , substitui greppor agquando disponível:

if executable('ag')
  " Use Ag over Grep (additional options: --column, --ignore-case)
  set grepprg=ag\ --nocolor\ --nogroup\ --vimgrep

  " Use The Silver Searcher in CtrlP for listing files
  " Respect .gitignore and .agignore, ignores hidden files by default
  let g:ctrlp_user_command = 'ag --nogroup --nocolor --files-with-matches --hidden --ignore .git -g "" --literal %s'
  " Disable per-session caching
  let g:ctrlp_use_caching = 0
else
  " Exclude .gitignore patterns
  let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -co --exclude-standard']
endif

Mas um mapa simples pode fazer o truque, basta digitar :e **/*seguido de um padrão e alternar com <Tab>.

" Find a file in current working directory
nnoremap <Leader>e :e **/*
LEI
fonte
2

Eu realmente gosto do Ranger como um seletor de arquivos. Ao contrário do NERDTree, ele só aparece quando você precisa, possui o Vim como atalhos de teclas e também pode ser usado sem o Vim.

imagem

Laktak
fonte
1

Você pode usar o navegador de arquivos embutido netrw em um painel lateral. Aqui está uma introdução rápida:

  1. Abra a pasta no netrw, talvez com vim .ou:e folder

  2. Escolha um arquivo e pressione vpara abri-lo em uma divisão [vertical].

  3. Mas você provavelmente deseja o navegador de arquivos à esquerda. Acerto Ctrl-W x( correção permanente )

  4. Você pode querer que sua janela atual seja mais larga. Acertar20 Ctrl-W >

  5. Na próxima vez que você quiser abrir um arquivo, pressione em Shift-Pvez de vabri-lo no painel de arquivos existente (a janela [P] revious).

Bônus: como o nome sugere, o netrw pode até trabalhar em uma rede (FTP, SFTP). Não tenho certeza se os plugins de árvore de arquivos como o NerdTree e o VTreeExplorer oferecem esse comportamento.

Você pode fazer o netrw exibir uma árvore pressionando a itecla algumas vezes.

joeytwiddle
fonte