Все привязки клавиш, которые используют клавишу Home для перемещения курсора на начало строки, используют команду move_to
для перемещения позиции курсора и указывают в аргументе to
значение"bol"
. Это включает в себя не только «голую» клавишу, но и сдвинутую версию, расширяющую выбор, и т. Д.
Значение "bol"
to
указывает move_to
переместить курсор в началолинии, но переключается между двумя разными «состояниями» начала строки:
- Место, где начинается текст строки (для строк с отступом), которое является «мягким» началом строки.
- Столбец 1, который является «жестким» началом строки
В зависимости от того, где в данный момент находится курсор, вы получаете тот или другой, но нажимая клавишу во второй разпереворачивает позицию в другое состояние.
Например, для примера Python, подобного следующему, где |
- это место, где находится курсор:
def somefunc():|
print("Hello")|
При первом нажатии Home , курсор переместится на p
при печати, потому что это «мягкое» начало строки. Пока курсор находится там, при повторном нажатии Home курсор переместится в «жесткое» начало строки. Повторное нажатие Home вернет курсор на p
. Для строки def
курсор переместится в первый столбец, когда вы нажмете клавишу, и останетесь там, потому что он вообще не имеет отступа.
Общая идея заключается в том, что в большинстве случаев, когда вы хотите перейтив начале строки, это потому, что вы хотите внести изменения в текст, который начинается там, без учета отступа (в приведенном выше примере, скажем, вы хотели поменять print
на log
, это удобно, если когда вынажмите Home вам не нужно стрелять вправо, чтобы вернуться к функции).
В вашем конкретном случае вы можете увидеть, что это происходит при нажатии клавиши;строки, содержащие только отступ в пустом пространстве, переходят на начало, как и строки, которые физически начинаются в столбце 1. Вместо этого все остальные строки переходят на soft bol
.
Если вы работаете с файлами или содержимым, гдепустые строки не имеют пробелов и действительно «пустые», тогда вы можете сделать то, что вы хотите сделать, нажав Home во второй раз. В этом случае все строки, которые в настоящее время находятся на soft bol
, перейдут на hard bol
, и любые строки, уже на hard bol
, останутся там (потому что строка пуста).
В вашемслучай, который не будет работать, потому что все пустые строки содержат пробелы, поэтому нажатие клавиши поменяет эти строки на soft bol
, в то время как остальные перейдут на hard bol
вместо этого, и вы получите странный перевороткоторый никогда не приведет вас туда, куда вы хотите.
Один из способов исправить это - использовать команду trim_trailing_white_space
, чтобы сначала удалить все конечные пробелы из строк, и в этом случае вы можете нажать Home. дважды.
Эта команда выполняется при сохранении файла и включении trim_trailing_white_space_on_save
в ваших предпочтениях, но по умолчанию она не привязана ни к каким клавишам или элементам меню. Таким образом, для этого вам сначала нужно будет привязать его к клавише, добавить его в палитру команд, включить настройку и сначала сохранить содержимое и т. Д.
В качестве альтернативы вы можете привязать альтернативный ключ (или перезапустить). -привязать Home ключ) в ваших пользовательских привязках, чтобы указать вместо to
из hardbol
, что заставит этот ключ всегда переходить к столбцу 1 независимо от того, что:
{
"keys": ["home"],
"command": "move_to",
"args": {"to": "hardbol", "extend": false} },
}