敢不敢使用纯键盘码代码?

前言

不敢说单纯使用键盘码代码的效率会比键盘鼠标结合高多少倍,可是这个过程绝对让你感受倍爽。虽然过程很累,须要记住那么多组合按键,可是一旦熟练以后你必定会感谢如今努力的本身。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

最后

本篇快捷键的总结会持续更新....能够关注个人博客豆米的博客

相关文章
相关标签/搜索