Comment créer un fichier avec le nom file2.ext si mon curseur se trouve dans file2.ext. Un peu comme gfpour la création de nouveaux fichiers (c'est une situation hypothétique, il pourrait être utile de penser un jour).
Mais il existe une pure solution Vim portable sur toutes les plateformes. La fonction intégrée writefileécrit une liste dans un fichier, ligne par ligne. Naturellement, lorsque la liste d'entrée est vide, elle crée un fichier vide. (Voir :help writefilepour plus de détails.) Nous pouvons profiter de cet effet secondaire:
+1 pour l' enseignement au <cfile>lieu de<C-r><C-f>
sehe
2
J'ai pris l'excellente réponse de ib ci-dessus et je l'ai développée comme suit. Mon objectif était d'utiliser vim pour créer de nouveaux fichiers de démarque au besoin pour un wiki (dans ce cas, un wiki Gollum)
ce qui précède fonctionne comme indiqué dans la réponse. Cependant, au début, je pensais que cela ne fonctionnait pas car je n'avais pas réellement vu l'ouverture du fichier dans vim. L'utilisation du deuxième bit de code ci-dessous ouvrira un nouveau fichier - c'est plus ce que je cherchais. Je les ai donc combinés et j'ai essayé:
map <leader>cf :e <cfile><cr>
mais cela ne fonctionne pas pour un wiki car lorsque vous essayez de créer un nouveau fichier dans le wiki en utilisant une syntaxe comme [[the-new-file]]la syntaxe wiki ne permet pas l'extension du fichier entre crochets. Cependant, Vim doit connaître l'extension lors de la création d'un nouveau fichier pour que cela fonctionne. Dans ce cas, j'ai utilisé:
map <leader>cf :e <cfile>.md<cr>
afin que je puisse créer de nouveaux fichiers de démarque. Il existe des moyens de personnaliser davantage cela (par exemple en ne codant pas en dur l'extension), mais ce qui précède fonctionne bien pour mes besoins. Si jamais j'ai besoin d'une autre extension (par exemple pour enregistrer un fichier .wiki), je vais probablement prendre le chemin simple et créer une autre carte comme:
map <leader>cwf :e <cfile>.wiki<cr>
Comme avantage secondaire, vous pouvez utiliser la même commande pour ouvrir le fichier de démarque déjà existant (la gfcommande standard ne fonctionnera pas ici car l'extension de fichier est manquante).
gffonctionne si set suffixesadd=.wiki. Une version améliorée de votre cfserait celle qui respecte suffixesadd, au moins dans le cas où elle ne contient qu'un seul élément.
<cfile>
lieu de<C-r><C-f>
J'ai pris l'excellente réponse de ib ci-dessus et je l'ai développée comme suit. Mon objectif était d'utiliser vim pour créer de nouveaux fichiers de démarque au besoin pour un wiki (dans ce cas, un wiki Gollum)
J'ai d'abord essayé:
ce qui précède fonctionne comme indiqué dans la réponse. Cependant, au début, je pensais que cela ne fonctionnait pas car je n'avais pas réellement vu l'ouverture du fichier dans vim. L'utilisation du deuxième bit de code ci-dessous ouvrira un nouveau fichier - c'est plus ce que je cherchais. Je les ai donc combinés et j'ai essayé:
mais cela ne fonctionne pas pour un wiki car lorsque vous essayez de créer un nouveau fichier dans le wiki en utilisant une syntaxe comme
[[the-new-file]]
la syntaxe wiki ne permet pas l'extension du fichier entre crochets. Cependant, Vim doit connaître l'extension lors de la création d'un nouveau fichier pour que cela fonctionne. Dans ce cas, j'ai utilisé:afin que je puisse créer de nouveaux fichiers de démarque. Il existe des moyens de personnaliser davantage cela (par exemple en ne codant pas en dur l'extension), mais ce qui précède fonctionne bien pour mes besoins. Si jamais j'ai besoin d'une autre extension (par exemple pour enregistrer un fichier .wiki), je vais probablement prendre le chemin simple et créer une autre carte comme:
Comme avantage secondaire, vous pouvez utiliser la même commande pour ouvrir le fichier de démarque déjà existant (la
gf
commande standard ne fonctionnera pas ici car l'extension de fichier est manquante).la source
gf
fonctionne siset suffixesadd=.wiki
. Une version améliorée de votrecf
serait celle qui respectesuffixesadd
, au moins dans le cas où elle ne contient qu'un seul élément.