Je suis venu ici pour chercher une réponse à une question similaire. Je voulais être capable d'extraire le nom de la classe actuelle du fichier java en cours d'édition. J'ai trouvé un moyen très astucieux de le faire dans vim avec une abréviation :
ab xclass <C-R>=expand('%:t:r')<CR>
Placez cette ligne dans votre .vimrc (ou similaire) pour que cela fonctionne. Une abréviation se déclenchera automatiquement dès que vous appuierez sur la touche espace, et c'est pourquoi je les préfixe habituellement avec 'x' pour éviter leur expansion accidentelle.
L'astuce ici est la combinaison de :t
y :r
dans l'argument de expand()
. %
est le "nom du fichier actuel", :t
sélectionne uniquement le t tout le chemin ("dernier composant du chemin seulement") et :r
sélectionne uniquement le r oot ("one extension removed"). (les parties citées sont tirées du document officiel expand() documentation.)
Ainsi, lorsque vous créez une nouvelle classe dans le fichier /a/b/ClassIAmAboutToCreate.java
que vous taperez :
public class xclass {
au moment où vous appuyez sur l'espace après "xclass", l'abréviation sera étendue à public class ClassIAmAboutToCreate
ce qui est exactement ce dont vous avez besoin.
Notez également qu'une abréviation peut être déclenchée en appuyant sur Ctrl + ] ce qui évite d'insérer un espace après le nom de la classe.
1 votes
Vous n'avez pas besoin de créer une fonction pour faire cela.
(map <F#> :!java %:r <Enter>)