華文網

visual studio如虎添翼篇,乾貨滿滿,錯過後悔!

visual studio號稱開發界的第一神器,那是必須。但是它的隱藏的功能,你都知道了嗎?如果不敢拍心口,那請花那麼幾分鐘上廁所的時間看一下,以後絕對能節省你N多寶貴的時間!如果你用不著,

請轉 給您的朋友哦!

比較兩個代碼檔

這裡的對比是不需要通過TFS,而且這種比較是不僅於同一個代碼檔的不同版本。

我們首先安裝一個名為File Differ的vs外掛程式,完成後重新啟動visual studio,然後在solution explorer中點擊選擇要比較的兩個檔(按ctrl後分別按一下不同的檔),右鍵之後選擇[Compare Files],

如下圖:

選擇兩個需進行對比的代碼檔

代碼檔對比結果

如果你不喜歡裝外掛程式,你可以直接調用vs自帶的命令列工具(Tools.DiffFiles),

上面提及的外掛程式實際上也是調用該工具的:

使用Tools.DiffFiles比較

當然如果你需要更專業的比較工具,可以使用beyond compare,但這已經不在visual studio的範圍,所以我暫且不作介紹了。

複製單行代碼

一般我們複製或刪除一行代碼時,都會先把整行代碼選上,然後再按ctrl+c複製或del鍵刪除。

其實不用這麼麻煩,我們只在要把游標定位於目標行,複製時就用ctrl+c,刪除時就用ctrl+x即可

複製 -- 選擇好整個代碼行先複製

複製 -- 將滑鼠置於要複製的行,再直接ctrl+c

刪除 -- 將滑鼠置於要刪除的行,再直接ctrl+x

自動引入命名空間

將游標置於類名稱後,使用ctrl+. (ctrl和英文句號),如果按後無反應,請這樣試試:按住ctrl鍵不放,然後再按逗號鍵,釋放 逗號鍵,再按.(英文句號)

文本編輯利器

使用vim,sublime,sed行編輯器等的請忽略。

先說一下我的情況,我有一個txt檔,裡面有幾百個email,每個email占一行。我現在需要在資料庫查一查它們是否存在,我大概的sql類似於select * from person where email in ('223@qq.com', '3423adf342@163.com', 'csfd@gmial.com')。

in子句裡面是幾百個類似於'xxx@xx.com',這樣的用雙引號包含著的email,然後再跟一個逗號。

但問題是,我的email列表是下麵這樣子的:

每行代表一個email的txt檔(只顯示部分email)

我們只要在vs中打開該txt檔,然後按ctrl+h調出替換框,使用正則替換即可:

使用正則替換

替換成功

之後我們將最後一個逗號刪除,然後複製到sql中的in子句裡面就行了。

這裡我簡單講一下我使用的email正則表則式是(^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+),大家不必在意該運算式是否準確。但請注意我在規則運算式頭尾加上了括弧,表示我要捕獲整個匹配email(捕獲組的概念請自行百度一下),之後這個被捕獲的email會被賦值給$1變數,這個是特殊變數,表示是從最外層數起的第一對括弧,同理$2表示最外層數起的第二對括弧。

所以替換規則 '$1',的作用就相當於在email兩端加上引號,然後末尾再加上逗號。

當然啦,你可以舉一反三,把它當成一個簡化版的sed文本行工具即可。

另:習慣于vim的同學可以安裝一個叫做VsVim的外掛程式,同樣可以實現一樣的功能。

無限增加查找結果

visual studio的搜索結果顯示框一直只有兩個,但我們經常需要同時搜索N多的關鍵字,例如我在要整個解決方案下查找包含TimeSpan.ParseExact,OutputDataReceived,ffmpegExePath,OpenFileDialog的代碼行。但在預設情況下你只能查找其中的兩個,如果要查找另一個,上一次的查找結果就會沒了,要重新查找一遍才行。

在Find Results 1中查找 "TimeSpan.ParseExact" 的結果

在Find Results 2中查找 "OutputDataReceived" 的結果

其實,查找結果是可以一直疊加在一個查找結果顯示窗內的,我們只要在查找時,將Append results項勾上即可

下圖是在同一個查找結果顯示窗(Find Results 1)中同時顯示4個搜索結果的截圖:

查找解決方案以外的文件

選擇要查找的資料夾

定位到要搜索的資料夾

輸入要查找的內容

查找結果顯示

將你的代碼塊保存到工具箱

假如你有一塊代碼,以後會頻繁在多個項目中使用(每次使用都要加以小小的修改,所以並沒有打包成dll)。只要選中該代碼塊,然後直接拖動到vs的工具箱中,之後使用時在工具箱中複製一下即可

自動將json和xml格式生成一個類定義(class)

新建一個cs檔,將json資料複製到檔內的任意位置,選中複製的資料,右鍵選擇一下複製,然後依次點擊[Edit > Paste Sepcial > Paste JSON As Classes]

選中要匹配的json資料

生成的C#類型

將xml匹配成一個C#類型也是同樣的原理,我就不一一提及了。

另:將json匹配成C#類型,也可以直接通過下面的這個網址線上匹配:http://json2csharp.com/

將整塊代碼上下移動

如果要將某塊代碼向上移動幾行,我們首先想到的操作肯定是 選擇該代碼塊->剪切->定位到要粘貼的位置->粘貼這樣子。對於追求效率的同學,我們在選中該代碼塊後,可以直接按alt+上下箭頭 進行上下移動即可

移動整個代碼塊

快速選擇一個代碼區域

這裡說的代碼區域類似於C#語法上的作用域的概念,可以簡單地理解為{}這樣的區域。要選擇這樣的代碼區域,只要將游標置於{或}的前面或者後面,然後按ctrl+shift+]即可選中

其它大家都熟知的簡單的技巧例如查找方法定義、條件中斷點、快速鍵之類我就不一一講解了(太費時間了),有時間再下回分解。

附:

File Differ

https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileDiffer

Vs Vim

https://marketplace.visualstudio.com/items?itemName=JaredParMSFT.VsVim

每行代表一個email的txt檔(只顯示部分email)

我們只要在vs中打開該txt檔,然後按ctrl+h調出替換框,使用正則替換即可:

使用正則替換

替換成功

之後我們將最後一個逗號刪除,然後複製到sql中的in子句裡面就行了。

這裡我簡單講一下我使用的email正則表則式是(^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+),大家不必在意該運算式是否準確。但請注意我在規則運算式頭尾加上了括弧,表示我要捕獲整個匹配email(捕獲組的概念請自行百度一下),之後這個被捕獲的email會被賦值給$1變數,這個是特殊變數,表示是從最外層數起的第一對括弧,同理$2表示最外層數起的第二對括弧。

所以替換規則 '$1',的作用就相當於在email兩端加上引號,然後末尾再加上逗號。

當然啦,你可以舉一反三,把它當成一個簡化版的sed文本行工具即可。

另:習慣于vim的同學可以安裝一個叫做VsVim的外掛程式,同樣可以實現一樣的功能。

無限增加查找結果

visual studio的搜索結果顯示框一直只有兩個,但我們經常需要同時搜索N多的關鍵字,例如我在要整個解決方案下查找包含TimeSpan.ParseExact,OutputDataReceived,ffmpegExePath,OpenFileDialog的代碼行。但在預設情況下你只能查找其中的兩個,如果要查找另一個,上一次的查找結果就會沒了,要重新查找一遍才行。

在Find Results 1中查找 "TimeSpan.ParseExact" 的結果

在Find Results 2中查找 "OutputDataReceived" 的結果

其實,查找結果是可以一直疊加在一個查找結果顯示窗內的,我們只要在查找時,將Append results項勾上即可

下圖是在同一個查找結果顯示窗(Find Results 1)中同時顯示4個搜索結果的截圖:

查找解決方案以外的文件

選擇要查找的資料夾

定位到要搜索的資料夾

輸入要查找的內容

查找結果顯示

將你的代碼塊保存到工具箱

假如你有一塊代碼,以後會頻繁在多個項目中使用(每次使用都要加以小小的修改,所以並沒有打包成dll)。只要選中該代碼塊,然後直接拖動到vs的工具箱中,之後使用時在工具箱中複製一下即可

自動將json和xml格式生成一個類定義(class)

新建一個cs檔,將json資料複製到檔內的任意位置,選中複製的資料,右鍵選擇一下複製,然後依次點擊[Edit > Paste Sepcial > Paste JSON As Classes]

選中要匹配的json資料

生成的C#類型

將xml匹配成一個C#類型也是同樣的原理,我就不一一提及了。

另:將json匹配成C#類型,也可以直接通過下面的這個網址線上匹配:http://json2csharp.com/

將整塊代碼上下移動

如果要將某塊代碼向上移動幾行,我們首先想到的操作肯定是 選擇該代碼塊->剪切->定位到要粘貼的位置->粘貼這樣子。對於追求效率的同學,我們在選中該代碼塊後,可以直接按alt+上下箭頭 進行上下移動即可

移動整個代碼塊

快速選擇一個代碼區域

這裡說的代碼區域類似於C#語法上的作用域的概念,可以簡單地理解為{}這樣的區域。要選擇這樣的代碼區域,只要將游標置於{或}的前面或者後面,然後按ctrl+shift+]即可選中

其它大家都熟知的簡單的技巧例如查找方法定義、條件中斷點、快速鍵之類我就不一一講解了(太費時間了),有時間再下回分解。

附:

File Differ

https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileDiffer

Vs Vim

https://marketplace.visualstudio.com/items?itemName=JaredParMSFT.VsVim