web-dev-qa-db-fra.com

Raccourci pour ouvrir le fichier dans Vim

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.

122
Techmaddy

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.

59
f3lix

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.

140
dkretz

: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).

33
mattwarren

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.

25
strager

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.

15
Alexey

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.

12
Ian P

J'aime le: FuzzyFinderTextMate (ou Ctrl + F) sur ma configuration. Voir http://weblog.jamisbuck.org/2008/10/10/coming-home-to-vim

10
alex2k8

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:


  1. Vous éditez un fichier appelé test.Java dans "/ home/prog"
  2. ,cd -> Le répertoire de travail actuel devient "/ home/prog"
  3. ,e -> Se développe en ": e/home/prog" pour que vous puissiez simplement entrer le nom du fichier, par exemple test.h.

  1. ,e -> Se développe en ": e/home"
  2. tab -> Parcourir les sous-répertoires de/home
  3. enter -> cd dans le répertoire de votre choix,/home/prog
  4. ,e -> Se développe en ": e/home/prog"
9
Himadri Choudhury

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.

https://wincent.com/products/command-t/

8
bronson

Utilisez des onglets, ils fonctionnent lors de la saisie de chemins de fichiers en mode vim escape!

6
dirkgently

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 ".

4
Paul Tomblin

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

4
Nathan Fellman

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).

4
rampion

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):

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.

3
Luc Hermitte
  • vous pouvez utiliser (set wildmenu)
  • vous pouvez utiliser l'onglet pour compléter automatiquement les noms de fichiers
  • vous pouvez également utiliser la correspondance, par exemple: e 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.

1
Rook

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.

1
Naseer

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.

0
Wonil

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
0
Ethan

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

0
Samantha