天天看點

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

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

visual studio程式員箴言

縱觀本書,您會看到我反複測試我最喜歡的功能。但我可以肯定地說,沒有什麼其他功能比編輯器更能讓我想要擁有。編輯器是每個人一直都要使用的功能,我怎麼會不想測試它并揭示它的秘密呢?

第1章重點講述了适用于任意檔案類型(甚至是純文字檔案)的基本編輯技巧。本章着重強調的是針對任意語言檔案的基本編碼技巧。在此,您将了解到關于microsoft intellisense、大綱顯示和代碼段的技巧。

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

本節講述了編碼時應該知道的技巧。這些技巧包括選擇代碼的額外方式,注釋代碼的鍵盤快捷鍵,設定代碼格式的快速途徑等。

除了标準的滑鼠拖動之外,還有很多方法可以選擇代碼。

技巧2.1 使用編輯器中的塊/列選擇

編輯器提供了兩種不同的選擇模型:流和塊。還有行選擇,但這隻會出現在brief模拟中(參見技巧2.15,了解關于編輯器模拟的更多資訊)。

流選擇的方法是用shift+方向鍵,這已經為所有人所熟知。但是塊選擇允許同時手動選擇列和行。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

隻要按shift+alt+方向鍵,您很快就能體驗到塊選擇的便捷。選擇文本時,還可以在按住alt鍵的情況下使用滑鼠進行塊選擇。剪切、複制、粘貼等操作仍然有效,但要記住開始選擇文本的位置。切記一定要完整地測試這項功能。

技巧2.2 按esc鍵時跳轉到所選文本的開始處

我希望這條技巧的标題準确地表達了它要表達的意思。意思是選擇一些文本,然後按esc鍵,此時您想讓光标處于什麼位置?

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

如果想讓光标位置保持不變,這就是預設的行為。但如果想讓它跳轉到所選文本的開始處(即選擇定位點),可選擇菜單“工具”→“選項”→“文本編輯器”→“正常”,然後選擇“按esc鍵後轉到選擇定位點”。

技巧2.3 使用ctrl+=鍵選擇從目前光标位置到最後一個傳回标記之間的所有代碼

參見技巧1.16,了解關于傳回标記的更多資訊。

用于選擇從目前光标位置到最後一個傳回标記之間所有代碼的鍵盤快捷鍵是ctrl+=,相應指令是編輯.選擇退回到上一項。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

在上圖中,我把光标放到了public class1行的末尾,然後在大約往下7行的位置上單擊滑鼠左鍵,以便留下一個傳回标記。然後我按ctrl+=鍵選擇到上一個傳回标記的所有文本。

技巧2.4 在編輯器中交換目前的定位點位置

ctrl+k、ctrl+a鍵将交換目前的定位點位置。

作者旁述

交換前的光标位置。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

交換後的光标位置。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

現在您已經知道如何快速選擇代碼,是以可以通過鍵盤快捷鍵快速地注釋或取消注釋標明的行。

技巧2.5 使用鍵盤快捷鍵快速注釋和取消注釋代碼

這真的很簡單,不是嗎?

使用ctrl+k、ctrl+c鍵注釋代碼,使用ctrl+k、ctrl+u鍵取消注釋代碼。所有預設的開發設定都将已将這些指令綁定到這些鍵盤快捷鍵上。

在“編輯”→“進階”菜單下可以找到這些指令,如下所示。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

進行剪切和粘貼操作時可以進行更多控制,無論是從web站點上剪切代碼然後将其粘貼到編輯器中,還是粘貼到您最喜歡的部落格編輯器中。本節内容講述了針對特定語言,根據需要快速設定代碼格式的多種方式。

技巧2.6 在編輯器中顯示導引線以幫助您設定代碼格式

在我的部落格上,最受歡迎的技巧就是有關導引線的。我認為它如此受歡迎的原因是,它曾是我多年前推出的關于microsoft visual studio的首批技巧之一。我在部落格上發表的這篇文章曾讓很多人對我表示感謝,但是當一位偶遇的開發人員在走廊上攔住我表示感謝,因為他編寫了這個功能,這将走廊裡的會話提升到了一個新的層面。在我寫出這個技巧之前的很多年,他就已經轉向visual studio的另一個領域了,是以他非常激動能看到他編寫的功能獲得了公衆的注意。我認為對于任何開發人員,最困難的事情之一是讓花時間寫出的功能能夠得到使用者的認可。

重要

要啟用分隔線功能,需要修改系統資料庫設定。您必須清楚,使用導線所帶來的風險全部由您自己承擔,并且隻有在您可熟練修改系統資料庫的情況下才應該這樣做。修改系統資料庫後需要重新啟動visual studio,修改才能生效。

通路系統資料庫hkey_current_usersoftwaremicrosoftvisualstudiotext editor。

建立一個名為guides的字元串值(rg_sz)鍵。

鍵值的格式是rbg(x,y,z) n1,…,n13,其中的x,y,z是色值,而n是列數。最多能有13條導線。例如,rbg(255,0,0) 5,20将在第5列和第20列顯示兩條紅色的導引線,如下圖所示。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

技巧2.7 設定文檔、標明的文本或者隻是目前行的格式

您是否遇到過曾經在編輯器内輸入内容時,出于某些原因導緻文本在行上沒有像預想的那樣正确縮進?此時無需在每行文本上手動按backspace或tab鍵,而隻要按ctrl+k、ctrl+d鍵,這将執行設定文檔的格式指令。

對于較大的檔案,您可能隻想選擇沒有正确對齊的區域,并使用ctrl+k、ctrl+f鍵。這個鍵盤快捷鍵可以在沒有選擇任何内容時,設定目前行的格式。

這些指令都可在“編輯”→“進階”菜單下找到。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

技巧2.8 保留制表符或者插入空格

這條技巧和技巧2.9是我最不喜歡測試的功能。要弄清楚何時應該插入制表符,何時光标應該移動到正确的格式化位置,諸如此類的問題簡直讓我發瘋。現在我在代碼中隻使用空格。

選擇菜單“工具”→“選項”→“文本編輯器”→“<語言>”→“制表符”,可以在使用制表符和插入空格之間進行切換。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

注意,可以在“文本編輯器”→“所有語言”頁面上針對所有語言設定這項功能,但使用者一般隻會針對每種單獨的語言進行設定。

技巧2.9 将空格轉換為制表符和将制表符轉換為空格

涉及将空格轉換為制表符和将制表符轉換為空格的指令一共有4個。頭兩條指令可以在“編輯”→“進階”菜單下找到。

将標明行中的空格替換為制表符:将包含標明内容的行中的空格替換為制表符。

将標明行中的制表符替換為空格:将包含標明内容的行中的制表符替換為空格。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

注意

microsoft visual basic不支援“編輯”→“進階”菜單下的這兩條指令。

最後兩條指令在“編輯”菜單下找不到,但可以通過綁定鍵盤快捷鍵,或者手動添加到“編輯”菜單或“文本編輯器”工具欄上進行使用。

編輯.将制表符轉換為空格:将標明的制表符轉換為空格。

編輯.将空格轉換為制表符:将標明的空格轉換為制表符。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

注意,必須取消選中“工具”→“選項”→“文本編輯器”→“basic”→“vb專用”→“整齊排列代碼(重新格式化)”,才能使用“編輯.将制表符轉換為空格”和“編輯.将空格轉換為制表符”。

技巧2.10 從文本編輯器工具欄上增加或減少行縮進

此技巧不在我的“每日一貼”系列之内,但也有它的用武之地。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

標明一行或多行時,可以使用“增加縮進”或“減少縮進”指令,這兩條指令可以在文本編輯器工具欄或“編輯”→“進階”菜單下找到(但在菜單中它們分别稱為“增加行縮進”和“減少行縮進”。

技巧2.11 智能縮進與塊縮進之間有什麼差別

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

假設想在代碼中按enter鍵或上下方向鍵時光标都能正确縮進,那麼應選擇智能縮進。例如,建立一個名為method1()的新方法,然後按enter鍵時。您會注意到光标本身自動進行了縮進。如果繼續按enter鍵,光标将會保持縮進。并非所有語言都支援這種智能縮進,但是如果您使用的語言支援,這應該是該語言的預設設定。

塊縮進類似于文檔編輯器。以visual basic為例,差別在于當您輸入method1()然後按enter鍵時,隻有第一個新行會自動縮進。接下來的新行将會把光标置于第0列。

選擇“無”将不會縮進任何新行,此時必須手動縮進所有内容。

控制大綱顯示,無論是想快速折疊或展開代碼,還是完全删除代碼時都應如此。

技巧2.12 折疊和展開代碼

共有5條指令用于大綱切換,這些指令可以在“編輯”→“大綱顯示”菜單下找到。

切換大綱顯示展開

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

在代碼塊内的任意位置按ctrl+m、ctrl+m鍵,便可在折疊指定代碼塊(如下圖所示)。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

和展開它之間切換(如下圖所示)。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

切換所有大綱顯示

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

在編輯器内的任意位置按ctrl+m、ctrl+l鍵,便可在折疊和展開整個檔案之間切換。

完全折疊後如下圖所示。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

完全展開後:

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

停止大綱顯示

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

在編輯器内的任意位置按ctrl+m、ctrl+p鍵,即可關閉大綱顯示。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

啟動自動大綱顯示

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

不幸的是,啟動和停止大綱顯示并不是同一條指令,是以無法在一種狀态和另一種狀态之間進行切換。另外,使用正常開發設定時,啟動大綱顯示并未綁定有鍵盤快捷鍵。是以需要選擇菜單“編輯”→“大綱顯示”→“啟動自動大綱顯示”才能再次打開大綱顯示。

折疊到定義

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

我認為“折疊到定義”是所有大綱顯示指令中最有用的一個(主要原因在于它是我用過的唯一一個,除了我必須測試其他指令的時候)。使用這條指令可以快速檢視所有函數。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

技巧2.13 剪切并粘貼一個折疊的代碼塊

您可以剪切并粘貼一個折疊起來的代碼塊,同時保持其中的代碼不變。當然,這個功能可能就是您想要的,但我從未想過要去嘗試使用。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

将一個代碼塊折疊起來之後,代碼行的右側就會出現像上圖所示的效果,此時選擇這個代碼塊并剪切,或者以自己最喜歡的剪切行方式将這一行剪切,然後将光标移到目的位置并粘貼。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

注意,代碼在粘貼的時候會自動展開。

這條技巧背後的思路是使用者想要快速剪切并粘貼整個函數,但是函數很長。您可以使用前一條技巧中所講的方法(就是使用ctrl+m、ctrl+m鍵在展開和折疊代碼塊之間切換)把函數折疊為僅顯示函數名。然後按ctrl+l鍵剪切目前行。現在您可以把函數粘貼到任何地方。

技巧2.14 在不關閉大綱顯示的情況下隐藏大綱顯示(標明内容的邊距)

選擇菜單“工具”→“選項”→“文本編輯器”→“正常”,然後取消選中“標明内容的邊距”。盡管用于訓示代碼塊的左邊距不見了,但大綱顯示仍然起作用。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

有一次參加麻省大學的夏季研究計劃時,我十分幸運,整個夏天裡我每天都能使用gnu emacs。我之是以使用“幸運”這個詞,是因為5年後,我要努力回想關于emacs我所知的一切,以便在visual studio中測試emacs編輯器模拟。

我測試過的其他模拟還有brief。對于brief我以前并沒有多少經驗,是以我主動參加了一個速成課程。幸運的是,visual studio大樓裡有人曾經用過brief,他讓我學會了很多東西,并幫我解決了不少問題。然而,這意味着我不得不學習三組不同的鍵盤快捷鍵!我決定輪流學習編輯器模拟,一周集中在emacs上,下一周集中在brief上,然後再花上健康檢查的一周學習預設的編輯器。這讓我的肌肉記憶變得十分混亂。

但是不要誤會我的意思,測試編輯器模拟是測試人員找到很難發現的bug的天堂。現在我當程式經理也有一些年頭了,通過讓開發人員和程式經理清楚如何處理我找出的所有bug,我對于他們的做法了如指掌。但它仍然是一門樂事。

技巧2.15 啟用emacs和brief編輯器模拟

在visual studio 2005中,我們在編輯器中引入了emacs和brief模拟。

通路菜單“工具”→“選項”→“環境”→“鍵盤”,然後打開“應用以下其他鍵盤映射方案”清單。然後選擇brief或emacs。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

要傳回到标準編輯器,隻要選擇“(預設值)”即可。

可以使用二進制編輯器編輯任何資源,隻要您願意以逐位的方式編輯它。是的,這個冷笑話完全是我自己想出來的。

技巧2.16 在二進制編輯器内打開内容

我首次在編輯器測試台中看到這個測試用例時,心裡在想,“喔,我已經打開“打開檔案”對話框一千遍了,以前怎麼從未見過這個選項。”

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

要使用二進制編輯器,請執行以下步驟。

1.選擇菜單“檔案”→“打開檔案”;

2.單擊“打開”按鈕上的下拉箭頭,或者在鍵盤上按下方向鍵;

3.選擇“二進制編輯器”,然後單擊“确定”或“打開”(這取決于visual studio的版本)。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

是否需要進行快速的可視檢查,以確定代碼行的正确對齊?如果是,可以使用“自動突出顯示分隔符”和“大括号比對”功能來提供可視化線索。

技巧2.17 “自動突出顯示分隔符”選項的功能是什麼

老實地講,我不得不到處問人才知道這個選項的作用,我就是記不住。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

隻要存在代碼構造對(這是文檔給它們取的名稱),結束輸入對的開始或結束部分時,兩對單詞都會變為粗體。要關閉這項功能,可選擇菜單“工具”→“選項”→“文本編輯器”→“正常”,然後取消選中“自動突出顯示分隔符”。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

可以自定義變為粗體的顔色,方法是選擇“工具”→“選項”→“環境”→“字型和顔色”,然後選擇“大括号比對(突出顯示)”。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

現在,#if和#endif變為粗體時顯示為紅色。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

技巧2.18 改變大括号比對的顔色

可以修改大括号比對的顔色,方法是選擇菜單“工具”→“選項”→“環境”→“字型和顔色”,選擇“括号比對(方括号)”,然後将這個選項設為想要的顔色。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

現在大括号的比對将會以新的突出顯示顔色進行顯示。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

我喜歡淺綠色,這肯定是因為西雅圖長達9個月的灰蒙蒙的天氣所導緻的。

c#提供幾種用于控制using語句的有趣功能。

技巧2.19 移除未使用的using語句

c#中的選項可用于移除所有未使用的using語句。如果要反複使用某種類型的模闆,此選項特别有用。不必注釋掉每一行,編譯,看編譯是否成功,然後删除或者取消注釋行,而隻要打開編輯器上下文菜單(隻要在編輯器内右鍵單擊即可),然後選擇“組織using”→“移除未使用的using”。這将為您完成所有困難的工作。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

visual studio提供自動恢複功能,可以在遭遇意外關機、電源故障等情況下避免損失,繼續工作。

技巧2.20 在意外關機時visual studio自動恢複檔案

測試小組的成員往往會跟負責測試自動恢複功能的測試人員開玩笑說,每次大樓裡出現停電故障(由于飓風或其他類似原因),他就會站在處于關閉位置的紅色大開關旁邊,臉上露出一絲微笑,因為大樓裡的每個人又能義務為他測試功能了。

選擇菜單“工具”→“選項”→“環境”就可找到“自動恢複”頁面。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

注意,如果取消選中“儲存自動恢複資訊的時間間隔”複選框,就表示停止使用自動恢複功能。

頁面餘下部分的作用不言自明,但是您知道visual studio把這些自動恢複的檔案儲存在什麼地方嗎?它們的儲存目錄是my documentsvisual studio<版本>backup files<項目名稱>。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

萬一您從未見過自動恢複對話框(很有可能),下圖就是。意外關機後,下次再運作visual studio時就會彈出此對話框。您可以選擇使用備份檔案還是忽略它們。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

如果需要編輯使用不同檔案擴充名的源代碼檔案,最好仍然能夠使用文法突出顯示功能。

技巧2.21 針對指定檔案擴充名支援文法突出顯示功能

在“工具”→“選項”→“文本編輯器”→“檔案擴充名”頁面上,可以将一種檔案擴充名映射給一個已存在的編輯器。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

将.sara擴充名映射給c#編輯器後,現在對于這種檔案我們可實作文法突出顯示。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

此外還有一個選項,用于将無擴充名的檔案映射到特定編輯器。

《Visual Studio程式員箴言》---- 第2章 讓編輯器的使用得心應手 2.1 進階編輯

繼續閱讀