J'utilise "very magic" pour les recherches regexp (c'est-à-dire/\ v ou% s/\ v) mais j'aimerais pouvoir définir une option, donc je n'ai plus besoin d'inclure \ v, n'importe où. Y a-t-il un moyen de faire cela?In vim, existe-t-il un moyen de définir "très magique" de manière permanente et globale?
Répondre
Pas directement, mais vous pouvez toujours utiliser une cartographie:
:nnoremap//\v
:cnoremap %s/ %s/\v
Même si vous pouvez définir « très magique » dans la façon dont vous pouvez set nomagic
, vous vraiment pas vouloir car il romprait assez beaucoup chaque plugin existant.
Modifier
Voir aussi this page.
EDIT2: Je viens de découvrir ce plugin, qui peut être meilleur que les solutions de remappage (qui semblent avoir des inconvénients incontournables, voir plus bas). Je ne l'ai pas encore testé, donc je ne sais pas s'il se comporte exactement comme il le souhaite.
http://www.vim.org/scripts/script.php?script_id=4849
EDIT3: J'utilise le plug-in pour environ un an et demi, et je l'aime. Il interfère toujours avec l'historique de recherche, cependant (voir ci-dessous), et il brise aussi incsearch
, j'ai donc ce qui suit dans ma config Vim:
" Since I use incsearch:
let g:VeryMagic = 0
nnoremap//\v
nnoremap ? ?\v
vnoremap//\v
vnoremap ? ?\v
" If I type // or ??, I don't EVER want \v, since I'm repeating the previous
" search.
noremap // //
noremap ?? ??
" no-magic searching
noremap /v/ /\V
noremap ?V? ?\V
" Turn on all other features.
let g:VeryMagicSubstituteNormalise = 1
let g:VeryMagicSubstitute = 1
let g:VeryMagicGlobal = 1
let g:VeryMagicVimGrep = 1
let g:VeryMagicSearchArg = 1
let g:VeryMagicFunction = 1
let g:VeryMagicHelpgrep = 1
let g:VeryMagicRange = 1
let g:VeryMagicEscapeBackslashesInSearchArg = 1
let g:SortEditArgs = 1
je suggestion Drai pendant un certain temps, mais trouvé frustrant dans la pratique en raison du comportement suivant:
Si vous tapez la commande suivante: /{motif} :% de // {remplaçant}
... puis, sans cette carte, vous pouvez voir ce que tu es à propos à remplacer avant de faire un remplacement. Mais avec le remappage, vous avez soudainement s/\v/
au lieu de s//
; cela correspond tout dans le fichier, ce qui est évidemment faux.
Heureusement, la commande s
elle-même a une forme alternative qui utilise very magic
pour sa recherche. Voici donc les applications que je utilise actuellement dans mon .vimrc
:
nnoremap//\v
vnoremap//\v
cnoremap %s/ %smagic/
cnoremap >s/ >smagic/
nnoremap :g/ :g/\v
nnoremap :g// :g//
Notez que la cartographie juste s/
conduit à des problèmes lors d'une tentative d'utiliser un modèle qui se termine par s
; de même, le mappage g/
créerait des problèmes lors de l'utilisation de modèles se terminant par g
. Notez que les mappages :g/
et :g//
empêchent Vim d'afficher la commande immédiatement.
EDIT: Malheureusement, il ne semble pas être une version « magique » de :global
, ce qui explique pourquoi la cartographie semble-superflu de :g//
est utilisé pour faire en sorte que la commande globale peut utiliser le modèle de recherche précédent.
Un autre inconvénient est que ces remappages interfèrent avec l'historique de recherche. À titre d'exemple, pensez à utiliser *
pour rechercher l'occurrence suivante du mot sous le curseur.Cela provoque Vim pour rechercher le modèle \<[word]\>
, qui fait pas commence par \v
. Sans les remappements décrits ci-dessus, en tapant /
et en appuyant sur la flèche vers le haut se rappellera ce motif de recherche. Avec les remappings, cependant, après avoir tapé /
, vous devez supprimer le \v
automatiquement inséré avant d'appuyer sur la flèche vers le haut afin de rappeler ce modèle.
'cnoremap> s /> smagic /' ne semble pas fonctionner lorsque je sélectionne une plage visuelle. J'ai également essayé d'échapper le support à 'cnoremap \> s/\> smagic /' mais cela ne fonctionnait pas non plus. –
@DaveKennedy Avez-vous essayé le plugin? C'est beaucoup plus fiable pour moi. J'ai eu très peu de problèmes avec ça. Je n'utilise plus les mappages listés dans ce second bloc de code. –
- 1. plug-in VIM VTreeExplorer (navigation de style IDE pour VIM)
- 2. Comment supprimer une fusion de github de manière permanente?
- 3. Rétablir la migration de manière permanente puis embranchement
- 4. Comment définir le PATH sur Mac de manière permanente (spécifiquement pour la mise à niveau subversion)
- 5. Où puis-je définir de manière permanente la taille du tas java sur le PC Windows?
- 6. Existe-t-il un moyen de définir une variable globale accessible depuis une méthode de classe?
- 7. Arrête tous les sons de manière permanente dans AS3
- 8. Enregistrement des flux de manière permanente dans l'application iPhone
- 9. Certificat SVN: rejeter, accepter temporairement, ou accepter de manière permanente?
- 10. Puis-je définir l'adaptateur de base de données à utiliser de manière permanente à partir d'une classe Zend_Db_Table_Abstract?
- 11. Inverser de façon permanente un fichier patch
- 12. applescript et souris magique
- 13. ThreadPool SetMaxThreads et SetMinThreads Nombre magique
- 14. In vim, comment écrire une ligne partielle dans un fichier?
- 15. Comment puis-je modifier les objets à l'intérieur des trames avec AS3 de manière permanente?
- 16. Existe-t-il un moyen javascript/jQuery de stocker des données de façon permanente?
- 17. Quelle est la manière drupal de définir des constantes globales?
- 18. Définir un attribut de propriété de manière dynamique
- 19. Comment définir les limites initiales dans VIM?
- 20. MATLAB Comportement de chronométrage du mystère magique
- 21. Autres moyens de définir une clé de raccourci globale personnalisée dans Windows pour un programme C#?
- 22. Comment changer de manière permanente la variable $ PATH de sudo (Ubuntu 9.x)
- 23. Impossible d'activer le plug-in vim "Syntastic"
- 24. Problème avec le plug-in Ruby Vim
- 25. Lire le résultat d'un fichier exe dans: vs in vim
- 26. Définir la réponse ajax comme variable globale
- 27. tinyMCE JQuery plugin - Comment définir les options de configuration globale?
- 28. Comment définir une limite globale de vitesse (vitesse) CURL?
- 29. Quel est un bon moyen d'exécuter JavaScript de manière interactive?
- 30. Définir la position globale d'un QLabel
Bon point sur les plugins. D'une certaine façon, je n'y avais pas pensé. Merci pour une réponse. – bgaluszka
J'ai ajouté un lien vers une page wikia qui pourrait vous être utile. – DrAl
+1 Merci. FWIW, cela semble plus général: ': cnoremap s/s/\ v'. – FMc