如何在没有换行符的情况下在 Sublime 中复制行

How to copy line in Sublime without new line

提问人:IGRACH 提问时间:8/25/2022 更新时间:8/26/2022 访问量:277

问:

在 Sublime 中,当您没有选择任何内容并单击时,您将使用新行复制整行。如何删除该新行,因此将仅复制当前行。ctrl+cctrl+c

我在 Windows 上使用 Sublime。

Windows SublimeText3 SublimeText2 SublimeText

评论


答:

1赞 OdatNurd 8/26/2022 #1

当未选择任何内容时(除了完全关闭该功能),没有直接设置对行的副本产生这种影响,但您仍然可以实现这一点。

一种是创建一个宏,该宏选择整行,但末尾没有换行符,然后执行(或者如果您也希望它以这种方式工作),然后绑定宏的键和/或执行宏(如果选择为空)。copycutcopycut

可以在以下位置找到示例:如何复制没有行尾字符的行

这肯定会起作用,但它确实具有更改选择以包含整行的效果,这至少将光标的位置从它所在的位置更改为行的末尾。

如果这是不可取的,那么前进的方向是一个插件,它调整剪贴板操作以不包含换行符。

这方面的一个例子是:

import sublime
import sublime_plugin


class ExtendedEmptyCopyPasteEventListener(sublime_plugin.EventListener):
    """
    Every time the cut or copy commands are executed in a file while all of the
    selections are empty, trim away the trailing newlines on the copied lines.
    """
    def on_post_text_command(self, view, cmd, args):
        # If copy or cut was just executed and every selection in the view was
        # empty, trigger our logic.
        if cmd in ("copy", "cut") and all([len(s) == 0 for s in view.sel()]):
            text = sublime.get_clipboard().split('\n')
            sublime.set_clipboard("\n".join([t for t in text if t != ""]))

此插件侦听 or 操作完成,然后,如果所有选择都为空,则调整 剪贴板,使其不在任何复制行的末尾包含换行符。copycut

如果您不确定如何设置插件,请参阅有关如何在 Sublime Text 中使用插件的 YouTube 视频(免责声明:由我创建)。

评论

0赞 IGRACH 8/26/2022
但是如何将该插头添加到键盘快捷键中呢?
1赞 OdatNurd 8/26/2022
@IGRACH你没有;一旦你把它放到位,它就会自动调整你进行的任何剪切和复制操作,而无需你做任何其他事情。