Je veux ouvrir un fichier dans Vim comme dans Eclipse en utilisant Ctrl + Shift + Rou via le Ctrl + N option de remplissage automatique. Appelez un raccourci clavier, tapez le nom de fichier/modèle et choisissez parmi tous les noms de fichiers correspondants.
Je sais l'ouvrir normalement comme:
:tabe <filepath>
:new <filepath>
:edit <filepath>
Le problème ici est que je dois spécifier le chemin d'accès complet au fichier dans ces cas.
Je suis récemment tombée amoureuse de fuzzyfinder.vim ... :-)
: FuzzyFinderFile vous permettra d'ouvrir des fichiers en tapant des noms partiels ou des modèles.
Ce que je fais normalement, c'est e .
(e-space-dot) qui me donne un répertoire en cours consultable - alors je peux /
- recherche des fragments de nom, tout comme rechercher un mot dans un fichier texte. Je trouve cela généralement suffisant, simple et rapide.
:find
est une autre option.
J'ouvre vim à partir de la racine de mon projet et le path
y est défini.
Ensuite, je peux ouvrir des fichiers situés n’importe où dans l’arbre en utilisant:
:find **/filena< tab >
Tab complétera automatiquement à travers divers matches. (**
lui dit de rechercher récursivement dans le chemin).
Vous pouvez rechercher un fichier dans le chemin actuel en utilisant **
:
:tabe **/header.h
Cliquez sur l'onglet pour voir différentes finitions s'il y a plus d'une correspondance.
Pensez à utiliser le plug-in CtrlP .
Il est inclus dans Janus Distributive .
Vous permet de rechercher des fichiers dans le répertoire en cours, d'ouvrir des mémoires tampons ou les fichiers les plus récemment utilisés à l'aide de la "correspondance floue" ou d'une expression régulière.
sauf si quelque chose me manque: e nom de fichier est le moyen le plus rapide que j'ai trouvé.
Vous pouvez également utiliser tab pour compléter automatiquement le nom du fichier.
J'aime le: FuzzyFinderTextMate (ou Ctrl + F) sur ma configuration. Voir http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim
J'utilise quelques raccourcis dans mon fichier .vimrc (syntaxe exacte ci-dessous).
Ils sont basés sur le fait que dans 90% des cas, je souhaite ouvrir un autre fichier dans le même répertoire que celui que je suis en train de modifier ou dans un répertoire très proche de ce fichier modifié dans la hiérarchie.
Voici ce que font les commandes:
,cd
: Change le répertoire de travail actuel en répertoire dans lequel se trouve le fichier actuel que vous éditez.
,e
: Ouvre un fichier avec le répertoire de travail actuel déjà renseigné. Vous devez donc indiquer niquement le nom du fichier.
Mettez-les dans votre .vimrc:
map ,e :e <C-R>=expand("%:p:h") . "/" <CR>
map ,cd :cd %:p:h <CR>
Voici une séquence d'événements:
,cd
-> Le répertoire de travail actuel devient "/ home/prog",e
-> Se développe en ": e/home/prog" pour que vous puissiez simplement entrer le nom du fichier, par exemple test.h.,e
-> Se développe en ": e/home"tab
-> Parcourir les sous-répertoires de/homeenter
-> cd
dans le répertoire de votre choix,/home/prog,e
-> Se développe en ": e/home/prog"Il y a aussi le commandement que je trouve être le meilleur du groupe (et je les ai tous essayés). L'installer est un problème mineur, mais une fois installé, c'est un rêve à utiliser.
Utilisez des onglets, ils fonctionnent lors de la saisie de chemins de fichiers en mode vim escape!
Si vous avez des balises (et vous devriez le faire), vous pouvez ouvrir un fichier à partir de la ligne de commande simplement par le nom de la classe, de la méthode ou de la fonction c, avec "vim -t DBPlaylist" et dans vim avec ": tag ShowList ".
Ce n'est pas exactement ce que vous cherchez, mais c'est bon dans de nombreux cas (mais pas dans tous).
Si vous VIM ouvrez et qu'il y ait un nom de fichier dans la mémoire tampon, vous pouvez placer le curseur sur ce nom de fichier et taper gf. Cela ouvre le fichier dont le nom est sous le curseur dans le même tampon. C'est pareil que
:e CTRL+rCTRL+w
Si vous éditez des fichiers dans un répertoire commun, vous pouvez :cd
Dans ce répertoire, puis utilisez :e
Uniquement sur le nom du fichier.
Par exemple, plutôt que:
:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb
:sp /big/long/path/that/takes/a/while/to/type/or/tab/complete/other_thingy.c
:vs /big/long/path/that/takes/a/while/to/type/or/tab/complete/one_more_thingy.Java
Tu peux faire:
:cd /big/long/path/that/takes/a/while/to/type/or/tab/complete/
:e thingy.rb
:sp other_thingy.c
:vs one_more_thingy.Java
Ou, si vous avez déjà un fichier dans le répertoire souhaité ouvert, vous pouvez utiliser le raccourci %
Pour le nom de fichier actuel et le rogner dans le répertoire actuel avec le modificateur :h
(:help :_%:
):
:e /big/long/path/that/takes/a/while/to/type/or/tab/complete/thingy.rb
:cd %:h
:sp other_thingy.c
:vs one_more_thingy.Java
Et, comme d’autres l’ont dit, vous pouvez compléter l’onglet en tapant les noms de fichier (voir :help cmdline-completion
Pour plus).
Je connais trois plug-ins qui permettent d'ouvrir des fichiers, prennent en charge la complétion automatique et ne nécessitent pas d'entrer le nom de chemin complet du ou des fichiers à ouvrir (tant que les fichiers sont sous l'un des répertoires de &path
option vim):
:e
/:find
, mais sur les actions divisées)Dernièrement, j'ai vu un autre plugin avec une fonctionnalité similaire, mais je ne me souviens pas de son nom.
Bientôt,: find est susceptible de prendre en charge l'auto-complétion - des correctifs sur ce sujet circulent sur la liste de diffusion vim_dev ces jours-ci.
p*.dat
ou quelque chose comme ça (comme dans les vieux dos)vous pouvez aussi: parcourir confirmer e (pour une fenêtre graphique)
mais vous devriez aussi probablement spécifier la version de vim que vous utilisez et son fonctionnement dans emacs. Peut-être pourrions-nous vous trouver une alternative exacte à vim.
FuzzyFinder a été mentionné, mais j'aime le comportement textmate du plugin FuzzyFinderTextmate , qui étend le comportement à tous les sous-répertoires.
Assurez-vous que vous utilisez la version 2.16 de fuzzyfinder.vim - Les versions supérieures cassent le plugin.
Avec ctags Exuberant, vous pouvez créer des fichiers de balise avec les informations de fichier:
ctags --extra=+f -R *
Ensuite, ouvrez le fichier de VIM avec
:tag filename
Vous pouvez aussi utiliser <tab>
pour compléter automatiquement le nom du fichier.
J'ai installé FuzzyFinder. Cependant, la limitation réside dans le fait qu'il ne trouve que les fichiers dans le répertoire en cours. Une solution consiste à ajouter FuzzyFinderTextmate. Cependant, selon les documents et les commentaires, cela ne fonctionne pas de manière fiable. Vous avez besoin de la bonne version de FuzzyFinder et votre copie de Vim doit être compilée avec le support Ruby).
Une autre solution que j'essaie maintenant consiste à ouvrir tous les fichiers dont j'ai probablement besoin au début de la session de montage. Par exemple, ouvrez tous les fichiers des répertoires clés ...
:args app/**
:args config/**
:args test/**
etc...
(Cela signifie que j'aurais éventuellement des dizaines de fichiers ouverts, mais jusqu'à présent, cela semble toujours fonctionner correctement.)
Après cela, je peux utiliser FuzzyFinder en mode tampon et il agira un peu comme le raccourci de TextMate command-o
...
:FuzzyFinderBuffer
Dans GVIM, le fichier peut être parcouru à l'aide du dialogue ouvrir/lire/écrire.
:browse {command}
{commande} - ouvrir/lire/écrire
open - Ouvre le fichier read - Ajoute le fichier write - Dialogue SaveAs