J'ai du mal à me souvenir de tous les mots-clés de Vim. Cependant, des choses comme "entourer" de Tim Pope's SUROUND.VIM Plugin sont très utiles.
Est-il possible de configurer une commande de texte générique telle que lorsque j'exécute quelque chose comme p> il remplacera la sélection actuelle avec p> ou si j'exécute p> Il remplacera la sélection actuelle avec: p>
4 Réponses :
Afin de tirer parti du plug-in surround.viM, vous devez baser votre personnalisation sur ce que les offres du plug-in. Pour le mode visuel, c'est fondamentalement ce mappage (que par défaut est mappé sur Le plugin n'expose aucune fonction (le En outre, le plugin ne prend qu'un seul caractère (par exemple, Vous créez une commande personnalisée avec ceci renonce en mode visuel ( Vous pouvez ensuite appeler la nouvelle commande personnalisée comme s code>): : normal code> (sans un [!] code>). p> ( code> sur entourer de parens et de blancheurs, ) code> pour entourer de juste des parens); Vous pouvez référencer que dans votre commande personnalisée via . p> : aide: commande code> ; Notez que la commande doit commencer par une lettre majuscule: p> gv code>), puis invoque le plugin et Fournit enfin l'argument passé. Afin de l'invoquer directement à partir du mode Visual, ajoutez simplement un -range code> à la définition, de sorte que la commande prend (et ignore) le '<,'> code> VIM fournit automatiquement. P> : surround) code>, par exemple, et il entourera la sélection visuelle précédente avec ( Code> ... ) code>. p> p>
Presque, oui. avec ceci, vous pouvez créer une sélection visuelle, puis utiliser p> notez que défini par l'utilisateur Les commandes ne peuvent jamais commencer par une lettre minuscule, donc Cependant, selon les commentaires, je vous exhorte à utiliser davantage de méthodes VIM standard (et plug-ins bien garnites comme Surround.vim) avant de préparer Façons personnalisées de l'utiliser. P> Voici une autre solution, à l'aide d'un plug-in surround: définissez un remplacement personnalisé et effectuez-le (puis corrigez la configuration du plug-in sur ce qu'il était avant): P> : surround code> que vous demandez est pas em> possible. En outre, c'est un piratage rapide, c'est donc plutôt fragile. P> command! -range -nargs=1 Surround call ArbitrarySurround(<q-args>)
function! ArbitrarySurround(repl)
let backup = b:surround_45
let b:surround_45 = substitute(a:repl, "\\.", "\r", "")
norm gvS-
let b:surround_45 = backup
endfunction
J'étais sur le point d'ajouter une réponse alternative qui impliquerait une demande d'OP sans le plugin surround quand j'ai vu que vous aviez déjà fait exactement cela. J'accepte également que, même si cela satisfait aux exigences de l'OP, il serait préférable de compter sur un plugin, surtout si l'un n'est pas bien versé dans les scripts Vim.
Ce n'est pas exactement ce que vous avez demandé, mais puisque le problème mémorise, que diriez-vous de la mettre dans votre .vimrc: Faites votre sélection, appuyez sur ( KBD> et il est entouré de Faites votre sélection, appuyez sur " kbd> et il est entouré de Vous pouvez faire la même chose avec ( code> ) code>. p> " code> " code>. p> { code>, [ code> ou '< / Code>. Pour un tel cas simple, il n'y a pas de besoin réel pour un plugin. p> p>
Vous pouvez également utiliser un "entourage" personnalisé qui vous demandera le texte: Vous pouvez désormais sélectionner visuellement ce que vous voulez envelopper puis appuyer sur Pour plus d'aide Voir: P> S- Pour Tiguger le - code> entourant. Il vous invitera ensuite à vous pour un texte "Démarrer" et "Mettre fin". P> :h surround-customizing
:h char2nr()
:h curly-brace-names
Veuillez consulter la page GitHub du plugin. Il y a un mode de sélection visuelle
@Doktoroswaldo Je pense que son point est que c'est que tout est trop complexe à retenir. (En outre, Vim-Surround ne vous permet pas d'entourer une paire de texte arbitraire, sauf si vous vous engagez dans
surround-personnifiant code>.)Merci pour la clarification @Amadan. Mais autant que je puisse voir
surround code> en mode visuel permet des paires de texte arbitraires. Regardez le raccourcis code>. Pour Non Visual, il y a toujours vim-sandwich . Se souvenir est plus ou moins simplesurround code> ->s code>,change environnant code> ->CS code> et ainsi de suite .. . Mais cela prend du temps si vous êtes nouveau à Vim.@Doktoroswaldo: Je ne sais pas ce que vous entendez par la première phrase; Je ne sais pas une voie autre que
surround-personnage code> à surveiller depréambule .... quelque chose code> (par exemple, changementFOO code> àcode> oubar (foo) code>). (Et oui, je suis d'accord, Se souvenir est une question de pratique.)@Armadan avait un autre look, il semble que ce ne soit possible que du texte synchrone des balises HTML, mais de sélectionner un texte de sélection visuellement, puis appuyez sur
s
code> par exemple fonctionnera
@Doktoroswaldo Oui, car une balise est un remplaçant défini. Vous ne pouvez pas, Afaik, maquiller une paire de remplacement ad-hoc sur laquelle vous pourrez entourer. (Ceci est en pratique pas un si grand désavantage; j'utilise un autre plugin pour commentaires et préfixer des parenthèses avec un nom de méthode peut être effectué à l'aide de Pure Vim sans trop de malaise.)
Laissez-nous Continuez cette discussion en chat .