Quero abrir um arquivo no Vim, como no Eclipse, usando Ctrl+ Shift+ Rou através doCtrlN opção + do preenchimento automático. Chame um atalho de teclado, digite o nome / padrão do arquivo e escolha entre todos os nomes de arquivos correspondentes.
Eu sei abri-lo normalmente como:
:tabe <filepath>
:new <filepath>
:edit <filepath>
O problema aqui é que eu tenho que especificar todo o caminho do arquivo nesses casos.
vim
keyboard-shortcuts
Techmaddy
fonte
fonte
:tabe
abrirão o arquivo em uma nova guia,:new
dividirão a janela horizontalmente e:edit
fecharão o arquivo atual antes de abrir o novo.Respostas:
Recentemente me apaixonei por fuzzyfinder.vim ... :-)
: FuzzyFinderFile permitirá que você abra arquivos digitando nomes ou padrões parciais.
fonte
O que normalmente faço é
e .
(e-space-dot), que me fornece um diretório atual navegável - então eu posso/
- procurar por fragmentos de nome, assim como encontrar uma palavra em um arquivo de texto. Acho isso geralmente bom o suficiente, simples e rápido.fonte
:e.
):e.
e:E
embora: se o arquivo atual foi editado e ainda não foi salvo, o primeiro reclamará (como:edit
) por causa de "nenhuma gravação desde a última alteração", enquanto o segundo dividirá a janela horizontalmente (como:new
) para permitir a abertura de um novo arquivo (enquanto ambos substituirão o arquivo atual pelo novo arquivo se ele não tiver sido modificado (como:edit
)).:find
é outra opção.Abro o vim a partir da raiz do meu projeto e tenho o
path
conjunto para lá.Em seguida, posso abrir arquivos localizados em qualquer lugar da árvore usando:
A guia será preenchida automaticamente através de várias correspondências. (
**
diz para pesquisar recursivamente pelo caminho).fonte
:find
desde que, para obter o caminho relativo ao diretório de trabalho. Veja a pergunta e a resposta @romainl aqui: stackoverflow.com/questions/28224168/… . Acho a resposta @strager mais interessante para facilitar o caminho relativo ao diretório de trabalho.Você pode procurar um arquivo no caminho atual usando
**
:Clique na aba para ver várias conclusões se houver mais de uma correspondência.
fonte
:tabe **/*der.h
se você não se lembrar do nome completo do arquivo.Considere usar o plug-in CtrlP .
Está incluído no Janus Distributive .
Permite encontrar arquivos no diretório atual, buffers abertos ou arquivos usados mais recentemente usando "correspondência difusa" ou expressão regular.
fonte
a menos que esteja faltando alguma coisa,: o nome do arquivo é a maneira mais rápida que encontrei.
Você pode usar a guia para preencher automaticamente o nome do arquivo.
fonte
Eu gosto do: FuzzyFinderTextMate (ou Ctrl+ F) na minha instalação. Veja http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim
fonte
Eu uso alguns atalhos no meu arquivo .vimrc (sintaxe exata abaixo).
Eles se baseiam no fato de que em 90% dos casos, desejo abrir outro arquivo no mesmo diretório que o arquivo que estou editando no momento ou em um diretório muito próximo da hierarquia do arquivo editado.
Aqui está o que os comandos fazem:
,cd
: Altere o diretório de trabalho atual para o diretório em que o arquivo atual está sendo editado.,e
: Abre um arquivo com o diretório de trabalho atual já preenchido para que você tenha que especificar apenas o nome do arquivo.Coloque-os no seu .vimrc:
Aqui está uma sequência de eventos:
,cd
-> O diretório de trabalho atual agora se torna "/ home / prog",e
-> Expande para ": e / home / prog" para que você possa simplesmente preencher o nome do arquivo, diga test.h.,e
-> Expande para ": e / home"tab
-> Alterne entre subdiretórios de / homeenter
->cd
para o diretório que você quer dizer / home / prog,e
-> Expande para ": e / home / prog"fonte
Também há comando-t que eu acho o melhor do grupo (e eu tentei todos eles). É um pequeno problema para instalá-lo, mas, uma vez instalado, é um sonho de usar.
https://wincent.com/products/command-t/
fonte
Use guias, eles funcionam ao inserir caminhos de arquivos no modo de escape do vim!
fonte
Se você possui tags (e deve), é possível abrir um arquivo na linha de comando apenas pelo nome da classe ou método ou função c, com "vim -t DBPlaylist" e no vim com ": tag ShowList "
fonte
Se você estiver editando arquivos em um diretório comum, poderá fazê-lo
:cd
nesse diretório e use:e
apenas o nome do arquivo.Por exemplo, em vez de:
Você pode fazer:
Ou, se você já possui um arquivo no diretório desejado aberto, pode usar a
%
abreviação do nome do arquivo atual e apará-lo no diretório atual com o:h
modificador (:help :_%:
):E, como outros já disseram, você pode tab-complete os nomes dos arquivos na linha externa (veja
:help cmdline-completion
para mais).fonte
Isto não é exatamente que você está procurando, mas é bom em muitos casos (embora nem todos).
Se você abrir o VIM e houver um nome de arquivo no buffer, poderá colocar o cursor nesse nome de arquivo e tipo gf. Isso abre o arquivo cujo nome está sob o cursor no mesmo buffer. É o mesmo que
:e CTRL+r CTRL+w
fonte
:b oldname
Conheço três plugins que permitem abrir arquivos, oferecem suporte ao preenchimento automático e não exigem a inserção do nome completo do caminho do (s) arquivo (s) a ser aberto (desde que os arquivos estejam sob um dos diretórios da
&path
opção vim) ::e
/:find
, mas em ações divididas)Ultimamente, tenho visto outro plug-in com um recurso semelhante, mas não me lembro do nome.
Em breve,: find provavelmente suporta suporte à conclusão automática - os patches sobre esse tópico estão circulando na lista de discussão do vim_dev atualmente.
fonte
p*.dat
ou algo parecido (como nos antigos)você também pode: procurar confirmar e (para uma janela gráfica)
mas você provavelmente também deve especificar qual versão do vim está usando e como essa coisa no emacs funciona. Talvez possamos encontrar uma alternativa exata para o vim.
fonte
O FuzzyFinder foi mencionado, no entanto, eu amo o comportamento do colega de texto como o FuzzyFinderTextmate in que estende o comportamento para incluir todos os subdiretórios.
Verifique se você está usando a versão 2.16 do fuzzyfinder.vim - as versões superiores quebram o plugin.
fonte
Com ctags Exuberant, você pode criar arquivos de tags com informações sobre o arquivo:
Em seguida, abra o arquivo do VIM com
Você também pode usar
<tab>
para preencher automaticamente o nome do arquivo.fonte
No GVIM, o arquivo pode ser navegado usando o diálogo abrir / ler / gravar;
{comando} - abrir / ler / gravar
open - Abre o arquivo lido - Anexa o arquivo write - SaveAs dialog
fonte
Eu instalei o FuzzyFinder. No entanto, a limitação é que ele encontra apenas arquivos no diretório atual. Uma solução alternativa é adicionar o FuzzyFinderTextmate. No entanto, com base nos documentos e nos comentários, isso não funciona de maneira confiável. Você precisa da versão correta do FuzzyFinder e da sua cópia do Vim para ser compilada com o suporte ao Ruby.
Uma solução diferente que estou testando agora é abrir todos os arquivos que provavelmente precisarei no início da sessão de edição. Por exemplo, abra todos os arquivos nos principais diretórios ...
(Isso significa que eu teria vários arquivos abertos, no entanto, até agora, ainda parece funcionar bem.)
Depois disso, eu posso usar o FuzzyFinder no modo buffer e ele funcionará um pouco como o
command-o
atalho do TextMate ...fonte