说我有这个代码
body {
margin: 0;
padding: 0;
}
.navbar {
margin: 0;
padding: 0;
background: rgba(0,0,0,0.1);
}
div {
}
在div内部,我要添加以下一行:“ background:rgba(0,0,0,0.1);” 所以我可以从上面复制它。我想知道是否有一种方法可以复制上面的行,而光标不必在那里复制并返回。我知道我可以快速地执行ctrl-c和ctrl-v的剪切和粘贴,但是我认为如果我能告诉sublime我想复制哪一行并将其插入到当前光标处,速度会更快。
是的,有可能。虽然您必须为此做一个插件。
我试图这样做,所以我并不是说这是有史以来最简单的方法,但是它可以工作。
这是代码片段:
import sublime_plugin
class PromptCopyLineCommand(sublime_plugin.TextCommand):
def run(self, edit):
# prompt fo the line # to copy
self.view.window().show_input_panel(
"Enter the line you want to copy: ",
'',
self.on_done, # on_done
None, # on_change
None # on_cancel
)
def on_done(self, numLine):
if not numLine.isnumeric():
# if input is not a number, prompt again
self.view.run_command('prompt_copy_line')
return
else:
numLine = int(numLine)
# NOL is the number of line in the file
NOL = self.view.rowcol(self.view.size())[0] + 1
# if the line # is not valid
# e.g. 0 or less, or more that the number of line in the file
if numLine < 1 or numLine > NOL:
# prompt again
self.view.run_command('prompt_copy_line')
else:
# retrieve the content of numLine
view = self.view
point = view.text_point(numLine-1, 0)
line = view.line(point)
line = view.substr(line)
# do the actual copy
self.view.run_command("copy_line", {"string": line})
class CopyLineCommand(sublime_plugin.TextCommand):
def run(self, edit, string):
# retrieve current offset
current_pos = self.view.sel()[0].begin()
# retrieve current line number
CL = self.view.rowcol(current_pos)[0]
# retrieve offset of the BOL
offset_BOL = self.view.text_point(CL, 0)
self.view.insert(edit, offset_BOL, string+'\n')
只需将其保存在Package/User/
(例如CopyLine.py
)下的python文件中,
您还可以为其定义快捷方式,如下所示:
{ "keys": ["ctrl+shift+c"], "command": "prompt_copy_line"}
如果对此有任何疑问,请询问。
PS:演示
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句