沒有(文件)選項隱藏行號在文件中查找結果。爲了不復制行號,您需要仔細使用多項選擇來複制所有行並跳過數字,或者按照Danill在答案中提到的方式使用查找和替換。
然而,通過一些插件代碼,您可以通過崇高爲您完成繁重的工作而獲得兩全其美的好處。
例如,從菜單中選擇Tools > Developer > New Plugin...
,並用下面的python代碼替換緩衝區的內容,然後將其保存爲例如。 find_results_copy.py
。這需要在您的User
包中(名稱無關緊要,只有擴展名可以),但是如果使用菜單條目創建存根插件,Sublime應自動處理。
插件代碼修改爲使用單個正則表達式操作,該操作由於我最初通過兩個操作實現,而不是由於深夜放屁。 [/編輯]
import sublime
import sublime_plugin
import re
class FindResultsCopyCommand(sublime_plugin.ApplicationCommand):
def run(self):
sublime.active_window().run_command ("copy")
sublime.set_clipboard (re.sub (r"^\s*[0-9]+.", "",
sublime.get_clipboard(), flags=re.MULTILINE))
這實現了一個名爲find_results_copy
首先運行默認copy
命令,然後用正則表達式替換修改剪貼板中的內容扔掉的行號的新命令。
現在您可以實現自定義鍵綁定來調用此命令。由於我們只希望此命令在查找結果中觸發,因此您可以重新使用標準副本鍵盤快捷鍵,該快捷鍵已修改爲使用我們的新命令並添加了一個使其僅在查找結果中生效的上下文。
本示例使用Windows/Linux的鍵盤命令;如果您在Mac上使用super+c
而不是映射到該平臺的標準密鑰。
{"keys": ["ctrl+c"], "command": "find_results_copy", "context":
[
{ "key": "selector",
"operator": "equal",
"operand": "text.find-in-files",
"match_all": true
},
]
},
由於這個使用默認的複製命令,如果你有copy_with_empty_selection
打開,這將沒有行號的當前行復制,而你不必選擇任何東西,如果你已經習慣了工作的方式。
如果需要,您也可以複製此命令(你可以將它存儲在同一個文件),並重新命名類FindResultsCutCommand
和命令執行cut
(用適當的鍵綁定)也獲得對剪切文本的能力並刪除行號,如果你還需要這樣的事情。
@SidBiffi done;) –