J'ai besoin d'un mouvement qui se déplace à la fin / au début d'un bloc python, et j'ai besoin d'un autre mouvement qui se déplace au début / à la fin de la méthode / classe précédente / suivante (toutes les combinaisons).
J'ai essayé vim-indent-object, python-mode, chapa, vim-python-object, etc. Aucun d'entre eux ne prend en charge la fin du bloc et aucun ne prend en charge toutes les combinaisons de mouvements ci-dessus.
Je me souviens une fois que j'avais un plug - in qui a fourni ]]
, [[
, ][
et []
propositions de begining / fin de précédent / suivant la méthode / classe, mais je ne le trouve pas dans mon répertoire branché (recherche « ] [ » et « [] » dans mon répertoire branché et analysé toutes les occurrences mais n'a rien trouvé qui définisse "] [" ou "[]").
Connaissez-vous le plugin que j'utilisais? Connaissez-vous un plugin qui offre cette fonctionnalité?
[[
et]]
, sont fournis par le ftplugin python par défaut.[[
,]]
,(
,)
,{
et}
.[[
et]]
sont utiles dans certains cas, mais mon problème principal est que j'ai besoin[]
et /][
ou quelque chose comme ça, qui fournit des sauts à la fin de la méthode / classe suivante / précédente.]e
résout la plupart de mes problèmes, cependant certains mappages dans ce plugin semblent être cassés]v
ou]>
j'essaierai de les corriger dans un fork et de le publier. Bien que je me demande toujours quel était le plugin fourni][
et[]
qu'il était vraiment utile.Réponses:
Avec la récente mise à jour (novembre 2017) des
$VIMRUNTIME/ftplugin/python.vim
mouvements spécifiques à ft suivants sont désormais disponibles pour le langage python[[
Saut en arrière pour commencer le niveau supérieur actuel / précédent[]
Aller en arrière jusqu'à la fin du niveau supérieur précédent][
Aller en avant jusqu'à la fin du niveau supérieur actuel]]
Sautez en avant pour commencer le prochain niveau supérieur[m
Saut en arrière pour commencer la méthode / portée actuelle / précédente[M
Aller en arrière à la fin de la méthode / portée précédente]M
Aller en avant à la fin de la méthode / portée actuelle / suivante]m
Aller de l'avant pour commencer la prochaine méthode / portéeExemple de fichier python
Cette mise à jour doit être incluse si votre niveau de correctif vim est au moins
8.0.1256
.Si vous ne pouvez pas mettre à jour mais souhaitez utiliser cette fonctionnalité, vous pouvez installer la version la plus récente dans le
~/.vim
répertoire:Plugin Pythonsense
Ce plugin fournit des mouvements similaires mais légèrement modifiés:
Tous les détails et exemples sont donnés sur https://github.com/jeetsukumaran/vim-pythonsense#stock-vim-vs-pythonsense-motions .
la source
curl https://raw.githubusercontent.com/vim/vim/master/runtime/ftplugin/python.vim --create-dirs -o ~/.config/nvim/ftplugin/python.vim
.