2010-06-07 7 views
0

Je rencontre un problème lorsque j'essaie de faire en sorte que vim développe le nom du fichier sous le curseur. Par exemple:Vim ne se développe pas <cfile>

include("../path/file.php"); 

Lorsque le curseur est sur le nom du fichier et type I gf le file.php est ouvert très bien. Cependant, quand je remappe la commande gf dans vimrc de cette façon: map gf :tabnew <cfile><CR>, alors au lieu d'ouvrir le fichier dans un nouvel onglet gf ouvre juste un fichier vide.

Une idée de ce que je fais mal?

+0

Changez vos «marques» et le formatage sera corrigé. –

+1

J'ai pris la liberté de fixer le formatage pour vous. –

+0

Merci, Nathan! – Amati

Répondre

5

Il devrait être.

:nnoremap gf :exe 'tabnew '.expand('<cfile>')<cr> 
+0

Merci, Luc, mais le résultat est le même - fichier vide. – Amati

+0

Ensuite, le chemin & current n'est probablement pas "compatible" avec le nom du fichier sous le curseur. –

+0

Oui, c'est ce que j'ai finalement compris. J'ai supposé que lorsque vous modifiez un fichier, le chemin actuel est automatiquement défini sur le chemin du fichier, mais ce n'est évidemment pas le cas. Ce n'est qu'après avoir fait ': cd/correct_path' manuellement que' gf' a commencé à travailler. – Amati

1

Si j'ai la structure de répertoire suivant:

~ 
|- ./foo/ 
|  `-- bar.php 
`- ./baz/ 
     `-- bang.php 

..et à bang.php: <?php include('../foo/bar.php'); ?>

Cette cartographie fonctionne bien pour moi: :nnoremap gf :tabe <cfile><cr>. Le fichier ~/foo/bar.php est ouvert dans un onglet séparé.

Questions connexes