---
# System prepended metadata

title: 軟體配置

---

# 軟體配置
本文記錄幾個我個人慣用開發軟體的常用套件、指令等，下方指令皆為 Windows 版本

## Google Chrome專題
### 常用套件、插件－從 Chrome web store 下載
Type Sample：馬上知道瀏覽網頁文字字體及大小，可以直接以書籤形式使用
Dimensions：知道網頁中元素的距離
Pesticide for chrome：可了解原始網頁元素分布情況
wappalyzer：可以知道網站使用哪些語言框架，紅色符號才能用
JSONview：分析JSON檔結構
Vue.js Devtools：檢視Vue內容的console
windows resizer：自由設定瀏覽模式及大小

### Chrome 線上應用程式
web server for chrome：創造本地網頁伺服器，需要載入資料夾

本機伺服器－127.0.0.1

勾選下方Accessible on local network、also on Internet後關閉再開啟，可產生192.168.1.102供同路由器下(同網域)其他人讀取

### Chrome dev tool
可在這邊測試完CSS、JS再貼進編輯器

#### Element
主要看HTML、CSS，也可觀察元素上綁定的JS EventListener事件
右鍵breakon設定DOM事件斷點(到該事件執行前會暫停，用/source看)

#### Network
可選擇頻寬，分別顯示載入檔案數量及種類，最好都在 3 秒內完成載入
盡量少用自動播放動畫以維持效能

#### Console
可直接測試JS碼、協助除錯
　`console.dir`可見所有屬性方法，沒被所有瀏覽器支援
　`console.table`可用表格方式成內容
　`console.time(var)`、`console.timeEnd(var)`兩命令相加可知執行var所需時間

##### 錯誤類型
RHS Right-hand side右側變數取值 如`console.log(ad)`、`var man = ming`，執行時才出現錯誤

LHS Left-hand side左側變數賦值 如`var answer = 6` 出錯表示左邊沒辦法被賦值，編譯過程就會出錯
本機伺服器有錯誤不修正就會卡住該點，下面的程式都無法運行

#### Source
可觀察JS部屬到執行過程、EventListener事件、設定斷點(先不要執行該行)，即時修改並儲存

載入後要重新整理才能使用，不行就先暫停再重整
 
##### 右邊或下方工具列
Pause/resume script execution－F8 進到下一個斷點
Step over next function call－F10  依程式運作邏輯向下一步(不進函式)，不管斷點
Step into next function－F11 依運作邏輯向下一步(進函式)，不管斷點
Step out of current function－Shift + F11 依運作邏輯跳出現今函式，進入下個命令
Step－F9 依實際程式運作邏輯向下一步(進函式)不管斷點
最後藍色暫停鍵/pause on exceptions表示以錯誤時為斷點

Watch監測特定變數變化
Call stack、Scope觀察執行堆疊及作用域
xhr breakpoint 可以設定關鍵字、留空就是監視各種相關事件、也可用於查詢使用api

#### Performance
可先錄製動作後進行分析
FPS (每秒畫面禎數) 1 秒 50-60 較為流暢
下面 summary 可觀察 scripting(運行程式)、rendering(排版)、painting(繪製)

#### Memory
可於錄製後分析記憶體用量，function、log都會使用，如果資料沒人參考就會釋放

## VSCode專題
### 指令
開啟檔案－Ctrl + p
關閉檔案－Ctrl + w
關閉所有檔案－Ctrl + K Ctrl + w 

#### 檢視：
開關 Sidebar(檔案總管列出檔案處)－Ctrl + b
Sidebar切到檔案總管－Ctrl+Shift+e
Sidebar切到延伸模組－Ctrl+Shift+x
　@builtin顯示內建延伸模組
開關 Panel底欄狀態列－Ctrl+j
主控台－Ctrl+~(ESC下方鍵)可叫出終端機
游標跳轉到頁頭－Ctrl + Home 
游標跳轉到頁尾－Ctrl + End
展開區域代碼－Ctrl + Shift + ]
折疊區域代碼－Ctrl + Shift + [
 
切換編輯器－Ctrl+PageUp、Down

//#region ... //#endregion可創造自選摺疊範圍

#### 選取：
選取同字元－Ctrl+d每次向後選一個，其後可用Ctrl+左右在內容和tag間調整游標位置，
　Ctrl+Shift+l一次全選同字元

F2－選取並更改專案中特定函式、以及由此函式生的建構instance，例如下面book1
```
function Book1(title, author) {
  this.title = title;
  this.author = author;
}
new Book1("War of the Worlds", "H G Wells");
```

Alt+Shift+右－向右從tag增加選取內容(或相反)，依序為單字、用連字號-或_連接的字、一個變數、括號1、括號2、一行內的全命令、一行全命令連縮排、全選
Alt+Shift+Ctrl+方向鍵－一次一個字元的選取

壓住滑鼠中鍵拖曳－垂直選取特定範圍
Alt+Ctrl+上下、Alt+Click以增加游標數

#### 內容：
減少縮排－Shift+Tab
整理排版－Alt+Shift+f
開上方新行－Ctrl+Shift+Enter
開下方新行－Ctrl+Enter
同指令開新行複製貼上－Alt + Shift + 上下
　剪下貼上整行只要游標在同行上就可進行
特定行指令上下搬動－Alt+上下
刪除一整行－Ctrl+Shift+k

將某行改為註解－Ctrl+/
　塊區域註釋－Shift + Alt + A 

加入資料型別檢查－檔案中加入 // @ts-check

切換語言－Ctrl+Shift+p開啟套件主控台→輸入display language

檢查各插件使用記憶體－Ctrl+Shift+p開啟套件主控台→輸入Developer: Open Process Explorer

#### VSCode設定專題
打開設定－Ctrl+, 設定模式有json文字跟GUI圖形兩種，又可分全域跟工作區兩種

全域在settings.json中設定以下命令可增加emmet縮寫支援
```
"emmet.includeLanguages": {
  "javascript": "javascriptreact",
  "vue-html": "html",
  "plaintext": "jade"
},
"emmet.triggerExpansionOnTab": true,
```

工作區則先點工作區再開啟settings.json

#### VSCode自訂snippet專題
使用者設定→設定→使用者程式碼片段→新增全域程式碼片段
設定`"editor.snippetSuggestions": "top"`, 把自訂snippet放到建議列表前端
　　`"editor.TabCompletion": true`, Tab自動轉換不用等
`${1:預設已輸文字}、${2|one,two選項|}`為參數概念，可一次改變所在位置內容，可用Tab切換
$0表示游標最後位置，亦可用Tab到達

此prefix指令可設定多組呼叫關鍵字
```
"add Copyright notice": {
　"prefix": [ "header", "stub", "copyright"],
　"body": [...]
}
```

#### 搜尋：
在單檔中搜尋－Ctrl+f
搜尋專案資料夾內各檔案－Ctrl+Shift+f

在單檔中取代－Ctrl+h

搜尋取代時可用regex，萬用字元為(.+?)，被替代的字元依序為$1、$2
  [abc] 字元集合(a、b或z)
  [^abc] 負值字元集合 (任何字元, 除了abc)
  ^ 匹配字串的開始
  $ 匹配字串的結束
  \b 匹配單詞的開始或結束
  {n} 重複n次
  {n,} 重複n次或更多次
  {n,m} 重複n到m次
  {n,m}? 重複n到m次，但儘可能少重複
  {n,}? 重複n次以上，但儘可能少重複

### 套件、插件
#### 已安裝
indent rainbow可用於辨別indent
Bracket pair colorizer增加大括號物件標示
git lens補充git功能
Code Spell checker檢查拼字
favorites製作檔案書籤
AutoFileName自動補完檔名
Auto Rename Tag多數情況下同時修改開頭跟結尾標籤，特別是對齊後的(但很慢...)
Path IntelliSense自動補完路徑
vetur標示vue物件及自動排版整個檔案
  `<script lang="ts">`自行設定使用語言
  "vetur.format.options.TabSize": 2,
  "vetur.format.options.useTabs": false 可被格式化繼承，但會被.prettierrc和.eslintrc.js覆蓋

Prettier - Code formatter格式器、排版，安裝後記得設定editor.defaultFormatter

Preview on Web Server建立本地伺服器，用vscode會即時更新
　Ctrl+Shift+l可以瀏覽器開啟目前工作
  Ctrl+Shift+v透過side panel開啟目前工作
  Ctrl+Shift+r重啟伺服器，只能在command palette使用
  Ctrl+Shift+s關閉伺服器，只能在command palette使用
  Ctrl+Shift+u顯示UI頁面，可在UI頁面調整各種功能選項
不能用可以更換為ritwickdey.LiveServer

#### 未安裝
project manager製作專案書籤
Copy Relative Path按右鍵複製相對路徑
Regex Previewer預覽Regex
change-case轉換命名風格

#### 次要插件
polacode轉程式碼為圖片，選取程式碼後按Ctrl+Shift+p輸入pola即會輸出檔案
vscode-pdf用VSCODE讀PDF檔
excel viewer對檔案按右鍵開啟

#### 插件相關指令
cmd+Shift+p 輸入 config recommend ，會在專案下建立 .vscode/extensinos.json
把擴充工具ID放入可以透過@recommended推薦給團隊

#### 參考插件
Material Icon Theme - pkief.material-icon-theme
Material Theme - equinusocio.vsc-material-theme
Cobalt2 Theme Official - wesbos.theme-cobalt2
advanced-new-file - patbenatar.advanced-new-file
Markdown All in One - yzhang.markdown-all-in-one
jumpy - wmaurer.vscode-jumpy-CSS指令自動帶入各種prefix

## Sublime專題
Goto/Goto anything主要處理檔案路徑style.css :98表示第98行Ctrl+p
Goto/Goto Symbol .p表示特定selector @可總覽所有selector Ctrl+r

Edit/text/insert line before Ctrl+Shift+Enter
Edit/text/insert line after Ctrl+Enter

該行文字直接轉為註解 Ctrl+?
選取同字串 Ctrl+d

開啟套件主控台 Ctrl+Shift+p

### 套件及指令
HTML/CS/JS prettify----Ctrl+Shift+h程式碼自動對齊
colorpicker----Ctrl+Shift+c叫出調色盤
Color Highlight可在色碼、顏色名稱底下顯示該顏色
AutoFileName自動補完檔名

## Emmet專題
當右下角為html時，輸入!再按Tab會跑出html基本指令
輸入link:css再按Tab可帶入CSS檔案連結指令
輸入p*3等tag後再按Tab會長出三個<p></p>
輸入ul>li再按Tab會自動帶入<ul><li>>意為前包後 +意為接續
Tab#id Tab.class1.class2再按Tab可自動帶入屬性，如果沒打Tab部分則會自動帶入div
$可用於替代序列性數字、$$表示01-99、$@3表示從3開始、$@-3表示反向數字從3開始
表示長度時px不用打、p代表percent
lorem可自動輸入假字以供檢視樣式，lorem3表示只要三個字，lorem*3表示3倍的假文
tag[attri=XX]{文字內容}
包裝：選取文本後叫出主控台，再輸入div>ul>li*|t
    沒*號表示用一行，剩下會被*填滿、|t可刪除1、1.序數
