12
votes

Supprimer les espaces environnants dans Vim

J'utilise l'impressionnant ​​https://github.com/tpope/vim-suround plugin sur les mots surround Avec des parenthèses, par exemple, j'utilise souvent: VIWS pour entourer un mot avec des espaces.

Ce qui me manque, c'est le contraire de cela, c'est-à-dire supprimer des espaces environnants autour d'un mot.

L'utilisation la plus courante pour moi est des arguments de la fonction comme FOO (bar) vs foo (bar) en fonction du style de code.

Quelqu'un peut-il connaître une bonne façon de faire cela?

vim

4 commentaires

DS fonctionne? Le README fournit DS " en tant que mécanisme pour supprimer les délimiteurs " sur un exemple.


Ce n'est malheureusement pas malheureusement. Bonne observation cependant.


Je trouve que je trouve drôle que vous trouviez la commande viws une solution plus simple que toutes les alternatives, y compris à l'aide des touches fléchées et de la backpace!


hmm..yeah..nevoir y pensa ... drôle de quoi les cerveaux peuples fonctionnent différemment :)


4 Réponses :


2
votes

Peut-être juste bxelx en mode normal.


0 commentaires

14
votes

Remarque: cette solution nécessite le plug-in surround référencé dans la question.

Pour votre situation spécifique, vous pouvez effectuer les éléments suivants: xxx

Ce changement foo (bar) à foo (bar) , cependant, ce n'est pas une solution générale à votre problème.


9 commentaires

genre d'élégant .. bizarre mais élégant :)


Qu'est-ce que c'est censé faire? Ça ne fait rien pour moi


Si vous n'avez pas le plug-in surround noté dans l'OP, cela ne fera pas ce qui est attendu. Avec surround, csxy dit "Modifier les caractères environnants x avec des caractères environnants y", le ( est défini comme "entourant des parenthèses avec un espace de rembourrage", et le ) est défini comme "entourant des parenthèses sans espace de rembourrage".


N'a-t-il pas un moyen de configurer le plugin surround pour ne pas utiliser les espaces supplémentaires autour de la ()?


Pouvez-vous expliquer davantage sur "Parens environnants avec un espace de rembourrage"? Pourquoi l'espace de rembourrage? @Randymorris ça marche, mais je pense que je ne le comprends pas complètement.


@nabn Je ne suis pas sûr de comprendre votre question. OP demandait une façon de changer foo (bar) sur foo (bar) . Le plug-in surround fournit un moyen d'insérer des parens comme () ou comme () en fonction de la carte que vous utilisez. La séquence clé de ma réponse est C suspendu le s urroning ( - avec les espaces supplémentaires - dans ) ) > Quelle est la parens sans espaces supplémentaires.


Je comprends la question et la réponse fonctionne. Je voulais juste demander pourquoi (inclut l'espace de rembourrage? (Je pense qu'il est plus intuitif pour qu'une paren d'ouverture soit juste une paren d'ouverture, sans l'espace). Je ne sais pas si c'est une défaillance de Vim.


@nabn ahh je comprends maintenant. Ces mappages sont fournis par un script tiers afin que vous puissiez demander à l'auteur quel était leur raisonnement.


Donc, ce n'est pas la valeur par défaut. Merci! :)



4
votes

Je termine souvent de manière productive à la recherche de plugins VIM aussi, lorsque je pourrais simplement définir une cartographie pour cela.

nnoremap <leader>dd F<space>xf<space>x


0 commentaires

0
votes

En fait, la solution parfaite pour moi est la cartographie fournie par @puk, mais à l'aide des touches @sarnold attendues en premier lieu (ce que l'on pourrait attendre du plugin surround s'il l'a mise en œuvre).

Ceci est: < / p> xxx


0 commentaires