2010-11-24 14 views
5

J'utilise viemu dans VS 2010. Y at-il une commande fiable pour supprimer une méthode entière dans le code source C#?Commande pour supprimer une méthode entière?

Voici ce que j'ai essayé:

  • Le mouvement des commandes } et ]] ne sont pas assez intelligents pour choisir une méthode. Bien qu'ils arrivent parfois à saisir la bonne quantité de texte. De juste au sein de la méthode je peux faire diB qui va supprimer le corps entier de la méthode. Ce n'est pas trop mal, mais il me reste à supprimer la signature et les crochets extérieurs.

  • Si je déplace le curseur sur le modificateur de visibilité (c.-à-public, private, etc.), puis faire d*, il va tuer toute méthode si la méthode suivante a la même visibilité.

Tous les experts vi/viemu ont un moyen de le faire?

+3

Cliquez sur le signe moins situé à gauche de la méthode pour réduire la méthode, mettre en surbrillance l'intégralité de la ligne de méthode réduite et appuyer sur la touche Suppr. –

+0

Ce n'est pas mauvais, vous devriez en faire une réponse.Vous pouvez également réduire la méthode avec 'CTRL + M, M', puis juste' dd' à partir de là. –

Répondre

2

Dans Vim, voici comment je le fais. Je ne suis pas sûr si viemu est assez compatible, mais:

  1. Déplacez au début de la déclaration de méthode (le modificateur d'accessibilité, etc.).
  2. Appuyez sur v pour entrer en mode visuel.
  3. Positionnez le curseur sur l'accolade qui démarre le corps de la méthode.
  4. Appuyez sur % pour déplacer le curseur sur l'accolade correspondante.
  5. Appuyez sur d pour supprimer tout ce qui est sélectionné.

Ce n'est pas super-duper automatique ou quoi que ce soit, mais il fonctionne et est relativement facile à faire une fois que des coups de pied de la mémoire musculaire.

+0

déplacer sur la première ligne de la méthode puis '^ vf {% d' – shellholic

+0

Nice, c'est beaucoup plus compact et répétable. On pourrait écrire une commande personnalisée pour le faire. – cdhowie

+0

Votre réponse fonctionne bien à viemu, elle ne ressemble pas à celle de shellholic. J'aime CTRL + M, M puis dd, mais c'est spécifique à Visual Studio et une raison pour utiliser viemu est de m'aider à m'éloigner de VS. –

1

dap (supprimer un paragraphe) fonctionnera pour des méthodes simples qui ne contiennent pas vide lignes. Pour les méthodes qui contiennent des lignes vides, vous devrez utiliser diBdap (supprimer le bloc interne suivi de la suppression d'un paragraphe). Pour une utilisation plus facile, vous pouvez créer un mappage dans votre fichier rc. ex: :nmap <C-d> diBdap

+0

Vous pourriez vouloir clarifier ce qu'est das, sinon ce n'est pas utile. –

+0

Pouvez-vous élaborer sur das? Je sais que 'd' est la commande delete, quel type de mouvement est' as'? Dans viemu 2010 et gvim 7.3 pour Windows 'das' supprime un bloc contigu de texte, donc si la méthode contient des lignes vides, il s'arrêtera sur les lignes vides. Si la méthode ne contient aucune ligne vide, 'das' la supprimera correctement. –

2

J'aime utiliser zadd pour le plier et supprimer ce pli (qui recevra aussi la déclaration).

Une autre façon de le faire si vous êtes dans le niveau de l'instruction méthode/if que vous voulez supprimer est da{dd que je trouve un peu plus facile à taper que d'autres suggestions. Il est dit de supprimer autour de la paire de parenthèses { que le curseur est actuellement, puis dd pour supprimer la déclaration de fonction restante.

Si vous êtes imbriqué dans des structures de contrôle dans une méthode, vous pouvez placer un nombre avant de supprimer autant de niveaux.

+0

(cela fonctionne dans vim, pas sûr de VS, ne l'avez pas, mais cela semble être des commandes assez simples qu'il aurait probablement) –

+0

Cela fonctionne presque dans viemu, il vous laisse une ligne de la déclaration, donc En gros, il devient 'da {kdd', en supposant que vous avez des accolades ouvrantes sur leur propre ligne. –