Vim fichier de navigation
Je suis en train vraiment difficile d'apprendre vim après l'utilisation de TextMate pour les quelques dernières années.
J'ai commencé à consacrer une partie de la navigation dans les fichiers de la mémoire, mais j'ai du mal avec la navigation entre plusieurs fichiers.
Dans mon flux de travail, il est assez fréquent que je suis retournement entre une poignée de fichiers assez régulièrement (assez de fichiers tels que split-volet windows devenue trop petite).
Je suis actuellement à l'aide NERDTree mais trouver de forage vers le bas dans les répertoires lourd constamment à l'aide de CTRL+W h/CTRL+W l pour hop-et-vient.
Je pense que je ferais mieux avec des onglets, je peux facilement basculer entre mais peut-être que j'ai besoin d'utiliser un autre flux de travail.
J'aimerais aussi un "Aller au Dossier..." raccourci comme CMD+T dans TextMate. J'ai trouvé fuzzy_file_finder
mais il nécessite de vim à être construit avec Ruby liaisons qui n'est pas le cas, le natif installe j'ai travaillé sur.
Alors que je pourrait reconstruire la principale raison pour laquelle je veux passer à vim est si je peux en avoir un éditeur environnement que je connais de travailler plus facilement sur n'importe quelle plateforme.
Les options disponibles sont écrasant toutes les idées sont appréciées!
- Je n'ai pas trouvé vraiment de façon satisfaisante de la navigation de fichiers et de tampons, qui n'utilise pas de aides externes à tous. Construit dans le truc est assez mauvais (je veux dire, de changer de tampon par son numéro? Qui va autour de rappeler tampon temporaire de numéros ...)
- vous pouvez vous référer à des tampons par nom ainsi que le nombre - voir ma réponse ci-dessous
Vous devez vous connecter pour publier un commentaire.
Je ne trouve pas de forage vers le bas dans les sous-répertoires via un bon vieux
:e
être que la lourdeur donné un décent de configuration de l'onglet achèvement.Regarder dans le
'wildmenu'
option pour Vim afficher une liste de compléments (les noms de fichiers) dans le modeline au-dessus de la ligne de commande. Vous pouvez modifier la'wildmode'
option pour configurer le type de l'onglet de l'achèvement de Vim va faire.Personnellement, j'utilise
:set wildmode=full
.Mon workflow est comme ceci:
:cd
dans le répertoire racine de mon projet.D'ouvrir le fichier
foo/bar/baz
:Plus simple scénario: type
:e f<tab>b<tab>b<tab><enter>
.Si il y a plus d'un fichier en commençant par
b
dans un de ces répertoires, vous pourriez avoir à faire un<left>
ou<right>
ou d'une autre<tab>
sur le clavier pour sauter entre eux (ou taper quelques lettres pour lever l'ambiguïté).Pire des cas il y a des fichiers et des répertoires qui partagent un nom et vous avez besoin de faire un trou dans le répertoire. Dans ce cas onglet-compléter le nom du répertoire et tapez
*<tab>
forer vers le bas.:e
un nouveau fichier dans la même fenêtre.:b <tab>
de cycle par le biais de tampons, qui sont déjà ouvertes en arrière-plan. Si vous tapez:b foo<tab>
il correspond seulement contre-ouvrir des fichiers qui correspondent àfoo
.J'utilise aussi ces mappages pour les rendre plus faciles à ouvrir de nouvelles fenêtres et de sauter entre eux parce que c'est quelque chose que je fais si souvent.
Il me faut quelques secondes pour ouvrir Vim, de mettre en place certains windows et ouvrez un peu les fichiers en eux. Personnellement, je n'ai jamais trouvé un de la troisième partie de recherche de fichier des scripts très utiles.
Un moyen facile de parcourir le système de fichiers est d'utiliser la commande
Je ne l'invente pas 🙂
:Vex
si vous voulez partager l'écran verticalement au lieu d'horizontalement:Vex
plus pratique, mais:Sex
viens de faire ma journée.:Se
fonctionne aussi (de même pour leVe, Te
variantes). Pas besoin de faire c'est bizarre 🙂:Sex
,:Vex
,:Tex
et:Ex
sont toutes les commandes utiles pour ex(ploring) les fichiers sur votre système si vous souhaitez utiliser quelque chose de différent de:e
(où
S/V/T
sont court pour Split/Vertical/Onglet)Si vous n'avez pas trouvé, vous voudrez peut-être consulter:
Également de garder à l'esprit que vous pouvez remapper les touches de raccourci dans votre .vimrc pour les rendre moins lourd. Je ne l'utilisation de split windows beaucoup; j'ai trouvé ce qui suit rend beaucoup plus facile:
Je trouve LustyExplorer le meilleur jusqu'à présent.
Vous pouvez ouvrir un fichier en tapant seulement une partie de son nom.
Vous pouvez ouvrir un fichier à partir du répertoire du fichier en cours, ou le courant
pwd
, ou à partir de la mémoire tampon de la liste.Si vous ouvrez un fichier à partir de la mémoire tampon de la liste, vous n'avez pas à naviguer à travers l'arborescence du répertoire, mais malheureusement pour les deux autres modes, vous avez encore de naviguer dans l'arbre. La bonne chose est que vous n'avez pas à démarrer à partir du premier caractère.
Si vous avez:
et vous souhaitez ouvrir
dir_b/file.html
généralement, vous pouvez le trouver en tapantb<Tab>h
Êtes-vous au courant de Vim onglets? Vous ne savez pas si vous faisiez référence à Vim propres onglets, ou de regretter TextMate est. Il est difficile de savoir ce que Vim version que vous utilisez, mais il avait onglets depuis au moins 7.0 (ce qui semble être installés partout où je regarde, ces derniers temps), et ils sont génial.
:tabe
ouvre une nouvelle (courte pour l'onglet "modifier", si par exemple la:tabe
vide ou:tabe path/to/file
pour l'ouverture d'un fichier dans un nouvel onglet,) vous pouvez vous déplacer entre les onglets avecgt
/gT
, et il y a un tas d'autres onglet liés à la valeur liquidative des commandes de trop, que pouvez-vous attendre de Vim (:help tabs
)Mon flux de production pour les grands projets tend à impliquer un tas d'onglets, chacun entre 1 et 3 fenêtres en fonction de ce genre de contexte dont j'ai besoin. Cela fonctionne encore mieux si j'ai un doublewide fenêtre de terminal depuis que je peux découper verticalement avec
:vs
, alors un seul onglet peut facilement me montrer 4 fichiers à la fois avec beaucoup d'espace pour chacun.Dernier conseil: j'utilise parfois le "commutateur de la mémoire tampon de la commande" (
:sb <partial_buf_name>
) qui est un peu sorta-tels que TM est floue trouver, en ce qu'elle fonctionne assez bien, mais seulement pour déjà ouvert tampons. Toujours quand j'ai une douzaine ou plus d'ouvrir des fichiers à la fois. (N. B. j'avais besoin de:set switchbuf=usetab
dans mon vimrc pour que cela fonctionne à travers les onglets, mais une fois que c'est réglé, c'est super.)vim-titlecase
vis avec la gt/gT mappages, mais il y a un travail.Découvrez le plugin ctrlp comme une alternative au plugin Commande-T. C'est mieux que ce qu'il en est un "native" script Vim et n'a pas besoin de Vim pour être compilé avec ruby (ou autre support) alors qu'il fonctionne très rapide et discret.
Si le fichier que vous souhaitez est déjà chargé en mémoire (ce qui est probable si vous êtes en feuilletant entre une poignée de fichiers régulièrement), alors vous pouvez passer rapidement à la mémoire tampon avec les
:b[uffer]
de commande.:b
pouvez soit prendre un numéro de mémoire tampon en tant que paramètre, ou (plus utile) une chaîne de caractères qui correspond partie du chemin/nom de fichier. Si il y a des correspondances multiples, vous pouvez utiliser la tabulation pour passer d'eux.Si vous souhaitez fractionner la fenêtre et ouvrez le tampon dans la nouvelle fenêtre, puis utiliser
:sb name
Si vous souhaitez ouvrir le tampon dans un nouvel onglet puis utilisez
:tab b name
Vous pouvez également utiliser le
:ls
commande pour voir une liste de chargée des tampons.Il est surprenant de voir que
:find
commande n'a pas été mentionné dans les réponses. J'ai l'habitude de travailler avec des rails de projets où j'ai besoin de forer profondément dans la hiérarchie des répertoires. Donc, pour un fichierapplication.css
, situé dansapp/assets/stylesheets/
tout ce que j'ai à taper est:find applica
puis appuyez sur onglet à la saisie semi-automatique et entrer pour l'ouvrir.- Je utiliser cette fonction pour rechercher des fichiers dans des sous-répertoires, je n'ai pas l'écrire bien. C'est à partir de la vim wiki:
Une chose que j'aime, c'est qu'il a un support pour les caractères génériques (*). Il est également bien comporté, pour plusieurs matchs.
En plus de la
wildmenu
réponses, j'utilise BufExplorer plugin, et les mappages suivants pour sauter rapidement les tampons:Ou vous pouvez simplement remplacer le tampon de l'explorateur avec le
:ls
de commande, qui, fondamentalement, d'afficher la même chose.La dernière des cartes de la
Alt-=
pour afficher la mémoire tampon de l'explorateur.Je n'utilise pas Windows que beaucoup, comme j'ai généralement un ou deux windows uniquement.
J'ai aussi modifié le
statusline
d'inclure le numéro de mémoire tampon%2n
, de sorte que la je sais toujours ce qui de la mémoire tampon est en cours de modification. Voir:h statusline
savez-vous MacVim application? C'est VIM poli pour OS X, et l'un de ses fonctionnalité est prise en charge les onglets (CMD+T pour ouvrir un nouvel onglet), il ont tiroir, etc... (à lire: http://zerokspot.com/weblog/2008/08/03/macvim-as-textmate-replacement/)
Essayer!
Ce qui concerne
Michal
NerdTree est le meilleur pour la navigation de fichiers dans vim.
Le lien ci-dessous est une bonne introduction à nerdtree.
http://www.catonmat.net/blog/vim-plugins-nerdtree-vim/
Voici quelque chose d'assez banal que je colle dans mon
.vimrc
. Il va charger un fichier à partir de n'importe quel sous-répertoire.Si je peux juste dire:
:Er Main.java
et il va chercher les sous-répertoires, trouver
Main.java
et le charger. Ce n'est pas bien comporté pour plusieurs fichiers du même nom, mais c'est simple et rapide.L'autre outil que j'utilise est VTreeExplorer, qui fournit une arborescence de la fenêtre de fichiers/répertoires, et ne nécessite pas de compilation spéciale des options de VIM (c'est à dire qu'il est à la vanille, plugin).
models.py
,views.py
, etc.Mon flux de travail pour la recherche des fichiers est la wildmenu, autocwd et
:e
.Parties pertinentes dans le
.vimrc
:Et comment l'utiliser:
Qui donne tous les fichiers dans le répertoire courant qui commencent par myf. Vous pouvez également
<Tab>
à travers eux. Utilisez la touche retour pour l'ouvrir 🙂^D
toujours de vous donner tous les matchs. Parce que autocmd va toujours dans le dossier du fichier en cours, il est facile de travailler avec. Si vous êtes dansfoo/bar.py
et que vous voulez aller àfoo/baz.py
vous ne faites:e baz.py
et vous y êtes. Qui fonctionne également avec les tampons (:b foo^D
les listes de tous les tampons de départ avec foo)