说明

我们通常会在命令行作频繁的操作,每少敲击一个字符,也可以提高大的效率。它太频繁了,所以我们要总结。命令行下的键位与emacs的键位相同。不必追求炫酷的快捷键,最基础的练好就是最好的。

注:
  c - ctrl
  m - alt/option
  向前-从左到右
  向后-从右到左

1. 移动

c + f 向前移一个字符
c + b 向后移一个字符

m + f 向前移一个单词
m + b 向后移一个单词

m + a 移动到行首
m + e 移动到行尾

2. 删除

c + d 向前删除一个字符
c + h 向后删除一个字符
c + 8 同 c + h


m + d 向前删除一个单词
c + w 向后删除一个单词

m + w 删除到行首(从当前光标,zsh支持)
c + k 删除到行尾(从当前光标)

c + u 删除整行(zsh删除整行,bash从当前光标删除到行首)

3. 修改

c + t 光标当前字符与后一个字符替换
m + t 光标当前单词与后一个单词替换

m + c 从光标处单词更改为首字母大写的单词
m + u 从光标处单词更改为全部大写的单词

c + xx: Move between the beginning of the line and the current position of the cursor. 
This allows you to press Ctrl+XX to return to the start of the line, change something, 
and then press Ctrl+XX to go back to your original cursor position. To use this shortcut, 
hold the Ctrl key and tap the X key twice.

^abc­^­def   Run previous command, replacing abc with def

4. 剪切粘贴

* Ctrl+W: Cut the word before the cursor, adding it to the clipboard.
* Ctrl+K: Cut the part of the line after the cursor, adding it to the clipboard.
* Ctrl+U: Cut the part of the line before the cursor, adding it to the clipboard.
* Ctrl+Y: Paste the last thing you cut from the clipboard. The y here stands for “yank”.

5. 查找

c + s + '字符' 向前查找(zsh支持) c+j 去修改
c + r + '字符' 向后查找 c+j 去修改
c + p 上一个命令
c + n 下一条

6. 回撤

c + x, 然后u
c + _ 
c + 7

7. 特殊符号

!*   All arguments of previous command
!$ 最后一个参数
c + . 最后一个参数

!abc   Run last command starting with abc
!!   Repeat last command

8. 其它常用

c + q 或者 m + q 删除当前,当执行下一条命令后,自动粘贴到命令行(zsh支持)

c + - 当前目录与先前的目录相互切换

给命令加注释  ls #xxxx,   ctrl+r 搜索注释

#ls 不执行此条命令(同c + a 给注释)

先导入环境变量export EDITOR=vim 然后 c-x c-e 编辑超长命令

top命令,防止丢失session

mac 打开`sudo visudo`文件改sudo不要密码

set -o vi  Set Emacs Mode in bash:  set -o emacs 更改命令行键位规则 

ls **/*.js (zsh) 列出js文件

cd - tabtab 历史(zsh)

修改  r lg=lg (zsh)

c+ ] = esc

9. 高效tab 切换

传统方式 commond + tab (mac)

其它方式1:给app编固有顺序 https://manico.im/

其它方式2:Alfred

给当前应用指定输入法,比如切换到微信使用中文,切换到iterm2 使用英文:keyboard pilot

10. 命令行不可或缺神器

tldr 命令行使用sample。

autojump (oh-my-zsh z 插件)一步到位cd到目录。 比如有一个这样的目录~/git/aaa/bbb/ccc,一步跳到ccc目录:autojump ccc

11. iterm2针对ssh密码管理

triggers 配置如下:

Regular Expression            Action                 Parametes                      Instant
#dev                          Send Text              ssh dev@css3.io\r              no check
ssh dev@css3.io               Open Password Manager  dev(去passwd manager添加dev密码)check


测试命令:
#dev

参考

https://www.howtogeek.com/howto/ubuntu/keyboard-shortcuts-for-bash-command-shell-for-ubuntu-debian-suse-redhat-linux-etc/

https://ss64.com/bash/syntax-keyboard.html

https://codingstyle.cn/topics/137