Ответ 1
Вы можете использовать ярлык (shift + space или что угодно) для перемещения курсора.
В Key Bindings - User
:
{ "keys": ["shift+space"], "command": "move", "args": {"by": "characters", "forward": true} }
Мне нужен быстрый способ заставить курсор перейти за пределы аутов auto wrap или других элементов синтаксиса. Я не хочу каждый раз нажимать на клавиши со стрелками и, безусловно, не хочу идти на мышь.
Есть ли быстрый и простой способ решить эту проблему для моего рабочего процесса?
Вы можете использовать ярлык (shift + space или что угодно) для перемещения курсора.
В Key Bindings - User
:
{ "keys": ["shift+space"], "command": "move", "args": {"by": "characters", "forward": true} }
Я также сделал несколько ключевых привязок из макросов.
Вы должны сделать макрос для этих, если не хотите тратить больше времени на их создание, но это очень просто. Просто перейдите в Sublime Text, Tools
> Record Macro
или нажмите ctrl
Q
. Сохраните файл в Пакетах/Пользователь/, а затем нажмите ⌘
,
, чтобы открыть настройки пользователя. Вставьте здесь настройки и стрелку. (ниже представлен мой курсор)
Вот тот, который я выбрал:
Когда курсор находится здесь:
totallyAwesomeness(|)
Используйте вариант + тильда.
Это заполняет функцию скобками и выделяется текст "# code...". Он работает только в скобках.
{
"keys": ["option+`"], "command": "run_macro_file", "args": {"file": "Packages/User/superBracketizeFunction.sublime-macro"}
},
Когда курсор находится здесь:
echo 'say what!!??|'
Используйте ярлык команда + точка с запятой.
Это добавляет закрытие; в конце текущей строки и переместит вас к линии под ней. Он действительно работает везде, где вы находитесь на линии.
{
"keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/superEndLineWiSemiColin.sublime-macro"}
},
Когда ваш курсор находится где угодно внутри функции, он будет здесь:
public function totallyAwesomeness()
{
echo 'say what!!??';
} |
echo 'yep... that just happened';
Используйте команду + введите.
Это позволит вам перейти за пределы аргумента и пробела вправо, а также в любом месте из функции, из которой вы выберете его из него только как закрывающую скобку.
{
"keys": ["option+enter"], "command": "run_macro_file", "args": {"file": "Packages/User/superExitFunctionArg.sublime-macro"}
},
На всякий случай, когда вы не знаете, что путь к вашей папке пользователя, это показано ниже.
/Users/alexcory/Library/Application Support/Sublime Text 3/Packages/User/
Также папка библиотеки обычно скрыта, поэтому вы можете загрузить программу под названием Revealer, которая позволит вам переключать эти скрытые файлы.
Если вы хотите знать, как я сделал это, просто ударил меня, и я покажу вам!: D
Лучшее решение для этого - запись макроса в Sublime Text, а затем присвоение его ярлыку на клавиатуре. Выполните следующие действия:
Создайте ярлык, добавив это между квадратными скобками в вашем в настройках > Ключевые привязки - Файл пользователя:
{
"keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"}
}
Счастливое кодирование!
Более полный способ сделать привязку клавиш будет:
{ "keys": ["shift+space"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
[
{ "key": "following_text", "operator": "regex_contains", "operand": "^[)\"\\]]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
Предполагая, что вы хотите shift + space в качестве ярлыка. Или вы можете изменить его на tab, а также
Как найдено в http://www.sublimetext.com/forum/viewtopic.php?f=3&t=5174#p23086
Следующее сообщение Риккардо Маротти;
Если вы хотите обойти скобку на следующей строке, вы можете заменить "символы" на "строки" в разделе args.
{ "keys": ["shift+space"], "command": "move", "args": {"by": "lines", "forward": true} }
на Dell XPS, Ctrl Enter делает трюк для меня
У меня эта функция частично реализована с помощью плагина с именем run_multiple_commands.py(см. ниже)
( тестируется только на ST3,, но плагин раньше, чем первая версия ST3, и должен работать и на ST2).
Конфигурация ярлыков:
{
"keys": ["shift+space"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "move", "args": {"by": "characters", "forward": true} }
]
},
"context":
[
{ "key": "preceding_text", "operator": "regex_contains", "operand": "[)\\]}'\"]$", "match_all": true},
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
{
"keys": ["shift+space"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "move", "args": {"by": "characters", "forward": true} },
]
},
"context":
[
{ "key": "following_text", "operator": "regex_contains", "operand": "^[)\\]}'\"]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
{
"keys": ["shift+space"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "move_to", "args": {"to": "brackets"} },
]
},
"context":
[
{ "key": "following_text", "operator": "regex_contains", "operand": "^[(\\[{]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
{
"keys": ["shift+space"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "move_to", "args": {"to": "brackets"} },
{"command": "move", "args": {"by": "characters", "forward": true} },
]
},
"context":
[
{ "key": "following_text", "operator": "not_regex_contains", "operand": "^[)\\]}'\"]", "match_all": true },
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[)\\]}'\"]$", "match_all": true},
{ "key": "following_text", "operator": "not_regex_contains", "operand": "^[(\\[{]", "match_all": true },
{ "key": "auto_complete_visible", "operator": "equal", "operand": false }
]
},
Один ярлык (shift+space
) для четырех условий:
курсор сразу после цитат или закрывающих круглых скобок/скобок:
переместить один символ вперед
курсор перед кавычками или закрывающимися скобками/скобками:
переместить один символ вперед
курсор перед открытием круглых скобок/скобок:
перейти к закрывающим скобкам/скобкам
! 1
&& &! 2
& &! 3
:
перейти к закрывающим круглым скобкам/скобкам
и переместите еще один символ вперед
Чтобы использовать эту конфигурацию в ST, сначала добавьте файл с именем run_multiple_commands.py
в каталог .../Package/User/
, а содержание которого является вторым фрагментом кода Эта статья
Это решение прекрасно подходит для повседневного использования, но не идеально, потому что:
Ctrl + M - это значение по умолчанию, которое у меня есть на машине Windows. Просто сделайте это
Возможно, клавиши home и end находятся рядом с вашими пальцами.
Я использую ctrl + f для перемещения курсора на одно пространство вперед. Кроме того, на mac я заменил caps lock на ctrl. caps lock + f гораздо проще. Это работает хорошо для меня.
Я нашел другой способ, который лежит в возвышенных ключевых связях. В принципе, я просто изменяю привязки клавиш для автоматического закрытия парсеров, то есть заменяю "contents": "($0)"
на "contents": "($1)$0"
. Затем просто нажмите Tab
, чтобы выйти из круглой скобки. Поэтому я добавляю в свои ключевые слова следующее:
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "($1)$0"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
]
},
И аналогично для квадратных скобок, фигурных скобок и одиночных и двойных кавычек.
Ctrl + PgUp Cycle up through tabs
Ctrl + PgDn Cycle down through tabs
Это может идти до конца скобок