如何在Spyder中添加新行和键盘快捷键
问题描述
在使用其他编辑器时,大多数都有关于";换行符&的功能。 例如,Sublime文本,使用
Ctrl+Enter
无论光标是否在行尾,都可以直接输入新行。 检查完有关Spyder的所有设置后,对此一无所知。
因此,我想用
添加有关";新行";的新功能Ctrl+Enter
要在没有光标的情况下输入新行,需要移动到尾部
你有什么想法和我分享吗?谢谢。
解决方案
我只是一个Spyder用户,但是您可以自己添加这样的功能。为此,您需要修改文件codeeditor.py
,该文件在Windows中位于spyderlibwidgetssourcecodecodeeditor.py
下。
警告:在修改codeeditor.py文件之前对其进行备份。
您需要做的是修改从第2129行(在My Spyder 2.3.1中)开始的keyPressEvent
函数。
您将看到第一个条件之一负责按Enter/Return键:第2139行,if key in (Qt.Key_Enter, Qt.Key_Return):
ctrl+Enter
已被采用...因此,在不过多地修改选项的情况下,我将在这里为ctrl+shift+Enter
添加一个选项,该选项是免费使用的。这样可以吗?
因此,您要做的是在选项if not shift and not ctrl:
之后添加另一个按下Shift和Ctrl的选项;即,在我的示例中,我将在第2153行添加此选项,缩进以匹配if not shift and not ctrl:
行:
elif shift and ctrl: # Insert newline functionality
cursor = self.textCursor()
startpos = cursor.position() # Remember where the cursor is
self.stdkey_end(False, False) # Go to the end of the line
self.insert_text(self.get_line_separator()) # Add a newline
cursor.setPosition(startpos) # Go back to the initial position
self.setTextCursor(cursor)
现在关闭Spyder,然后重新打开它。在编辑器中尝试ctrl
+shift
+enter
组合,您应该会如您所愿,在所在行的正下方得到一个新行。
如果您不介意重新绑定或删除您自己的Spyder副本中的"Run cell"功能,您甚至可以玩玩并将此代码置于elif ctrl:
条件下,然后您将拥有与Sublime Text中一样的ctrl
+enter
绑定。
相关文章