103 votes

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 commun 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 de faire un saut en arrière et en avant. Je pense que je ferais mieux avec des onglets, je peux facilement basculer entre les deux, 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 pourrais 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 écrasants, tout sur ce qui fonctionne pour vous sont très appréciés!

101voto

Brian Carper Points 40078

Je ne trouve pas de forage vers le bas dans les sous-répertoires via la plaine de vieux - :e être que lourd, étant donné un décent de configuration de l'onglet de l'achèvement.

Regarder dans l' 'wildmenu' possibilité d'avoir des Vim afficher une liste de compléments (les noms de fichiers) dans le modeline au-dessus de la ligne de commande. Vous pouvez modifier l' 'wildmode' option pour configurer le type de l'onglet de l'achèvement de Vim va faire. Personnellement, j'utilise :set wildmode=full.

Mon travail est comme ceci:

  1. :cd dans le répertoire racine de mon projet.
  2. D'ouvrir le fichier foo/bar/baz:

    • La plus simple scénario, tapez :e f<tab>b<tab>b<tab><enter>.

    • Si il y a plus d'un fichier en commençant par b dans l'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é.

    • Le scénario du pire, 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, l'onglet compléter le nom du répertoire et tapez *<tab> forer vers le bas.

  3. Ouvrir 2 ou 3 de windows et les fichiers ouverts dans tous, en tant que de besoin.
  4. Une fois qu'un fichier est ouvert dans une mémoire tampon, ne tuent pas la mémoire tampon. La laisser ouverte en arrière-plan lorsque vous ouvrez de nouveaux fichiers. Juste :e un nouveau fichier dans la même fenêtre.
  5. Ensuite, utilisez :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.

" Window movements; I do this often enough to warrant using up M-arrows on this"
nnoremap <M-Right> <C-W><Right>
nnoremap <M-Left> <C-W><Left>
nnoremap <M-Up> <C-W><Up>
nnoremap <M-Down> <C-W><Down>

" Open window below instead of above"
nnoremap <C-W>N :let sb=&sb<BAR>set sb<BAR>new<BAR>let &sb=sb<CR>

" Vertical equivalent of C-w-n and C-w-N"
nnoremap <C-w>v :vnew<CR>
nnoremap <C-w>V :let spr=&spr<BAR>set nospr<BAR>vnew<BAR>let &spr=spr<CR>

" I open new windows to warrant using up C-M-arrows on this"
nmap <C-M-Up> <C-w>n
nmap <C-M-Down> <C-w>N
nmap <C-M-Right> <C-w>v
nmap <C-M-Left> <C-w>V

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.

7voto

dlimeb Points 61

Si vous n'avez pas trouvé, vous pourriez vouloir vérifier:

  • l'origine floue finder plugin -- qui IIRC n'a pas le Ruby problèmes de liaison
  • le Projet de plugin -- semblable à NERDTree
  • le tampon explorer plugin -- affiche une liste des tampons

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

" set your own personal modifier key to something handy
let mapleader = "," 

" use ,v to make a new vertical split, ,s for horiz, ,x to close a split
noremap <leader>v <c-w>v<c-w>l
noremap <leader>s <c-w>s<c-w>j
noremap <leader>x <c-w>c

" use ctrl-h/j/k/l to switch between splits
map <c-j> <c-w>j
map <c-k> <c-w>k
map <c-l> <c-w>l
map <c-h> <c-w>h

5voto

bitprophet Points 1037

Je pense que je ferais mieux avec des onglets j' pouvez facilement basculer entre les deux, mais peut-être que je besoin d'utiliser un autre flux de travail.

Ê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 impressionnants.

:tabe ouvre une nouvelle (courte pour l'onglet "modifier", donc, par exemple, :tabe de vide ou de l' :tabe path/to/file pour l'ouverture d'un fichier dans un nouvel onglet,) vous pouvez vous déplacer entre les onglets avec gt/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'ai besoin d' :set switchbuf=usetab dans mon vimrc pour que cela fonctionne à travers les onglets, mais une fois que c'est ensemble c'est génial.)

5voto

hasenj Points 36139

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:

dir_a/
    ...
dir_b/
    file.js
    file.html

et vous voulez ouvrir dir_b/file.html vous pouvez généralement trouver en tapant b<Tab>h

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X