天天看點

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

本節書摘來自異步社群《visual studio程式員箴言》一書中的第1章,第1節,作者: 【美】sara for,譯者: 謝俊 , 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

visual studio程式員箴言

microsoft visual studio中的性能改進是從編輯器開始的。無論是輸入代碼、編輯代碼還是删除代碼,除了純粹的輸入,無需執行其他的操作了。把這些技巧當作一個儲錢罐,在其中存入多餘的零錢。即使這些技巧當中的一些隻能夠為您省下短短的幾秒鐘時間,這幾秒鐘也能積少成多,變為幾天、幾周和幾個月。省出這麼長的時間用于消遣不是很好嗎?

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。

無論是編寫c#代碼還是編輯純文字檔案,都可以使用一些基本技巧來改善編輯體驗。

經過一段時間,開發人員對如何執行某些任務會形成“肌肉記憶”,即使有更加高效的方式,我們也會按照與以前類似的方式去做。例如,考慮删除檔案中的目前文本行。您的第一反應可能是按home鍵,然後是shift+end鍵,再然後按delete鍵。顯然,這個按鍵序列可以達到目的,而且由于肌肉記憶的原因,您甚至都不需要考慮去查找相應的鍵盤快捷鍵。但如果隻需要按兩次鍵就能完成同樣的操作,就能夠省下一兩秒時間(如果不小心按了錯誤的鍵,則要花費更多時間)。盡管當時看起來能省下的時間寥寥無幾,但如果需要不斷删除文本行,累積下來也頗為可觀。

技巧1.1 避免意外複制一個空白行

作者旁述

我曾經遇到過這樣的事情,我本來是想在一個空白行上按ctrl+v鍵的,但卻誤按了ctrl+c鍵。我也不知道為什麼這麼做。結果是我複制了一個空白行,抹掉了我想要粘貼在此的内容。而且令我沮喪的是,我按了ctrl+v卻是徒勞。事實上,有時候我已經意識到自己不小心按了ctrl+c鍵,是以我盡可能快地按ctrl+v,以為我可以在速度上超過編輯器。但我每次都是輸家。

我在“工具”→“選項”→“文本編輯器”→“所有語言”→“正常”中找到了一個選項,可以讓自己避免這種沮喪。有一個複選框叫做“沒有標明内容時對空行應用剪切或複制指令”。隻要取消選中該選項,以後在空白行上按ctrl+c鍵時就不會丢失剪貼闆上的内容。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

技巧1.2 通過剪貼闆環來循環粘貼不同内容

對于我來說,這是另一個會讓我大呼“為什麼我就沒想起這個技巧呢?它可以讓我節省很多時間啊!真是的!”的技巧。同樣,每次我想起這條技巧時,感覺就像是收到了郵寄來的一個小禮物。

隻要按ctrl+shift+v鍵,便可在過去剪切或複制到剪貼闆上的20條内容間進行循環粘貼。很酷吧?

為了舉例說明,我們假定有兩行調用console.writeline()方法的代碼,需要交換兩個字元串的位置,如下所示:

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

首先剪切兩個字元串:先是“world”,然後是“hello”。現在來到第一處調用console.writeline()的位置。隻要光标在括号内時按ctrl+shift+v鍵,代碼就會發生如下變化。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

下面移到第二處調用console.writeline()的位置,然後在這一行中按ctrl+shift+v鍵兩次,結果如下所示。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

在剪貼闆中循環之前最多可以儲存20項内容,意味着20項以後将回到仍然記錄在剪貼闆上的第一項内容。這正是該功能叫做剪貼闆環的原因。

技巧1.3 使用ctrl+enter組合鍵在上方插入一行,使用ctrl+shift+enter組合鍵在下方插入一行

在下面的例子中,注意光标位置在目前行的中間。按ctrl+enter鍵将在目前行的上方插入一個空白行,按ctrl+shift+enter鍵将在目前行的下方插入一個空白行。光标将移到新行的開始處。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

技巧1.4 使用ctrl+w組合鍵選擇目前單詞

在一個單詞上的任意位置處按ctrl+w鍵可以選中整個單詞。甚至将光标放在單詞的末尾,也可用光标選中目前單詞(不會選中光标前面的空格)。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

如果光标位于一些空白的中間,而這些空白由兩個或多個空格組成,整個空白處将會被選中。

技巧1.5 使用ctrl+delete組合鍵删除下一個單詞,使用ctrl+backspace組合鍵删除前一個單詞

我在“每日一貼”中的很多主意都是檢視老的測試用例得來的。ctrl+delete測試用例吸引了我,因為我已經完全忘記了這個鍵盤快捷鍵!

ctrl+delete鍵将删除編輯器找到的下一個單詞。指令是編輯.字删除直至結尾處。

ctrl+backspace鍵将删除前一個單詞。指令是編輯.字删除直至開始處。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

技巧1.6 使用ctrl+l組合鍵剪切目前行,使用ctrl+shift+l組合鍵删除目前行

ctrl+l鍵将剪切目前行,包括行末(eol)字元。指令是編輯.剪切行。

ctrl+shift+l鍵将删除目前行,包括eol字元。指令是編輯.删除行。

下面是使用ctrl+l鍵的一個例子。在這個例子中,光标位于console.writeline()調用之前。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

按ctrl+l鍵之後,該行消失。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

但讓我們繼續了解一個額外的技巧:如果在目前行上沒有選中任何内容,shift+delete鍵将剪切目前行,包括eol。如果選中了文本,shift+delete鍵隻會剪切選中的文本。

技巧1.7 删除一行開頭的水準空白

我始終認為“空白”是一個單詞,但在visual studio ui中,它顯然是兩個單詞。為了這個技巧,我隻好服從ui,并稱之為“空白”。

在“編輯”→“進階”菜單中,可以找到“删除水準空白”指令,該指令的快捷鍵是ctrl+k,ctrl+。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

要使用這個指令,将光标放在文本行之前空白中的任意地方,然後按ctrl+k,ctrl+鍵。還可以選擇多行并删除每一行開頭的空白。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

技巧1.8 将代碼或文本拖動到新位置

我往往更喜歡用鍵盤,這很可能是因為我太懶,不願意去伸手去碰滑鼠。當我第一次看見這項功能時,我很驚喜,因為它并非我能夠直覺想像得到的,而當“哦,我以前從未見過”的新鮮感逐漸消失後,它當然也是很有意義的。

按住滑鼠左鍵,然後把光标拖到目的位置,這樣可以選中要移動的代碼塊。要将代碼複制到新的位置,按住ctrl鍵。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

印象還不夠深刻?還可以把代碼拖到另一個檔案中。把代碼向上拖動到所需的檔案頁籤上,如下圖所示。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

雖然會出現“無法放置”光針,但是編輯器仍會切換到該檔案。然後隻要将光标移到該檔案中,就可在此看到正常“拖放”指針。好好利用這項功能吧!

技巧1.9 右鍵拖動代碼可将代碼移動或複制到某處

這個技巧的想法是由一位部落格讀者送出的。我根本不知道這個菜單項的存在。

選擇一行代碼,然後使用滑鼠右鍵把這行代碼拖動到編輯器(或另一個編輯器視窗)中的任意地方。然後就會出現下面這個小菜單,它提供了“移到此處”、“複制到此處”和“取消”3個選項。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

我喜歡部落格讀者給我提供這樣的小技巧,特别是當我一點不知道它們的存在時。這個技巧激發我開始玩“難住sara”的遊戲,遊戲内容是我要求部落格讀者把他們最隐晦的ide技巧發給我。因為我的工作隻與visual studio core team有關,是以技巧必須限制為不與任意特定語言相關的通用ide功能。

技巧1.10 在編輯器中調換字元、單詞和行的順序

有3個指令可以調換或交換編輯器中的文本,它們是:

按ctrl+t鍵可以調換字元;

按ctrl+shift+t鍵可以調換單詞;

按alt+shift+t鍵可以調換行。

在下面的例子中(光标位于注釋行“now is the time”中的“is”之前),我将分别應用上述3條指令來示範如何交換文本。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

按ctrl+t鍵交換“i”和前面的空格,結果是“// nowi s the time”。

按ctrl+t+shift+t鍵交換“is”和“the”,結果是“// now the is time”。

按alt+shift+t鍵交換目前行與它下面的行。

技巧1.11 在編輯器中使用鍵盤快捷鍵來改變單詞的大小寫

這個技巧再次證明了使用鍵盤快捷鍵比必須手動輸入修改内容更能節省時間。

按ctrl+shift+u鍵可以把目前字元或選中字元變為大寫。

按ctrl+u鍵可以把目前字元或選中字元變為小寫。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

在此老實講,我不得不圍繞visual studio構造提出疑問,進而找出這些指令在什麼條件下有用。一種情況是caps lock鍵被綁定為控制鍵。例如,您輸入一個單詞,然後按ctrl+shift+左方向鍵進行選擇,再使用ctrl+shift+u鍵将選中文本轉換為大寫(而不必按住shift鍵輸入整個單詞)。也許是intellisense功能讓我變懶了。

在文本編輯器工具欄上,可以找到“撤銷”和“重複”兩個按鈕。但如果仔細看,可以看到一個下拉箭頭,這表示這些按鈕實際上是下拉式控件,可以顯示最後一次撤銷和重複操作的内容。

技巧1.12 使用标準工具欄上的撤銷堆棧

要撤銷或重複多個指令,不一定非得按ctrl+z或ctrl+y鍵,而可以打開“撤銷”或“重複”按鈕的下拉内容,從最後一次操作開始,選擇要撤銷或重複的多個連續性操作。

《Visual Studio程式員箴言》----第1章 回顧編輯器的基礎知識 1.1 基本編輯

隻要保證光标位于文本編輯器内,這些按鈕就會變為可用。

繼續閱讀