Sublime Text 2将光标移出圆括号,引号或括号
我需要一个快速的方法来使光标跳出自动换行或其他语法元素。 我不希望每次都要到达我的箭头键,绝对不想去我的鼠标。
有没有一个简单快捷的方法来解决我的工作stream程?
您可以使用快捷键( shift + 空格或任何您喜欢的)来移动光标。
在你的Key Bindings - User
:
{ "keys": ["shift+space"], "command": "move", "args": {"by": "characters", "forward": true} }
我也用macros做了几个键绑定。
除非你想花更多的时间来构build它们,否则你必须为它们制作一个macros ,但是这非常简单。 只要去崇高的文字, Tools
> Record Macro
,或点击ctrl
Q
将文件保存在Packages / User /中,然后点击⌘
,
打开用户设置。 粘贴下面的设置在那里和景气。 (下面的代表我的光标)
这是我select的那个:
function自动括弧器
当这个光标在这里时:
totallyAwesomeness(|)
使用选项+蒂尔达快捷键。
⌥〜
用括号和文本'#code …'预先填充函数。 它只在括号内起作用。
崇高的用户设置
{ "keys": ["option+`"], "command": "run_macro_file", "args": {"file": "Packages/User/superBracketizeFunction.sublime-macro"} },
下载macros
带有分号的自动结束行
当这个光标在这里时:
echo 'say what!!??|'
使用命令+分号快捷键。
⌘;
这增加了收盘价; 在当前行的末尾,并将其移动到下面的行。 无论你在哪里,它都可以工作。
崇高的用户设置
{ "keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/superEndLineWiSemiColin.sublime-macro"} },
下载macros
退出参数和退出function
当你的光标在函数内部的任何地方时,它将在这里结束:
public function totallyAwesomeness() { echo 'say what!!??'; } | echo 'yep... that just happened';
使用命令+input快捷键。
⌘input
这可以让你跳出论证之外的空间,也可以从函数内部的任何地方跳出,只是右括号。
崇高的用户设置
{ "keys": ["option+enter"], "command": "run_macro_file", "args": {"file": "Packages/User/superExitFunctionArg.sublime-macro"} },
下载macros
以防万一你不知道你的用户文件夹是什么path,如下所示。
/Users/alexcory/Library/Application Support/Sublime Text 3/Packages/User/
此外,库文件夹通常是隐藏的,所以你可以下载一个名为Revealer的程序,让你切换这些隐藏的文件。
如果你想知道我是怎么让这些打我的,我会告诉你的! :d
最好的解决scheme是在Sublime Text上录制macros ,然后将其分配给键盘快捷键。 按着这些次序:
- 创build一个如alert('hello')的行,并在字母“o”后面留下光标。
- 然后转到工具>录制macros以开始录制。
- 按Command + →进入行尾。
- 按; 并按Enter键
- 通过转到工具>停止录制macros来停止录制macros
- 您现在可以通过工具>播放macros (可选)来testing您的macros
- 通过转到工具>保存macros (例如:EndOfLine.sublime-macro)来保存macros
-
通过在您的首选项>键绑定 – 用户文件中的方括号之间添加快捷方式来创build快捷方式:
{ "keys": ["super+;"], "command": "run_macro_file", "args": {"file": "Packages/User/EndOfLine.sublime-macro"} }
- 现在,每次你点击Command + ,它会神奇地将分号放在当前行的末尾,并将光标移动到下一行。
快乐的编码!
一个更完整的方式来做一个键绑定将是:
{ "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 + 空格作为快捷键。 或者,您也可以将其更改为选项卡
如http://www.sublimetext.com/forum/viewtopic.php?f=3&t=5174#p23086
在Riccardo Marotti的职位之后;
如果您想要绕过下一行的括号,可以在args部分用“lines”replace“characters”。
{ "keys": ["shift+space"], "command": "move", "args": {"by": "lines", "forward": true} }
在戴尔XPS上,Ctrl Enter对我来说是个诀窍
我只是在名为run_multiple_commands.py的插件的帮助下部分实现了这个function(见下文)
( 仅在ST3上testing过,但是插件比ST3的第一个版本早,并且也可以在ST2上运行)。
快捷键configuration如下:
{ "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
)有四个条件:
-
光标位于引号或括括号/括号后面:
向前移动一个字符
-
光标位于引号或括括号/括号之前:
向前移动一个字符
-
光标就在打开圆括号/括号之前:
移动到closures圆括号/括号
-
!
1
&&!2
&&!3
:移动到closures圆括号/括号
并向前移动一个字符
要在你的ST中使用这个configuration,你应该首先添加一个名为run_multiple_commands.py
的文件到你的.../Package/User/
目录中,其内容是本文的第二个代码段
这个解决scheme对于日常使用来说很好,但并不完美,因为:
- 光标无法跳出引号(只要光标后面紧跟着一行)。
- 当代码块被注释时,游标不能跳出最近的括号,引号或括号。
Ctrl + M是我在Windows机器上默认的一个。 去做就对了
也许家和结束键靠近你的手指。
我使用Ctrl + F将光标向前移动一个空格。 另外,在Mac上,我用ctrl交换了大写locking 。 大写locking + f更容易达到。 它对我来说工作得很好。
我发现了另一种在崇高的键盘本身内的方式。 基本上,我只是修改了自动closuresparens的键绑定,就是用"contents": "($0)"
replace"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
这可以到括号的末尾