说我有这个代码 body { margin: 0; padding: 0;}.navbar { margin: 0; padding: 0; background: rgba(0,0,0,0.1);}div {} 在div里面我想放线,’背景:rgba(0,0,0,0.1);’所以我可以从上面复制它.我想知道是否有办法复制
body { margin: 0; padding: 0; } .navbar { margin: 0; padding: 0; background: rgba(0,0,0,0.1); } div { }
在div里面我想放线,’背景: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 /下的python文件中(例如CopyLine.py)
你也可以为它定义一个快捷方式:
{ "keys": ["ctrl+shift+c"], "command": "prompt_copy_line"}
如果您对此有任何疑问,请询问.
PS:演示