2016-11-10 44 views
5

我沒有一個找到所有的項目目錄,我得到了以下結果:崇高3:選擇文本沒有行號(從找到的結果)

/home/yusuf/Downloads/concept/concept/css/style.css: 
    234 position: relative; 
    235 } 
    236: .scrolled .fh5co-nav { 
    237 background: #fff; 
    238 padding: 10px 0; 
    ... 
    241 box-shadow: 0px 5px 7px -7px rgba(0, 0, 0, 0.15); 
    242 } 
    243: .scrolled .fh5co-nav a { 
    244 color: #000; 
    245 } 

如何選擇沒有行號的文本?有沒有辦法在搜索結果中隱藏行號?我想選擇代碼並將其粘貼到別的地方。

回答

3

沒有(文件)選項隱藏行號在文件中查找結果。爲了不復制行號,您需要仔細使用多項選擇來複制所有行並跳過數字,或者按照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(用適當的鍵綁定)也獲得對剪切文本的能力並刪除行號,如果你還需要這樣的事情。

5

最簡單的方法是打開 「查找&替換」(˚F在OS X上,按Ctrl^h Windows/Linux上),並輸入以下選項(正則表達式模式,找到^\s+[0-9]+ ,更換空)

Sublime Text screenshot

+0

@SidBiffi done;) –

2

在搜索結果中雙擊任意生成的文件路徑或TXT字符串打開原始文件從複製。