Navigation dans plusieurs fichiers


11

Si je vim ouvert avec plusieurs fichiers sur la ligne de commande, par exemple vim debug.log*qui charge debug.log, debug.log.1et debug.log.2, puis - je naviguer entre eux, de les affecter à plusieurs fenêtres ( :split/ :vsplit) ou tel?

Le seul raccourci que je connaisse pour ce mode de fonctionnement est celui :nqui charge le fichier suivant de la liste. Que puis-je faire de plus dans ce mode de fonctionnement multi-fichiers? (ou quel sujet d'aide couvre cela?)


3
:previous(ou :prev) est l'inverse de :n, et remonte un fichier.
Rich

Réponses:


13

La rubrique d'aide la plus pertinente est :ls, également appelée :filesou :buffers.

Dans votre vim debug.log*exemple, si vous donniez la :lscommande, vous verriez:

:ls
  1 %a   "debug.log"                    line 1
  2      "debug.log.1"                  line 0
  3      "debug.log.2"                  line 0
Press ENTER or type command to continue

… Indiquant que le premier est le tampon actif.

Pour ouvrir debug.log.2dans la fenêtre actuelle, donnez la commande :b 3ou :b debug.log.2pour afficher le tampon 3.

Pour diviser la fenêtre et y ouvrir le tampon 2, donnez la :sb 2commande. La version à division verticale de cela est :vert sb 2.

Il existe de nombreuses variantes de la :bcommande; parcourez les rubriques d'aide citées ici pour vous faire une idée.


De plus, vous pouvez invoquer vim -o debug.log*pour ouvrir tous les fichiers, chacun dans sa propre division, ou vim -O debug.log*pour les ouvrir chacun dans une division verticale.


6

En plus de la fonctionnalité brute de vim mentionnée par 200_success, l'écosystème de Vim est plein de plugins pour fournir des fonctionnalités supplémentaires, telles que:

Cependant, avant de commencer à utiliser des plugins, il est préférable de bien comprendre les tampons et les fenêtres dans vim.


1
Veuillez lire notre politique sur les réponses aux recommandations de plugins et ajouter des détails sur la façon dont ces plugins peuvent bénéficier à l'utilisateur.
200_success

5

Vous pouvez également ouvrir vim avec différents paramètres.

Ouvre les fichiers dans des onglets:

vim -p debug.log*

Ouvre les fichiers en divisions verticales:

vim -o debug.log*

Il y a un plugin cool et assez puissant appelé CtrlSpace:

https://github.com/szw/vim-ctrlspace

C'est très pratique si vous devez travailler avec de nombreux fichiers. Vous pouvez simplement imaginer ctrl-espace comme une propre liste de tampons pour chaque onglet. Il fournit un moyen très simple de naviguer entre les fichiers, comme le dit l'auteur:

Vim-CtrlSpace est un plugin Vim pour contrôler et organiser votre espace de travail dans Vim. Y compris la gestion des tampons, des fichiers, des onglets, des sessions et enfin des projets. Son approche est quelque peu unique, mais vous vous sentirez certainement chez vous, surtout si vous utilisez des fenêtres, des onglets, des tampons, etc. déjà divisés.


Bienvenue à Vi / Vim! Veuillez lire notre politique sur les réponses aux recommandations de plug-ins et ajouter des détails sur la façon dont le plug-in répond exactement à la question.
200_success


4

Si vous souhaitez ouvrir un fichier particulier sans avoir à passer par :ls, vous pouvez utiliser l'une des options suivantes:

  • :vs filename ouvre le fichier dans une division verticale
  • :sp filename fait de même, mais dans une division horizontale
  • :tabe filename s'ouvre dans un nouvel onglet

Il convient également de savoir que si vous ne spécifiez pas de nom de fichier, vous ouvrirez un nouveau fractionnement / onglet du fichier actuel, ce qui peut être pratique pour les fichiers longs.


2
:test la commande de copie. Car :tabeditvous en avez besoin au moins :tabe.
tommcdo

Oh dang, tu as tout à fait raison. Merci, je vais éditer!
Tom

0

Il existe quelques raccourcis utiles pour parcourir plusieurs fichiers:

  • CTRL-^(où Nest le numéro de tampon) pour accéder au fichier précédemment modifié.
  • N CTRL-^(où Nest le numéro de tampon) pour passer à un tampon spécifique.

    Par exemple:

    • 1Control+^ - aller au 1er tampon
    • 2Control+^ - aller au 2ème tampon
    • etc.

    C'est équivalent à :buffer N.

  • Utilisez :Ex/ :Sex/ :Vexpour naviguer dans le répertoire courant.

  • Utilisez :tabsplutôt ( vim -p) avec certains raccourcis personnalisés dans votre, .vimrctels que:

    " TABS
    " To create a new tab (Control-T)
    nnoremap <C-t> :tabnew<CR>
    inoremap <C-t> <Esc>:tabnew<CR>
    " Tab Navigation (Control+Left <-> Control-Right, Shift+H <-> Shift+L).
    nnoremap <S-h> gT
    nnoremap <S-l> gt
    nnoremap <A-Left> gT
    nnoremap <A-Right> gt
    nnoremap <C-S-Tab> gT
    nnoremap <C-Tab> gt
    " Tab Close (Control-W)
    nnoremap <C-BS> :tabclose<CR>
    inoremap <C-BS> <Esc>:tabclose<CR>
    " Close All (Control-Q)
    nnoremap <C-q> :qa<CR>
    inoremap <C-q> <Esc>:qa<CR>
    
  • Utilisez :ba/ :vert bapour diviser, sautez dans le tampon sélectionné via Control+w, w/ W, puis faites-en la fenêtre actuelle ( :on).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.