【问题标题】:Stop PyCharm's Autocomplete from Overwriting Code in front of my Cursor阻止 PyCharm 的自动完成覆盖光标前的代码
【发布时间】:2013-10-27 18:41:35
【问题描述】:

我正在使用 PyCharm 编写一些 python 代码,并注意到我经常遇到以下问题:

我这样写一行代码

for item in myList:

后来,我意识到我也想要item的索引,所以我试着把那行变成这样:

for i,item in enumerate(myList):

为了把第一行变成第二行,我把光标放在item的左边,然后输入i,。然后,我将光标放在myList 的左侧并输入enu;此时,代码完成者建议我可能想要输入enumerate,这正是我所追求的行为。当我点击 tab 来实现建议的enumerate 时,我注意到我的行变成了

for i,item in enumerate:

myList 已被覆盖!
我期望的行为是这样的:

for i,item in enumerate(myList):

光标位于myList: 的右侧。

有什么方法可以让 Pycharm 的行为符合我的期望?

以防万一,我的开发环境是 Mac OSX 10.7.5 (Lion)

【问题讨论】:

标签: python pycharm code-completion


【解决方案1】:

当您使用 Tab 完成时,此行为是设计使然。请使用 Enter 而不是 Tab 来插入完成变体而不是覆盖。

代码完成设置对话框还可以通过键入点、空格等来插入变体。

【讨论】:

  • 这个!覆盖让我发疯。谢谢。
  • 有没有办法可以交换这些行为?
  • @canyon289 There is! 这让我发疯了很久,我只是花时间寻找某种解决方案。
【解决方案2】:

这是 PyCharm 中的默认行为,如果您在连接到另一个单词(如 en|myList)时按 TAB,那么 myList 将被删除。

可以做的是这样,双击myList,按CRTL+ALT+T,按 ENTER,然后按 。然后只需输入enumerate

如果你经常这样做,那么你可以制作一个环绕的实时模板。

【讨论】:

  • a live template that surrounds 的想法对我很有吸引力。我该如何制作这样一个实时模板来覆盖默认的 [TAB] 行为?另外,我在 Mac 上(问题已更新),CTRL+ALT+T 不起作用(CMD+ALT+T 也不起作用)。类似的 Mac 键盘快捷键是什么?
  • @inspectorG4dget 如果您遇到任何问题,请邀请我到聊天室或其他地方,我们可以解决问题。
  • 我刚刚创建了一个chat room,希望您能提供意见
猜你喜欢
  • 2017-07-21
  • 2014-07-07
  • 2015-03-05
  • 1970-01-01
  • 2021-10-28
  • 2015-06-26
  • 1970-01-01
  • 2017-09-24
  • 2012-02-17
相关资源
最近更新 更多