热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PhpStorm:解决4个恼人问题的解决方案?-PhpStorm:anysolutionfor4annoyingproblems?

ImaratherhappyPhpStormuser,butthereareafewthingsthatreallyannoyme,butImnotaset

I'm a rather happy PhpStorm user, but there are a few things that really annoy me, but I'm not a settings expert and wish there is a solution for them (editing PHP files) :

我是一个相当开心的PhpStorm用户,但有一些事情真的让我烦恼,但我不是设置专家,并希望有一个解决方案(编辑PHP文件):

  • Navigation

Often in the editor, one want to go back to where the cursor was 100 lines above etc... And in PhpStorm Back Alt-Shift-Left and Forward Alt-Shift-Right do this - but they follow an algorithm that is beyond me: it definitely misses "steps" (e.g. from line 500 go to line 300 using keys like arrows or -even worse- page-up/down, then Alt-Shift-Left doesn't bring you back to line 500)

通常在编辑器中,人们想要回到光标位于上方等100行的位置......并且在PhpStorm中返回Alt-Shift-Left和Forward Alt-Shift-Right执行此操作 - 但它们遵循的算法超出了我的范围:它绝对错过了“步骤”(例如从第500行到第300行使用像箭头一样的键或者甚至更糟糕的页面向上/向下,然后Alt-Shift-Left不会让你回到第500行)

=> Is there a way to refine the conditions that drive the behavior of Back and Forward?

=>有没有办法改善驱动后退和前进行为的条件?

  • Indentation

Is there a way to refine the indentor behavior? For instance

有没有办法改进压痕行为?例如

  $a = array('X' => 'Something',
             'Y' => 'Something else',[RETURN]
  ^          ^
 now       there

like in Emacs the cursor would go there right under the first quote after the spaces (and not at now where PS goes)?

就像在Emacs中一样,光标会在空格后面的第一个引号下面(而不是现在PS的位置)?

=> Is a regexp (or something else) able to refine the behavior of the indentor, Not only for this very specific case but for the behavior in general?
(Not mentioning another problem when Shift-Inserting where the indent is often unreliable)

=>正则表达式(或其他东西)是否能够改进压缩器的行为,不仅对于这个非常具体的情况,而且对于一般的行为? (当缩进通常不可靠的Shift-Inserting时,没有提到另一个问题)

  • Quotes (automatic)

I don't want to disable the automatic quoting feature as it is sometimes convenient, but it seems the algorithm doesn't parse correctly the environment where the " or ' is inserted (don't have an example right now but at times it was annoying, like inserting 2 " unexpectedly while only one is required, deleting one will actually delete the 2 (normal because they were inserted automatically... but I needed 1 only!) so have in this case to trick PhpStorm to force a 1 ").

我不想禁用自动引用功能,因为它有时很方便,但似乎算法没有正确解析插入“或”的环境(现在没有示例,但有时它是令人讨厌,就像插入2“意外而只需要一个,删除一个将实际删除2(正常,因为他们被自动插入...但我只需要1!)所以在这种情况下,欺骗PhpStorm强制1” )。

=> Is there a regexp or similar to control the quoting behavior?

=>是否有正则表达式或类似的控制引用行为?

  • Select via Shift-Arrow (for instance, to delete...)
  • 通过Shift-Arrow选择(例如,删除...)

Almost forgot: PhpStorm remembers at which column the cursor is when navigating Up and Down. Fine. But when one want to select (using Shift and Up/Down Arrows) from beginning of line it is usually to select lines. Not a line-to-where-cursor-was-earlier. An example will explain better: * is where the cursor is [beginning of line 3], % is where the cursor was [middle of line 2]

几乎忘了:PhpStorm会记住在向上和向下导航时光标在哪一列。精细。但是当想要从行的开头选择(使用Shift和向上/向下箭头)时,通常选择行。不是一个行到哪里光标 - 更早。一个例子可以更好地解释:*是光标所在的位置[第3行的开头],%是光标所在的位置[第2行的中间]

 1.   $x = 'string';
 2.   $y = %'string';
 3.*

doing Shift-Up will select (all s)

做Shift-Up会选择(全部)

 1.   $x = 'string';
 2.   $y = *sssssssss
 3.

while in the specific case of a selection, it should select that:

而在选择的特定情况下,它应该选择:

 1.   $x = 'string';
 2.*sssssssssssssssss
 3.

not sure there is a way to configure that though - just in case there is?

不知道有没有办法配置,但以防万一?

Thanks

2 个解决方案

#1


2  

Oh well...

1) Is there a way to refine the conditions that drive the behavior of Back and Forward?

1)有没有办法改善推动后退和前进行为的条件?

No. Maybe (just maybe) it takes into consideration what you were doing at that location (even if you done nothing, then maybe how long the pause was). But mainly it looks at editing activity, navigation events (jump to declaration/implementation etc).

不。也许(只是可能)它考虑到你在那个地方做了什么(即使你什么也没做,那么也许停顿多久)。但主要是它关注编辑活动,导航事件(跳转到声明/实现等)。


2) Is a regexp (or something else) able to refine the behavior of the indentor, Not only for this very specific case but for the behavior in general?

2)正则表达式(或其他东西)是否能够改进压缩器的行为,不仅对于这个非常具体的情况,而且对于一般的行为?

RegEx -- definitely no. This question is not clear for me anyway -- are you talking about formatting or navigation? If first -- then all currently existing settings are in "Settings | Code Style". If second -- then check "Settings | Editor | Smart keys" -- maybe they will help.

RegEx - 绝对没有。无论如何,这个问题对我来说还不清楚 - 你在谈论格式化还是导航?如果是 - 那么所有当前存在的设置都在“设置|代码样式”中。如果第二 - 然后检查“设置|编辑|智能键” - 也许他们会帮助。

Otherwise -- please record some screencast/bunch of screenshots for current and desired behaviour and submit it as a new ticket to the Issue Tracker: http://youtrack.jetbrains.com/issues/WI

否则 - 请为当前和期望的行为记录一些截屏/一组截图,并将其作为新票提交给问题跟踪器:http://youtrack.jetbrains.com/issues/WI


3) Is there a regexp or similar to control the quoting behavior?

3)是否有正则表达式或类似控制引用行为?

No. You explanation is not clear enough. I suggest the same as for #2 -- get a code example and submit it as a new ticket to the Issue Tracker: http://youtrack.jetbrains.com/issues/WI . This way it may gets implemented/fixed for next version

不,你的解释不够明确。我建议和#2一样 - 获取代码示例并将其作为新票据提交给问题跟踪器:http://youtrack.jetbrains.com/issues/WI。这样它可以为下一版本实现/修复


4) not sure there is a way to configure that though - just in case there is?

4)不确定是否有办法配置 - 尽管有以下情况?

Don't know. I'm also facing this usability issue and would like to know workaround. The way I'm using it -- pressing "Home" before (or during/after) making the selection (not ideal "solution" as it is still annoying to do so, but works). Alternatively you can use mouse to select the lines (use it over editor gutter area -- where the line numbers are).

不知道。我也面临这个可用性问题,想知道解决方法。我正在使用它的方式 - 在选择之前(或期间/之后)按“Home”(不是理想的“解决方案”,因为它仍然很烦人,但是有效)。或者,您可以使用鼠标选择线条(在编辑装订线区域使用它 - 行号在哪里)。

If selection is to just delete/duplicate the line -- then there are shortcuts just for that.

如果选择只是删除/复制该行 - 那么只有快捷方式。

#2


2  

Regarding quotes, in cases when you just want the one quote, hit del instead of backspace after typing ".

关于引号,如果您只想要一个引号,请在输入后按“del”而不是“退格”。

I've some qualms about the indentation (and code (re)formatting in general) too, but it's that it changes from release to release, there's not much you can do about it though...

我对缩进(以及一般的代码(重新)格式化)也有一些疑虑,但它是从发行版到发行版的变化,尽管如此,你可以做的并不多。

Re: selection - in your case you can just hit Home while still holding shift. It never even registered to me as unexpected behavior.

回复:选择 - 在你的情况下,你可以在仍然保持班次时击中Home。它甚至从未向我注册为意外行为。


推荐阅读
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在HTML布局中,即使将 `top: 0%` 和 `left: 0%` 设置为元素的定位属性,浏览器中仍然会出现空白填充。这个问题通常与默认的浏览器样式、盒模型或父元素的定位方式有关。为了消除这些空白,可以考虑重置浏览器的默认样式,确保父元素的定位方式正确,并检查是否有其他CSS规则影响了元素的位置。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 优化后的标题:Apache Cassandra数据写入操作详解
    本文详细解析了 Apache Cassandra 中的数据写入操作,重点介绍了 INSERT 命令的使用方法。该命令主要用于将数据插入到指定表的列中,其基本语法为 `INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...)`。通过具体的示例和应用场景,文章深入探讨了如何高效地执行数据写入操作,以提升系统的性能和可靠性。 ... [详细]
  • 在什么情况下MySQL的可重复读隔离级别会导致幻读现象? ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • C# 中 SQLite 报错:在 "\\s\\" 附近出现语法错误,如何解决? ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
author-avatar
昆哥2502852107
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有