J'essaie vraiment d'apprendre le vim après avoir utilisé TextMate ces dernières années.
J'ai commencé à valider une partie de la navigation dans le fichier dans la mémoire, mais j'ai du mal à naviguer entre plusieurs fichiers.
Dans mon flux de travail, il est assez courant que je passe assez régulièrement entre une poignée de fichiers (suffisamment de fichiers pour que les fenêtres à volet divisé deviennent trop petites).
J'utilise actuellement NERDTree, mais je trouve que l'exploration des répertoires est fastidieuse et j'utilise constamment CTRL+ W h/ CTRL+ W lpour aller et venir.
Je pense que je ferais mieux avec les onglets que je peux facilement basculer entre eux, mais peut-être que j'ai besoin d'utiliser un flux de travail différent.
J'aimerais aussi un raccourci "Aller au fichier ..." comme CMD+ Tdans TextMate. J'ai trouvé fuzzy_file_finder
mais cela nécessite que vim soit construit avec des liaisons Ruby, ce qui n'est pas le cas des installations natives sur lesquelles j'ai travaillé.
Bien que je puisse reconstruire, la principale raison pour laquelle je veux passer à vim est que je puisse avoir un environnement d'édition qui, je le sais, fonctionnera facilement sur n'importe quelle plate-forme.
Les options disponibles sont écrasantes, toutes les idées sont très appréciées!
la source
Réponses:
Je ne trouve pas que l'exploration des sous-répertoires via plain old
:e
soit aussi fastidieuse étant donné une configuration décente pour l'achèvement des onglets.Regardez dans l'
'wildmenu'
option pour que Vim affiche une liste de complétions (noms de fichiers) dans la modeline au-dessus de la ligne de commande. Vous pouvez modifier l''wildmode'
option pour configurer davantage le type de complétion d'onglet que Vim fera.Personnellement je l'utilise
:set wildmode=full
.Mon flux de travail est comme ceci:
:cd
dans le répertoire de premier niveau de mon projet.Pour ouvrir le fichier
foo/bar/baz
:Scénario le plus simple: tapez
:e f<tab>b<tab>b<tab><enter>
.S'il y a plus d'un fichier commençant par
b
dans l'un de ces répertoires, vous devrez peut-être faire un<left>
ou un<right>
autre<tab>
sur le clavier pour sauter entre eux (ou taper quelques lettres de plus pour lever l'ambiguïté).Dans le pire des cas, il existe des fichiers et des répertoires qui partagent un nom et vous devez explorer le répertoire. Dans ce cas, complétez le nom du répertoire par tabulation, puis tapez
*<tab>
pour explorer en avant.:e
un nouveau fichier dans la même fenêtre.:b <tab>
pour parcourir les tampons déjà ouverts en arrière-plan. Si vous tapez,:b foo<tab>
il ne correspondra qu'aux fichiers actuellement ouverts qui correspondentfoo
.J'utilise également ces mappages pour faciliter l'ouverture de nouvelles fenêtres et passer de l'une à l'autre car c'est quelque chose que je fais si souvent.
Cela me prend quelques secondes pour ouvrir Vim, configurer certaines fenêtres et y ouvrir quelques fichiers. Personnellement, je n'ai jamais trouvé aucun des scripts de navigation de fichiers tiers très utile.
la source
Un moyen simple de parcourir le système de fichiers est la commande:
Je n'invente pas ça :)
la source
:Vex
si vous voulez diviser l'écran verticalement plutôt qu'horizontalement:Vex
plus pratique, mais:Sex
je viens de rendre ma journée.:Se
ça marche aussi (idem pour lesVe, Te
variantes). Pas besoin de faire bizarre :):Sex
,:Vex
,:Tex
Et:Ex
sont toutes les commandes utiles pour ex (ploring) les fichiers sur votre système si vous voulez utiliser quelque chose de différent:e
(où
S/V/T
sont les abréviations de Split / Vertical / Tab)la source
Si vous ne les avez pas déjà trouvés, vous voudrez peut-être vérifier:
Gardez également à l'esprit que vous pouvez remapper les raccourcis clavier dans votre .vimrc pour les rendre moins encombrants. J'utilise beaucoup les fenêtres séparées; J'ai trouvé que les éléments suivants facilitent grandement leur gestion:
la source
Connaissez-vous les onglets de Vim? Je ne sais pas si vous faites référence aux propres onglets de Vim là-bas, ou si vous êtes en manque de TextMate. On ne sait pas quelle version de Vim vous utilisez, mais il y a des onglets depuis au moins 7.0 (qui semble être installé partout où je regarde ces derniers temps), et ils sont géniaux.
:tabe
ouvre un nouveau (abréviation de "tab edit", donc par exemple:tabe
pour vide ou:tabe path/to/file
pour ouvrir un fichier dans un nouvel onglet,) vous pouvez vous déplacer entre les onglets adjacents avecgt
/gT
, et il y a aussi un tas d'autres commandes de navigation liées aux onglets, comme vous pourriez vous attendre de Vim (:help tabs
)Mon flux de travail pour les grands projets a tendance à impliquer un tas d'onglets, chacun avec entre 1 et 3 fenêtres en fonction du type de contexte dont j'ai besoin. Cela fonctionne encore mieux si j'ai une fenêtre de terminal double largeur car je peux diviser verticalement avec
:vs
, donc un seul onglet peut facilement me montrer 4 fichiers à la fois avec beaucoup de place pour chacun.Astuce finale: j'utilise parfois la commande "switch buffer" (
:sb <partial_buf_name>
) qui ressemble un peu à la recherche floue de TM, en ce sens qu'elle fonctionne plutôt bien mais uniquement pour les tampons déjà ouverts. Toujours génial lorsque j'ai une douzaine de fichiers ou plus ouverts à la fois. (NB J'avais besoin:set switchbuf=usetab
dans mon vimrc pour que cela fonctionne sur plusieurs onglets, mais une fois que c'est défini, c'est génial.)la source
vim-titlecase
vis avec les mappages gt / gT, mais il existe une solution de contournement .Je trouve LustyExplorer le meilleur à ce jour.
Vous pouvez ouvrir un fichier en ne tapant qu'une partie de son nom.
Vous pouvez ouvrir un fichier à partir du répertoire du fichier actuel, ou de l'actuel
pwd
, ou de la liste des tampons.Si vous ouvrez un fichier à partir de la liste des tampons, vous n'avez pas à naviguer dans l'arborescence des répertoires, bien que malheureusement pour les deux autres modes, vous devez toujours naviguer dans l'arborescence. La bonne chose est que vous n'avez pas à commencer par le premier personnage.
Si tu as:
et que vous souhaitez ouvrir,
dir_b/file.html
vous pouvez généralement le trouver en tapantb<Tab>h
la source
Il est surprenant de voir que la
:find
commande n'a été mentionnée dans aucune des réponses. Je travaille généralement avec des projets de rails où je dois approfondir 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 tab pour la saisie semi-automatique et entrez pour ouvrir.la source
Découvrez le plugin ctrlp comme alternative au plugin Command-T . C'est mieux que cela en ce sens qu'il s'agit d'un script Vim «natif» et qu'il n'a pas besoin que Vim soit compilé avec ruby (ou autre support) alors qu'il s'exécute très rapidement et discrètement.
la source
Si le fichier que vous souhaitez est déjà chargé dans un tampon (ce qui est probable si vous passez régulièrement d'un fichier à l'autre), vous pouvez rapidement basculer vers le tampon avec la
:b[uffer]
commande.:b
peut soit prendre un numéro de tampon comme paramètre, soit (plus utilement) une chaîne qui correspond à une partie du chemin / nom de fichier. S'il y a plusieurs correspondances, vous pouvez utiliser tab pour les parcourir.Si vous souhaitez diviser la fenêtre et ouvrir le tampon dans la nouvelle fenêtre, utilisez
:sb name
Si vous souhaitez ouvrir le tampon dans un nouvel onglet, utilisez
:tab b name
Vous pouvez également utiliser la
:ls
commande pour afficher une liste des tampons actuellement chargés.la source
J'utilise cette fonction pour rechercher des fichiers dans des sous-répertoires, mais je ne l'ai pas écrite. C'est du wiki vim :
Une chose que j'aime, c'est qu'il prend en charge les caractères génériques (*). Il se comporte également bien pour plusieurs matchs.
la source
En plus des
wildmenu
réponses, j'utilise le plugin BufExplorer et les mappages suivants pour sauter rapidement les tampons:Ou vous pouvez simplement remplacer l'explorateur de tampons par la
:ls
commande, qui affiche essentiellement la même chose.Le dernier mappe le
Alt-=
pour montrer l'explorateur de tampons.Je n'utilise pas beaucoup Windows, car je n'ai généralement qu'une ou deux fenêtres.
J'ai également modifié le
statusline
pour inclure le numéro du tampon%2n
, afin que je sache toujours quel tampon est en cours d'édition. Voir:h statusline
la source
connaissez-vous l'application MacVim? Il est VIM poli pour OS X, et l'une de ses fonctionnalités est le support des onglets (CMD + T pour ouvrir un nouvel onglet), il a un tiroir, etc ... (lire ceci: http://zerokspot.com/weblog/2008 / 08/03 / macvim-as-textmate-replacement / )
Essayez-le!
Cordialement Michal
la source
NerdTree est le meilleur pour la navigation dans les fichiers dans vim.
Le lien ci-dessous est une bonne introduction à nerdtree.
http://www.catonmat.net/blog/vim-plugins-nerdtree-vim/
la source
Voici quelque chose d'assez trivial que je colle dans mon
.vimrc
. Il chargera un fichier à partir de n'importe quel sous-répertoire.Donc je peux juste dire:
: Er Main.java
et il recherchera les sous-répertoires, le trouvera
Main.java
et le chargera. Ce n'est pas bien fait pour plusieurs fichiers du même nom, mais c'est simple et rapide.L'autre outil que j'utilise est VTreeExplorer , qui fournit une fenêtre arborescente de fichiers / répertoires, et ne nécessite aucune option de construction spéciale de VIM (c'est-à-dire qu'il s'agit d'un plugin vanilla).
la source
models.py
,views.py
etc.Mon flux de travail pour trouver des fichiers est le wildmenu, autocwd et
:e
.Parties pertinentes dans
.vimrc
:Et comment l'utiliser:
Cela donne tous les fichiers du répertoire courant commençant par myf. Vous pouvez également à
<Tab>
travers eux. Utilisez retour pour ouvrir :)^D
vous donnera toujours tous les matchs. Parce qu'autocmd va toujours dans le dossier du fichier actuel, il est facile de travailler avec. Si vous êtesfoo/bar.py
et que vous voulez aller chezfoo/baz.py
vous, faites-le:e baz.py
et vous y êtes. Cela fonctionne également avec les tampons (:b foo^D
répertorie tous les tampons commençant par foo)la source