Après quelques recherches, j'ai appris à connaître :echo @%
le nom du fichier actuel dans la dernière ligne de vim-screen.
Je voudrais vider le nom de fichier (avec et sans chemin complet) dans le contenu du fichier sans quitter vim
.
Est-ce qu'il y a un moyen de faire ça?
<c-r>
la commande redo n'est-elle pas mappée?<c-r>
spécifie que le caractère suivant est un registre."%p
en mode normal ou visuel.Comme on peut le voir
:h registers
, le"%
registre contient le nom du fichier actuel. La:pu[t]
commande insère le contenu d'un registre dans le texte.Donc, pour insérer le nom de fichier actuel, vous pouvez taper l'un de ces éléments en mode commande:
ou
Pour insérer le nom de fichier avec le chemin complet, tapez
en mode commande.
Plus d'informations:
En tapant,
"rp
vous pouvez coller le contenu du registre"r
.la source
:put "%:p"
ne semble pas fonctionner pour moi. Cela semble fonctionner uniquement avec expand () , comme dans:::put =expand('%:p')
, ce qui ne le rend pas moins encombrant que<c-r>=expand('%:p')
malheureusement.Un moyen simple consiste à exécuter:
!!
remplace la ligne en cours par le résultat de la commande qui la suit.%
est remplacé par le nom du fichier modifié dans la commande, de sorte que ce nom sera effectivement inséré dans le fichier modifié.Le nom de fichier est celui que vous avez transmis à la commande vi (m) et peut contenir un chemin relatif ou absolu. Si vous souhaitez le supprimer et ne conserver que le nom du fichier, exécutez
la source
Si vous devez le faire fréquemment, il peut être utile de lier une séquence de clés à votre choix, comme indiqué à l' adresse http://vim.wikia.com/wiki/Insert_current_filename.
Les précédents fonctionnent tous directement
vim
pour la session, ou vous pouvez les mettre dans le.vimrc
(où le signe deux-points sur la ligne est facultatif).la source
Je cherchais dans Google un moyen simple d'insérer le nom du fichier actuel (sans chemin ni extension) dans la position actuelle (pas de nouvelle ligne, pas de remplacement de la ligne actuelle). Donc, en combinant les réponses précédentes et ce lien , voici ce que je cherchais.
En mode insertion :
Puis la prochaine fois (avec la commande déjà dans l'historique):
la source