当我写Javascript时,我使用分号。但是当我在webstorm / phpstorm中编写时,它会自动完成大括号和括号,但不会自动添加分号。我知道这不是按照标准等要求的,但这就是我编码的方式 - 而且我并不孤单,很多人用这种方式编码。
示例:
var data = $.ajax({});
通常,webstorm / phpstorm会执行此操作,并将光标留在大括号内:
var data = $.ajax({})
在我想要的世界中,所有这一切都是不必手动添加分号并让它像我在第一个例子中所说的那样自动完成。
答案 0 :(得分:75)
无法自动插入,您需要使用完整声明操作( Ctrl + Shift + 输入)。
您还需要检查Settings
|中是否启用使用分号终止语句选项Code Style
| JavaScript
| Other
标签。
答案 1 :(得分:10)
您可以制作宏和键盘快捷键:
Record Auto semicolon macro and bind shortcut to it:
1. Edit -> Macros -> Start Macro Recording
2. In the editor go to the end of line by pressing End
3. put semicolon ';'
4. Edit -> Macros -> Stop Macro Recording
5. Give a name, for example 'Auto semicolon'
6. Open settings (Ctrl + Alt + s), select Keymap
7. Expand Macros node
8. Select 'Auto semicolon', in the context menu choose Add Keyboard Shortcut
9. Set Ctrl + ; as First keystroke
10. Save/Apply settings
11. Enjoy!
12. Try it so, in the middle of code line, hit Ctrl + ;
// some useful combinations:
Ctrl + , put colon at the end of line
Ctrl + ; put semicolon at the end of line
Ctrl + . put => at the end of line
来自https://gist.github.com/umidjons/9383758
如果可以选择自动执行,那将会更加凉爽......
答案 2 :(得分:6)
我想做什么
我的目标是在当前行的末尾添加一个分号,同时将光标位置保持在行的中间。
e.g。
func([{''}])
// /\
// ||
// ||
// current cursor position
//
// Now I want to add a semi-colon to the end-of-the-line
// but then continue typing my string contents at the same
// cursor location. i.e. I now want this, with as few
// keystrokes as possible:
//
// Add this semi-colon...
// |
// |
// V
func([{''}]);
// /\
// ||
// ||
// ...while maintaining this cursor position
我为什么要这样做
WebStorm很好地完成了#34;我输入的标点符号,即在我输入({['
后,它会自动完成({[' <<cursor here>> ']})
。我想确保在我做更多打字之前将分号包含在现在的行中,因为我可能会忘记以后。但是,添加分号后,我想继续在当前光标位置键入内容。我知道我可以使用自动完成在行的末尾添加一个分号,但是这会将光标留在行的末尾,迫使我多次点击后退箭头。此外,有时我的半完成行不会是正确的JavaScript语法,因此自动完成可能甚至不起作用。
为什么这么难
解决方案似乎很简单:编写一个简单的宏来跳转到行尾,输入一个分号,然后返回原来的位置。问题是,很难弄清楚如何诱使WebStorm返回原来的位置!我尝试设置一个书签,进入行结束,输入一个分号,然后返回到我的书签,但这并不起作用,因为据我所知,书签只记得该行,不是专栏。我尝试首先在当前位置键入垃圾标记文本(例如xcursorx
),进入行结束,输入分号,然后执行简单的find
垃圾标记文本,但这并不起作用,因为WebStorm的宏似乎不能很好地将文本输入find
例程。我尝试先输入垃圾标记文本,进入行结束,输入分号,然后使用Navigate/Last Edit Location
并删除垃圾,但这也不起作用。
最终工作
我按如下方式创建了一个宏(各个步骤中显示的键盘快捷键来自&#34; Mac OS X 10.5 +&#34;键映射...使用适合您的设置的快捷键或菜单选项):
Edit > Macros > Start Macro Recording
)Edit > Find > Find Word at Caret
)(手动输入&#34; xcursorx&#34;)find
Edit > Find > Find Previous/Move to Previous Occurrence
或shift-command-G);这将选择&#34; xcursorx&#34;在&#34; .xcursorx。&#34; Edit > Macros > Stop Macro Recording
)Preferences > (scroll down to) Macros > place-semicolon-at-end-of-line > (right click) > Add Keyboard Shortcut
...并输入您想要的快捷方式,例如选项 - 分号)一些模糊步骤的解释
对于某些用例,并非所有上述步骤都是必需的。例如使用func([{''}])
在顶部的示例中不需要添加额外的句点。但是,某些边缘情况需要额外的步骤,例如:如果你的光标已经在行的最后。
如何使用
要使用该宏,请从正常输入开始(在顶部的示例中,键入导致func([{'
的{{1}}),键入您的快捷方式(例如选项分号)和半-colon将出现在行尾,但光标将保持原样。
<强>买者强>
这个解决方案有点乱,因为显示确实会在插入垃圾文本然后删除时跳转一点。但是,至少它有效。如果有人能够弄清楚如何在不需要垃圾标记文本的情况下完成相同的最终目标,那就太棒了。
答案 3 :(得分:2)
您可以自动让webstorm或phpstorm为您添加分号。
这是网络风暴的方法:
首选项->编辑器->代码样式-> Javascript->标点符号
在用分号终止的语句中,始终选择
。然后随时使用快捷方式设置代码格式 OPTION + CMD + L将添加分号
您还可以在保存时将重新格式化设置为自动。这样,分号将总是被添加。
答案 4 :(得分:1)
您可以使用此https://github.com/yyx990803/semi。 提供cli和api以满足您的需求。
答案 5 :(得分:1)
答案 6 :(得分:1)
对于IntelliJ Idea 2018,请执行以下步骤:
这将在JS中添加多余的分号。
答案 7 :(得分:0)
是的,如果你在没有分号的情况下离开它,Webstorm会将其标记为unterminated statement
并突出显示它。当你在线上(用光标)作为右括号时,只需输入:
Alt + Enter
这将打开灯泡菜单(自动更正或更改内容,我没有更好的名称)。
希望如果你的代码是正确的,或者大括号是该行中唯一的符号,你唯一的选择是Terminate statement
并且它会自动聚焦,所以只需按下Webstorm的回车键即可添加分号。
这样可以避免手动定位光标并自己输入分号,但只是以某种方式在该行上,并执行alt +输入+输入,然后就可以了。
是的,它不是自动存在的,但它更快更容易。
答案 8 :(得分:0)
通常,webstorm / phpstorm会执行此操作,并将光标留在大括号内:
仍然需要手动操作,但我每次只需按结束和; 。但是 Ctrl + 右也应该可以使用,这些键都可以使用。
我在每行保存文件后不断点击 CTRL + S ,所以这对我来说只是一个小麻烦......
答案 9 :(得分:0)
必须按Ctrl + Shift + Enter然后每次回到括号中都不是我脑海中的解决方案。
这是一个真正的解决方案:
当您点击Shift + 9&#39;时,通常需要在语句结尾处添加分号。对?每次都不会在键盘上遇到其他疯狂的组合。
根据您的需要,您可以根据需要制作多种产品。例如,在&#39;({})&#39;之间添加花括号。或者如果您使用&#39;()&#39;更常见的是,最后不需要分号,您可以将快捷方式更改为“Ctrl + Shift + 9”,而通常的组合只会添加常规。你的偏好!
答案 10 :(得分:0)
创建一个宏以移动到行尾并插入分号。然后将宏指定给分号键击。因此,在您输入的任何时候,您都可以终止代码行。
答案 11 :(得分:0)