tvp*_*pmb 57 javascript phpstorm webstorm
当我写Javascript时,我使用分号.但是当我在webstorm/phpstorm中编写时,它会自动完成大括号和括号,但不会自动添加分号.是的我知道这不是按照标准要求的,等等等等,但这就是我编码的方式 - 而且我并不孤单,很多人用这种方式编码......
例:
var data = $.ajax({});
Run Code Online (Sandbox Code Playgroud)
通常,webstorm/phpstorm会执行此操作,并将光标留在花括号内:
var data = $.ajax({})
Run Code Online (Sandbox Code Playgroud)
我想要的世界上所有的东西都是不必手动添加分号并让它像我在第一个例子中所说的那样自动完成.
有任何想法吗?
Cra*_*der 82
无法自动插入,您需要使用完整语句操作(Ctrl+ Shift+ Enter).
您还需要检查|中是否启用了使用分号来终止语句选项 | | 标签.SettingsCode StyleJavaScriptOther
ric*_*cka 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
Run Code Online (Sandbox Code Playgroud)
来自https://gist.github.com/umidjons/9383758
如果可以选择自动执行,那将会更酷!
对于 IntelliJ Idea 2018,请按照以下步骤操作:
这将在 JS 中添加额外的分号。
小智 7
您可以自动让 webstorm 或 phpstorm 为您添加分号。
这是 webstorm 的方法:
首选项 --> 编辑器 --> 代码样式 --> Javascript --> 标点符号
在分号终止语句中,始终选择。
然后,无论何时格式化代码,使用快捷方式 OPTION+CMD+L 都会添加分号
您还可以将重新格式化配置为在保存时自动进行。这样分号总是会被添加。
我想做的事
我的目标是在当前行的末尾添加一个分号,同时将光标位置保持在行的中间.
例如
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
Run Code Online (Sandbox Code Playgroud)
我为什么要这样做
当我输入时,WebStorm很好地"完成"标点符号,即在我输入后({[',它会自动完成({[' <<cursor here>> ']}).我想确保我包括行末的分号,现在我做更多的打字之前,因为我以后可能会忘记.但是,添加分号后,我想继续在当前光标位置键入内容.我知道我可以使用自动完成在行的末尾添加一个分号,但这会将光标留在行尾,迫使我多次点击后箭头.此外,有时我的半完成行将不是正确的JavaScript语法,因此自动完成可能甚至不起作用.
为什么这么难
解决方案似乎很简单:编写一个简单的宏来跳转到行尾,键入一个分号,然后返回到我原来的位置.问题是,很难弄清楚如何诱使WebStorm返回原来的位置!我尝试设置书签,转到行尾,输入分号,然后返回到我的书签,但这不起作用,因为据我所知,书签只记住行,而不是列.我试着先在我当前的位置输入垃圾标记文本(例如xcursorx),进入行尾,输入一个分号,并做一个简单find的垃圾标记文本,但这不起作用,因为WebStorm的宏看起来不像通过将文本输入find例程来很好地发挥.我尝试首先键入垃圾标记文本,转到行尾,键入分号,使用Navigate/Last Edit Location和删除垃圾,但这也不起作用.
最终的工作原理
我按如下方式创建了一个宏(各个步骤中显示的键盘快捷键来自"Mac OS X 10.5+"键盘映射...使用适合您的设置的快捷键或菜单选项):
Edit > Macros > Start Macro Recording)Edit > Find > Find Word at Caret)(手动输入"xcursorx"时不要使用法线find)Edit > Find > Find Previous/Move to Previous Occurrenceshift或command-G); 这将选择".xcursorx"中的"xcursorx".Edit > Macros > Stop Macro Recording)Preferences > (scroll down to) Macros > place-semicolon-at-end-of-line > (right click) > Add Keyboard Shortcut...并输入你想要的快捷键,例如选项 - 分号)一些模糊步骤的解释
对于某些用例,并非所有上述步骤都是必需的.例如,在顶部使用的示例中,不需要添加额外的句点func([{''}]).但是,某些边缘情况需要额外的步骤,例如,如果光标已经在行的最后.
如何使用它
要使用宏,请从正常输入开始(在顶部的示例中,键入func([{'导致func([{''}])出现的内容),键入快捷键(例如选项 - 分号),分号将出现在行的末尾,但是光标将保持原样.
警告
这个解决方案有点像黑客,因为显示确实会在插入垃圾文本然后删除时跳转一点.但是,至少它有效.如果有人能够弄清楚如何在不需要垃圾标记文本的情况下实现相同的最终目标,那就太棒了.
| 归档时间: |
|
| 查看次数: |
18946 次 |
| 最近记录: |