使用其他编辑器时,大多数编辑器都有关于" new line"的功能。 例如,Sublime Text,使用
Ctrl +输入
直接输入新行,无论光标是否在行尾。 检查了所有关于Spyder的设置后,对此一无所知。
因此我想添加关于"新线"的新功能。与
Ctrl +输入
要输入新行而不需要光标移动到尾部
你有什么想法可以与我分享吗?谢谢。
答案 0 :(得分:2)
我只是一个Spyder用户,但是您可以自己添加这样的功能。为此,您需要修改文件codeeditor.py
,该文件在Windows中位于\spyderlib\widgets\sourcecode\codeeditor.py
。
您需要做的是修改从第2129行开始的keyPressEvent
函数(在我的Spyder 2.3.1中)。
您会看到第一个条件之一负责输入/返回按键:第2139行,if key in (Qt.Key_Enter, Qt.Key_Return):
选项ctrl+Enter
已经被采用了...所以如果不对选项造成太多影响,我只想在这里添加ctrl+shift+Enter
的选项,可以免费使用。这个可以吗?
所以你要做的是在选项if not shift and not ctrl:
之后添加,按下shift和control的另一个选项;即在我的情况下,我会在第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
组合,您应该根据需要在您所在的行下方获得一个新行。
如果你不介意重新绑定或删除" Run cell"您自己的Spyder副本中的功能,您甚至可以在elif ctrl:
条件下使用此代码,然后您就像在Sublime中一样拥有ctrl
+ enter
绑定文本。
答案 1 :(得分:0)
如果你想继续写新行(将光标移到那里)而不是只添加一行并将光标保持在原位,只需忽略接受答案中的相关行:
elif shift and ctrl: # Insert newline functionality
cursor = self.textCursor()
# startpos = cursor.position() # optional
self.stdkey_end(False, False) # Go to the end of the line
self.insert_text(self.get_line_separenter code hereator()) # Add a newline
# cursor.setPosition(startpos) # optional
# self.setTextCursor(cursor) # optional
我将对此做一个拉取请求,因为我猜其他许多人也可以从这个键绑定中获利。谢谢你的回答。
答案 2 :(得分:0)
一种帮助您的简单方法: 使用右移键作为End + Enter
首先:sudo apt-get install xdotool
在设置中,打开键盘并添加自定义快捷方式
名称:换行
命令:xdotool键结束KP_Enter
然后单击“禁用”并键入R_shift键
现在您可以使用右移来实现您想要的!