敢不敢使用純鍵盤碼代碼?

前言

不敢說單純使用鍵盤碼代碼的效率會比鍵盤鼠標結合高多少倍,可是這個過程絕對讓你感受倍爽。雖然過程很累,須要記住那麼多組合按鍵,可是一旦熟練以後你必定會感謝如今努力的本身。html

本篇文章以Vscode + Vim + iTerm的碼代碼的方式來總結,其餘編輯器的能夠自行搜索。vim

一、Vim的使用

既然說是純鍵盤了,那麼你就須要使用按鍵去替換鼠標的移動和各類跳轉。app

1.一、移動快捷鍵

下面介紹的是一些基本按鍵:編輯器

  1. 上下左右移動:kjhl
  2. 會了上下左右的移動,咱們想快速移動呢?
    1. w快速移動到光標所在單詞的下一個單詞詞首(W也是快速單詞跳轉,不過是以空格爲分隔符)
    2. e快速移動到光標所在單詞的詞尾或下一個單詞詞尾(E也是類同於W)
    3. b快速移動到光標所在單詞的詞首或上一個單詞的詞首(B也是類同於W)
    4. $ 快速移動到行尾
    5. 0快速移動到行首(含空格)
    6. ^快速移動到行首非空格的字符
    7. f+任意字符快速跳到所在行指定的任意字符(向前搜索)
    8. t+任意字符快速跳到所在行指定任意字符的前一個字符(向前搜索)
    9. F+任意字符快速跳到所在行指定的任意字符(向後搜索)
    10. T+任意字符快速跳到所在行指定任意字符的前一個字符(向後搜索)
    11. Space逐個字母移動
    12. Shift+*能夠快速向下查找光標聚焦的單詞
    13. Shift+#能夠快速向上查找光標聚焦的單詞
  3. 會了行上的快速移動,如今想要文件內部的快速移動呢?
    1. Ctrl+f快速翻到下一頁(f表示的單詞應該是forward)
    2. Ctrl+b快速翻到上一頁(b表示的單詞應該是back)
    3. Ctrl+d快速向下翻動半頁
    4. Ctrl+u快速向上翻動半頁
    5. G快速到達文章末尾
    6. gg快速到達文章開頭
    7. H快速到屏幕的首行(等價於單詞Head)
    8. M快速到屏幕的中間行(等價於單詞Middle)
    9. L快速到屏幕的最後一行(等價於單詞Low)
    10. Enter光標向下移動
  4. 會了文件內部的快速移動,項目內代碼的移動呢?
    1. Ctrl+]快速跳轉到定義處
    2. Ctrl+o回到以前跳轉的地方
  5. 若是我想閱讀代碼,有更好的方式嗎?
    1. Ctrl+e能夠逐行下滾
    2. Ctrl+y能夠逐行上滾
    3. zt能夠將光標所在行直接置爲首行(t應該爲top)
    4. zz能夠將光標所在行直接置爲屏幕中間行
    5. zb能夠將光標所在行直接置爲屏幕末尾行(b應該爲bottom)
  6. 若是我想找某個單詞呢? 在Normal模式下以/開頭,輸入你想查找的單詞,而後回車,vim就會幫你定位到匹配中的單詞,以後nN即是查找下一個查找上一個的意思。

1.二、在Normal模式下快速編輯

  1. x/X能夠向前或者向後刪除單詞
  2. dd剪切當前行
  3. dw從光標處剪切到下一個單詞詞首以前(包含空格),這種組合鍵實際上是將各自按鍵的結果組合起來,因此很好記
  4. de從光標處剪切到下一個單詞詞首以前(不包含空格)
  5. 以此類推,d剪切鍵還能夠和$0lGBHML等按鍵合做,再也不贅述
  6. yy複製當前行
  7. yd也是同樣,能夠和各類按鍵合做,好比想複製光標出後4個單詞,能夠y4l就好了。
  8. p在光標所在行的下一行粘貼剪切板的東西,P反之在上一行粘貼。
  9. J將光標所在行與下一行的數據結合成同一行
  10. Ctrl+r恢復上一步被撤銷的操做
  11. .重複最近一次所作的編輯操做
  12. r替換光標所在字符
  13. R替換從光標處開始多個字符
  14. xp快速交換單詞

1.三、編輯模式

  1. i在光標所在位置進入編輯模式
  2. a在光標所在位置的後一個字符進入編輯模式
  3. o在光標所在行的下一行進入編輯模式
  4. O在光標所在行的上一行進入編輯模式
  5. A在光標所在行的結尾處進入編輯模式
  6. I在光標所在行的行首處進入編輯模式
  7. c剪切光標所在行以後進入編輯模式,光標仍留在當前行
  8. s剪切光標聚焦的單詞並進入編輯模式
  9. ~將光標所在位置的字符進行變動大小寫
  10. gu將光標所在位置的字符變成小寫
  11. Gu將光標所在位置的字符變成大寫

1.4 Virtual模式

  1. v命令進入的字符可視化模式(Characterwise visual mode)。文本選擇是以字符爲單位的。
  2. V命令進入的行可視化模式(Linewise visual mode)。文本選擇是以行爲單位的。
  3. Ctrl-V進入的塊可視化模式(Blockwise visual mode)。能夠選擇一個矩形內的文本。
  4. vis選中一個句子
  5. vip選中一個段落

...更多搭配能夠自由隨心組合^_^函數

1.五、文件的保存

在Normal模式下,文件保存的操做以下:spa

  1. :w:保存編輯後的文件內容,但不退出vim編輯器。這個命令的做用是把內存緩衝區中的數據寫到啓動vim時指定的文件中。
  2. :w!:強制寫文件,即強制覆蓋原有文件。若是原有文件的訪問權限不容許寫入文件,例如,原有的文件爲只讀文件,則可以使用這個命令強制寫入。可是,這種命令用法僅當用戶是文件的屬主時才適用,而超級用戶則不受此限制。
  3. :wq:保存文件內容後退出vim編輯器。
  4. :wq!:強制保存文件內容後退出vim編輯器
  5. ZZ:使用ZZ命令時,若是文件已經作過編輯處理,則把內存緩衝區中的數據寫到啓動vim時指定的文件中,而後退出vim編輯器。不然只是退出vim而已。注意,ZZ命令前面無需加冒號「:」,也無需按Enter鍵。
  6. :q:在未作任何編輯處理而準備退出vim時,可使用此命令
  7. :q!:強制退出vim編輯器,放棄編輯處理的結

1.六、高級操做

1. 快速選中光標所在單詞後複製(剪切)調試

viwy => 進入虛擬行模式後選取單詞接着複製操做code

*在虛擬行模式下,`a`和`i`再也不是以前咱們認爲的append和insert。咱們先認識一個概念:`Text-Object`,它能夠指一個單詞,一整句文本,抑或一對括號內的文本,甚至是html或xml標籤內的文本。`a`會選擇一個對象(object)包括空格在內,而`i`只會選擇對象的內部,不包含空格。*
複製代碼

2. 快速替換多個相同的單詞orm

除了使用%s以外,還有另一種快速替換的方式: 先在Normal Mode下搜索你想替換的單詞:/+你想替換的單詞,以後回車光標聚焦在你的單詞之下,而後cgn,就稱爲Insert Mode,而且光標聚焦的選中單詞被刪除,你就能夠編輯這個單詞爲新單詞,以後Esc鍵返回Normal Mode,而後使用.就能夠將以前搜索選中的全部單詞一個個替換掉。(超級好用的一個高級操做) 3. 由於有以前對i的介紹,咱們能夠將i組合出一些比較牛逼的操做: 1. ci('/"/(/[/{/<): ci按鍵和各類符號組合能夠快速剪切符號內部的內容並進入編輯模式 2. di('/"/(/[/{/<): di的操做也是相似,只是不會進入編輯模式 3. yi('/"/(/[/{/<): yi的操做則是直接複製 4. vi('/"/(/[/{/<): vi的操做是選中,後續操做看本身輸入的命令cdn

**Note**
**你們從中能夠看到這種規律:`ci/di/yi/vi`開頭的按鍵能夠和各類位置操做相關的按鍵(好比`w`/`e`/`b`等)組合,達到快速編輯的目的。因此Vim並非全無規律可言**
複製代碼

4. 快速註釋代碼行的操做

光標跳到你想註釋的代碼行,而後Ctrl+V進入虛擬塊選擇模式,接着能夠選中你想註釋的那些行的代碼(可使用j或者別的按鍵),接着按I(記得是大寫的I)進入列插入狀態,輸入//後按Esc,就可看到你選中的那些行都被註釋掉,其實這個功能等同於VSCODE的多光標編輯模式,超級好用的一個操做

由這個操做還能夠引伸到在代碼行的任意位置進行多光標操做,比較經常使用的可能就是行尾操做:`Ctrl+V`=>`j`=>`$`=>`A`=>`Esc`便可
複製代碼

5. 將文本拷貝到命名緩衝區,後面能夠直接經過該緩衝區使用。

有效的緩衝區名字爲從a到z的26個字母。操做命令以下: 1. "ayy:拷貝當前行到緩衝區a 2. "a5yy:拷貝5行到緩衝區a 3. "ap:粘貼緩衝區a的內容

**Tips**:*你可使用`:reg`查看當前vim使用的寄存器存儲的內容*

那若是我想拷貝到全局緩衝區呢?

vim提供了一個叫作`+`的寄存器存放系統剪切板,因此操做命令是:按`v`進入可視化模式,選中你想複製的文本,而後按`"+y`便可複製文本到系統剪切板上,在系統別的地方就可使用你的文本!
複製代碼

6. 粘貼刪除的文本

若是誤刪除了一些文本,能夠恢復最近9個操做過的文本。由於他們都保存在編號的緩衝區中,最後一次刪除的內容保存在緩衝區1,倒數第二次的則保存在緩衝區2……要恢復刪除操做,先輸入`"`,接着指定緩衝區編號,在使用放置命令。好比:
`「2p`是粘貼最近倒數第二次的刪除文本
複製代碼

7. 錄製動做

若是某個操做是可重複的,可使用vim的高級特性:錄製。在Normal模式下使用q + a~z(a~z選擇一個字母來存儲你錄製的動做,相似於上面的寄存器),以後就能夠開始你的可重複的動做,操做完全部動做以後敲一下q,便可中止錄製,而後使用@+你以前保存的寄存器字母便可不斷重複以前的動做集合了。

二、Vscode的經常使用快捷鍵

下面所講的快捷鍵均是以Mac的鍵盤爲準

2.一、主命令框

F1Command+Shift+P: 打開命令面板。在打開的輸入框內,能夠輸入任何命令,例如:

按一下Backspace會進入到Command+P模式

Command+P下輸入>能夠進入Command+Shift+P模式

Command+P窗口下還能夠:

○ 文件名 跳轉到對應文件
  ○ `?` 列出當前可執行的動做
  ○ `!` 顯示 Errors或 Warnings,也能夠`Command+Shift+M`
  ○ `:` 跳轉到行數,也能夠`Command+G`直接進入
  ○ `@` 跳轉到 symbol(搜索變量或者函數),也能夠`Command+Shift+O`直接進入
  ○ `@` 根據分類跳轉 symbol,查找屬性或函數,也能夠`Command+Shift+O`後輸入:進入
  ○ `#` 根據名字查找 symbol,也能夠 Command+T
複製代碼

2.二、經常使用快捷鍵

2.2.一、編輯器與終端窗口管理

同時打開多個Vscode(查看多個項目)

  1. Command+Shift+N 打開一個新窗口
  2. Command+Shift+W 關閉窗口 同時打開多個編輯器(查看多個文件)
  3. Command+N 新建文件
  4. Ctrl+Tab 文件之間切換
  5. Command+\ 分割出一個新的編輯器(最多3個)
  6. Command+1Command+2Command+3左中右 3 個編輯器的快捷鍵
  7. Editor之間的互相切換: Shift + Command + [(])

2.2.二、工做區的快捷鍵

  1. 工做區的顯示和隱藏: Command + B
  2. 工做區和編輯區的切換: Command + shift + E
  3. 工做區文件資源管理器的文件選擇:H/J/K/L表明文件夾摺疊(若是不是一個文件夾,將會跳到這個文件所屬的文件夾上,以即可之後面折疊整個文件夾)、聚焦下一個文件、聚焦上一個文件、文件夾展開(若是不是一個文件夾,將會在編輯區打開這個文件)
  4. 打開文件以後須要固定在開啓狀態下:Command + K + Enter
  5. 打開調試面板:Command + Shift + D
  6. 快速聚焦到VScode的命令框:Ctrl + Z這個命令須要在鍵盤映射區配置,能夠搜索workbench.action.terminal.focus,而後設置你本身的快捷鍵

2.2.三、終端區的快捷鍵

  1. `Ctrl + ``打開終端
  2. Command + |垂直分割終端區
  3. 終端區分割以後想在終端區之間互相切換:Command + Alt + 方向鍵
  4. 添加多個終端:`Ctrl + shift + ``
  5. 多個終端之間切換: Command + shift + J是聚焦下一個終端、Ctrl + shift + K是聚焦上一個終端,此兩者的命令都是經過配置workbench.action.terminal.focusNextworkbench.action.terminal.focusPrevious來配置

三、iTerm終端經常使用的快捷鍵

  1. 新建一個Tab Command + t
  2. 垂直分割一個Tab Command + d
  3. 水平分割一個Tab Command + shift + d
  4. 同一個Tab內的分屏切換 Command + [
  5. Tab之間的切換 Command + 數字
  6. 查看剪貼板歷史 Command + shift + h
  7. 上一條命令 Ctrl + p
  8. 命令搜索 Ctrl + r
  9. 清除當前行命令 Ctrl + u
  10. 跳轉到行首 Ctrl + a
  11. 跳轉到行尾 Ctrl + e
  12. 逐個字母前進或後退 Ctrl + f/b
  13. 單詞級別的快速前進和後退 Alt + f/b
    1. 這個須要本身配置,配置結果以下:
  14. 刪除當前光標的字符 Ctrl + d
  15. 刪除光標以前的字符 Ctrl + h
  16. 刪除光標以前的單詞 Ctrl + w
  17. 刪除到文本末尾 Ctrl + k
  18. 交換光標處文本 Ctrl + t

最後

本篇快捷鍵的總結會持續更新....能夠關注個人博客豆米的博客

相關文章
相關標籤/搜索