是否有任何方法,插件,宏或其他东西使Sublime Text 3自动选择刚刚粘贴的文字?
我需要复制并粘贴一些JSON数据,但粘贴的文本永远不会与周围的文本一致。粘贴和缩进功能无法正常工作。
什么是重要功能,但它需要我选择一个文本块并按热键。因此,粘贴之后我会因为自动选择刚刚粘贴的文本块而受益,所以我可以按下reindent热键来正确缩进我粘贴的内容。
此外,如果我可以将整个过程绑定到热键,那就更好了,所以:
*所以基本上我想做一个键绑定,比方说,ctrl + shift + b来做以下事情:
答案 0 :(得分:3)
您可以创建一个插件来执行此操作,并使用键绑定执行它:
import sublime
import sublime_plugin
class PasteAndReindentCommand(sublime_plugin.TextCommand):
def run(self, edit):
before_selections = [sel for sel in self.view.sel()]
self.view.run_command('paste')
after_selections = [sel for sel in self.view.sel()]
new_selections = list()
delta = 0
for before, after in zip(before_selections, after_selections):
new = sublime.Region(before.begin() + delta, after.end())
delta = after.end() - before.end()
new_selections.append(new)
self.view.sel().clear()
self.view.sel().add_all(new_selections)
self.view.run_command('reindent')
Packages/User/
)中,如paste_and_reindent.py
{ "keys": ["ctrl+shift+b"], "command": "paste_and_reindent" },
请注意, Ctrl + Shift + B 将替换" Build With"的默认绑定。
工作原理:
reindent
命令您可以通过对再注册之前和之后的选择进行另一次比较,然后再次清除选择(通过将文本插入符重新定位到选择的结尾 - 即粘贴后的默认行为)。
答案 1 :(得分:0)
在MacOS上,您可以添加:
"find_selected_text": true
到Sublime Text->偏好设置 - >设置(用户设置视图)