Potrzebuję ruchu, który przesuwa się do końca / początku bloku pytona, i potrzebuję innego ruchu, który przechodzi do początku / końca poprzedniej / następnej metody / klasy (wszystkie kombinacje).
Próbowałem vim-indent-object, python-mode, chapa, vim-python-object itp. Żadne z nich nie obsługuje końca bloku i żadne z nich nie obsługuje wszystkich kombinacji powyższych ruchów.
Pamiętam kiedyś miałem wtyczkę, która pod warunkiem ]]
, [[
, ][
a []
ruchy na początek / koniec poprzedniej / następnej metody / klasy, ale nie mogę go znaleźć w moim katalogu zaślepionej (poszukiwanej „] [” i „[]” w moim podłączonym katalogu i przeanalizowałem wszystkie wystąpienia, ale nie znalazłem niczego, co definiuje „] [” lub „[]”).
Czy znasz wtyczkę, której używałem? Czy znasz jakieś wtyczki, które zapewniają tę funkcjonalność?
źródło
[[
i]]
są dostarczane przez domyślny ftplugin w Pythonie.[[
,]]
,(
,)
,{
i}
.[[
i]]
są przydatne w niektórych przypadkach, ale moim głównym problemem jest to, że potrzebuję[]
i][
coś w tym rodzaju, co zapewnia skoki do końca następnej / poprzedniej metody / klasy.]e
rozwiązuje większość moich problemów, jednak niektóre mapowania w tej wtyczce wydają się być uszkodzone]v
lub]>
spróbuję je naprawić w rozwidleniu i opublikować. Chociaż ja wciąż zastanawiam się, co było warunkiem że wtyczki][
i[]
było bardzo przydatne.Odpowiedzi:
Dzięki najnowszej aktualizacji (listopad 2017)
$VIMRUNTIME/ftplugin/python.vim
następujących ruchów specyficznych dla ft są teraz dostępne dla języka python[[
Przeskocz do tyłu, aby rozpocząć bieżący / poprzedni poziom najwyższy[]
Przeskocz do tyłu na koniec poprzedniego najwyższego poziomu][
Przeskocz do przodu do końca bieżącego najwyższego poziomu]]
Przejdź do przodu, aby rozpocząć następny poziom najwyższy[m
Przeskocz do tyłu, aby rozpocząć bieżącą / poprzednią metodę / zakres[M
Przejdź do końca poprzedniej metody / zakresu]M
Przeskakuj do przodu do końca bieżącej / następnej metody / zakresu]m
Przejdź do przodu, aby rozpocząć następną metodę / zakresPrzykładowy plik python
Ta aktualizacja powinna zostać uwzględniona, jeśli poziom łatki vima wynosi co najmniej
8.0.1256
.Jeśli nie możesz zaktualizować, ale chcesz skorzystać z tej funkcji, możesz zainstalować najnowszą wersję w
~/.vim
katalogu:Wtyczka Pythonsense
Ta wtyczka zapewnia podobne ruchy, ale nieznacznie zmodyfikowana:
Wszystkie szczegóły i przykłady podano na https://github.com/jeetsukumaran/vim-pythonsense#stock-vim-vs-pythonsense-motions .
źródło
curl https://raw.githubusercontent.com/vim/vim/master/runtime/ftplugin/python.vim --create-dirs -o ~/.config/nvim/ftplugin/python.vim
.