Um editor que é muito esquecido é o MacVim . É baseado no venerável editor vim , do * nix, e pode fazer tudo o que você solicitou através de plugins.
Eu mostro que ele suporta 176 idiomas diferentes, incluindo todos os que você mencionou.
Eu regularmente faço pesquisas de métodos existentes, variáveis, frases de texto aleatórias por meio de um mapeamento CNTRL_N ou CNTRL_P, que pesquisa todos os arquivos abertos e exibe uma lista dos hits.
O Vim chama seus projetos de "sessões", que armazenam todos os arquivos, configurações de janelas, macros etc. para posterior recarregamento. No modo "direto" do vim, ele :mksession path/to/sessionfile
será criado. Terceirização-lo mais tarde a partir da linha de comando é simples: vim -S path/to/sessionfile
.
Há um ótimo plug-in chamado VCS , que lida com meu material SVN:
... CVS, SVN, SVK, git, bzr e hg no VIM, incluindo confirmar alterações e executar diferenças ...
A funcionalidade de upload para o servidor é tratada pelo plugin netrw .
O vim tem uma curva de aprendizado acentuada; o vimtutor
, que acompanha o aplicativo, pode ajudar a impulsioná-lo. Além disso, há usuários ativos aqui e nos sites irmãos da SO, além do nó IRC do vim em freenode.net.
Provavelmente, a coisa mais impressionante sobre o vim está disponível em uma versão com interface no Mac OS como MacVim, no Linux usando gvim, no Windows e na linha de comando de qualquer um desses sistemas operacionais. O vim em qualquer um deles usará os mesmos comandos, os mesmos plugins, os mesmos temas, etc., dentro das limitações desses ambientes. Eu pulo do Mac para o Linux o dia inteiro e tenho pelo menos uma janela do vim aberta em algum lugar.
E, para que ninguém pense que eu não estou familiarizado com as alternativas apenas para Mac, possuo todas as minhas cópias de Coda, BBEdit e TextMate e as uso. Eu volto com o BBEdit e, na verdade, costumava fazer uma demonstração no MacWorld. É ótimo, mas eu uso o vim com as mesmas configurações em todos os lugares, e nenhum dos outros editores pode fazer isso. Portanto, se você precisar dessa compatibilidade entre plataformas, verifique isso.