2017-06-02 167 views
1

取代我在一個文件中的以下行我編輯在VSCode:查找和Visual Studio代碼

...............111.........111.............111..

我想0 s到全部更換.秒。然而,當我強調這一行,做一個查找/替換爲. S,所有. S上的文件被替換,而不僅僅是我有選擇,行的人,甚至當我在切換選擇「查找「按鈕。這是一個錯誤?在其他編輯器中,如果我選擇了一段文本然後執行查找/替換,它將只會查找/替換所選塊中的匹配項。

下面是你應該能夠重現該問題有一個片段。 ...............111.........111.............111..行位於test_unicode函數內。

def test_simple2(self): 
     """Simple CSV transduction test with empty fields, more complex idx, different pack_size. 

     100011000001000 -> 
     ..........111....................111..........11111..........111.. 
     """ 
     field_width_stream = pablo.BitStream(int('1000110001000001000', 2)) 
     idx_marker_stream = pablo.BitStream(int('11101', 2)) 
     pack_size = 4 
     target_format = TransductionTarget.JSON 
     csv_column_names = ["col1", "col2", "col3", "col4", "col5"] 

     pdep_marker_stream = pablo.BitStream(generate_pdep_stream(field_width_stream, 
                    idx_marker_stream, 
                    pack_size, target_format, 
                    csv_column_names)) 
     self.assertEqual(pdep_marker_stream.value, 63050402300395548) 

    def test_unicode(self): 
     """Non-ascii column names. 

     Using UTF8. Hard coded SON boilerplate byte size should remain the same, column name 
     boilerplate bytes should expand. 

     100010010000000 -> 
     2 + 4 + 9  2 + 4 + 6  2 + 4 + 7 
     ...............111.........111.............111.. 
     """ 
     field_width_stream = pablo.BitStream(int('100010001000', 2)) 
     idx_marker_stream = pablo.BitStream(1) 
     pack_size = 64 
     target_format = TransductionTarget.JSON 
     csv_column_names = ["한국어", "中文", "English"] 

     pdep_marker_stream = pablo.BitStream(generate_pdep_stream(field_width_stream, 
                    idx_marker_stream, 
                    pack_size, target_format, 
                    csv_column_names)) 
     self.assertEqual(pdep_marker_stream.value, 1879277596) 

我在Ubuntu 16.04使用VSCode 1.12.2。

回答

1

我能得到它的工作,但工作流程是窮人:

  1. CTR-H打開查找/替換
  2. 選擇文本的行
  3. 點擊「評選查找」右邊的圖標
  4. 輸入您的發現,並在其輸入替換字符
  5. 請點擊全部替換圖標

它可以工作,但您必須重新審閱每個新選擇的工作流程(當然CTR-H除外)。順便說一句,我在Sublime Text中有完全相同的行爲。

你能不能用正則表達式去找到你的線路?他們只包含。和1嗎?

+0

我可以在這種情況下,正則表達式做到這一點,但它似乎是大材小用。在一般情況下,我認爲一個更直接的查找/替換工具會很有用。我可能會在他們的git hub頁面上打開一個問題。 – Adam

+0

打開這個問題是個好主意。令我驚訝的是,VSCode和Sublime讓你跳過這些直接的任務。例如,你不能在我的答案中反轉上面的第3項和第4項 - 這看起來很容易出錯和沮喪。 – Mark

+0

問題已打開:https://github.com/Microsoft/vscode/issues/27083。如果他們解決問題,他們會發佈一個答案。 – Adam

1

從VSCode開發者:

與選擇打開 查找窗口小部件時,但它是太容易引發意外 併產生了很多投訴,我們用於自動啓用查找選擇。你可能想 集「editor.find.autoFindInSelection」:真,這將使其工作 你期望的方式。

VSCode GitHub issue有更多的細節,如果任何人有興趣。

編輯:autoFindInSelection選項可從VSCode 1.13開始。該版本目前正在開發中(截至2017年7月6日),所以此修補程序在新版本發佈之前無法使用。

+0

雖然這並不能解決問題......唯一的問題是,如果每次選擇一組新文本時連續執行F/R,則需要重新調整查找字段**以使其更改其集合*找到上下文*。 –