EDIT: Suggérez des mappages bien symétriques pour le cas fractionné verticalement, car Vim dispose par défaut de deux mappages pour le cas fractionné horizontal.
Il y a plusieurs façons de modifier le "fichier sous le curseur", et bien que vous puissiez certainement reconfigurer gfpour modifier une nouvelle page à onglet en tant que @ alexander-myshov mentionne, cela signifie que vous avez deux façons de le modifier dans une nouvelle page à onglet, mais aucun moyen de éditez-le dans la fenêtre courante, ce que vous pouvez aussi parfois vouloir faire. Il n’est pas difficile d’utiliser les mappages standard, mais si vous souhaitez en modifier l’un gf, je vous suggère de changer de mappage afin de ne pas en perdre un.
Certaines des manières de modifier un nom de fichier sous le curseur sont:
- gf - Modifier le fichier existant sous le curseur dans la même fenêtre
- C-Wf - Éditer un fichier existant sous le curseur dans une fenêtre scindée
- C-WC-F - Éditer un fichier existant sous le curseur dans une fenêtre scindée
- C-Wgf - Modifier le fichier existant sous le curseur dans une nouvelle page
Il n’existe pas de mappage standard permettant d’éditer le fichier existant sous le curseur dans une division verticale, mais vous pouvez y parvenir en scindant d’abord la fenêtre verticalement, puis en modifiant le fichier sous le curseur dans la fenêtre active.
- C-Wv+ gf- Modifier le fichier existant sous le curseur dans une fenêtre fractionnée verticalement
Comme vous pouvez le voir ci-dessus, il existe deux correspondances par défaut pour l'édition de fichier sous le curseur dans une division horizontale. Vous pouvez donc remapper l'une d'elles sur la chaîne de clés ci-dessus, en élargissant le groupe de cartes pour couvrir également le cas de division verticale. Vous pouvez lier quoi que ce soit, bien sûr, mais cela semble compléter la symétrie bien: nnoremap <C-W><C-F> <C-W>vgf
. Maintenant vous avez
- gf - Modifier le fichier existant sous le curseur dans la même fenêtre
- C-Wf - Éditer un fichier existant sous le curseur dans une fenêtre scindée
- C-WC-F - Éditer un fichier existant sous le curseur dans une fenêtre fractionnée verticalement
- C-Wgf - Modifier le fichier existant sous le curseur dans une nouvelle page
Vous pouvez également accéder à une ligne particulière du fichier si le nom du fichier sous le curseur est suivi d'un numéro de ligne. Si tu as
filename:10
vous pouvez éditer le fichier et déplacer le curseur à la ligne 10 avec gF. L'équivalent est vrai pour C-WFune scission et C-WgFune page à onglet. Compléter la symétrie pour une scission verticale n’est pas aussi simple ici, mais je suggérerais que la C-WC-S-Fcarte obtenue avec nnoremap <C-W><C-S-F> <C-W>vgF
, imitant le Fou Shift+ fdes cartes par défaut en tant que candidat.
Ceci :
est un exemple, vous pouvez utiliser n'importe quel caractère qui n'est pas un caractère de nom de fichier (voir :h 'isfname'
).
Toutes ces commandes sont livrées avec de la sauce aux pommes, comme
- élargir les wildchars
- chercher dans plus d'endroits que le répertoire courant, selon votre
'path'
choix
- ajout d'une extension de fichier au nom du fichier, selon votre
'suffixesadd'
choix
- sinon modifiez le nom de fichier donné pour trouver une correspondance, selon votre
'includeexpr'
choix
Pour plus d'informations :help gf
, consultez les rubriques d'aide relatives à ces différentes options.
Si le nom de fichier sous le curseur nomme un fichier qui n'existe pas, vous feriez mieux d'utiliser les commandes d'édition standard avec <cfile>
, comme
:edit <cfile> // edit non-existent file under cursor in current window
:split <cfile> // edit non-existent file under cursor in split window
:vsplit <cfile> // edit non-existent file under cursor in vertical split window
:tabe <cfile> // edit non-existent file under cursor in new tabpage
et avec ceux-ci bien sûr, vous pouvez utiliser des choses comme :spl+10 filename
déplacer le curseur sur une ligne particulière ou :tabe+/cologne filename
pour déplacer le curseur jusqu'à la première occurrence d'un motif.
'hidden'
option (set hidden
) vous permet de vous écarter des mémoires tampons non enregistrées. Pour moi, il s'agissait d'un énorme gain de productivité et il était essentiel de ne plus compter uniquement sur les scissions et les séparations.