2012-09-12 21 views
10

chciałbym, aby moje wiersze poniżej 80 kolumn, więc często chcą byłaby linię, która wygląda tak:tiret Wyrównaj do nawias po LINEBREAK w Sublime Text

object.function(a_long_argument, another_long_argument, and_a_third) 

do tego:

object.function(a_long_argument, 
       another_long_argument, 
       and_a_third) 

Ale kiedy wciskam Enter po pierwszym "," w Sublime on po prostu łamie linie i wcina kursor o kilka spacji. Chcę, żeby to było zgodne z parantezą lub [] lub {}, że jestem, tak jak Emacs robi to pięknie.

Czy istnieje opcja? Czy istnieje wtyczka do tego? Czy muszę napisać własną?

Próbowałem go wyszukać, ale niczego nie znalazłem.

EDIT:

Jeszcze lepiej byłoby skrót lub plugin lub coś do wyboru kilka wierszy lub cały bufor, i niech spróbuje auto-LINEBREAK w dobrych miejscach. Refactor również komentuje. Jeśli ma być specyficzny dla języka, chcę go przede wszystkim w Pythonie i C++.

+0

Chciałbym to również poznać. Zastanów się, czy nie zapytać Jona (twórcy ST2) bezpośrednio na [forum Sublime] (http://www.sublimetext.com/forum/), jeśli nie znajdziesz tutaj odpowiedzi. – AGS

+0

Dzięki @AGS, zrobię to, jeśli nikt nie odpowie w ciągu 24 godzin. Pomyślałem, że skoro Stackoverflow ma tag do wysublimowanego tekstu, będzie się tu czaił. – Gurgeh

+0

Do formatowania całych plików Pythona zgodnie z PEP-8 możesz użyć PyTidy https://github.com/witsch/SublimePythonTidy –

Odpowiedz

14

Sublime's indent_to_bracket zawinie kursor. Wystarczy dodać następującą linię do obu pliku User/Preferences.sublime-settings lub User/Python.sublime-settings:

"indent_to_bracket": true 

Niestety obecnie wydaje się tylko do pracy z nawiasami, klamrami oraz nawiasami kwadratowymi nadal zawijać do poprzedniego tiret linii.