双手不离键盘,在命令行快速移动和删除字符

命令行界面(Command-Line Interface),简称 CLI,它通常不支持鼠标,用户通过键盘输入指令,计算机收到指令后,予以执行,Unix-like 系统常用的 CLI 程序如 sh / bash / csh / zsh 等,在命令行中,我们经常用方向键完成光标移动操作,用 Backspace / Delete 完成字符删除操作,有没有什么方法可以更高效的移动光标和删除字符呢?

这里有一个简单的图表1说明了如何在命令行快速移动及删除字符。

moving_cli.png

Vim 的很多命令和功能与 CLI 的命令和功能很相似,下面详细说明在命令行中提高效率的小技巧,并与 Vim 对应命令进行对比。

1.1 移动光标

(1)Ctrl + a,将光标移动到行首(a 是 ahead 的缩写)。例如,在 Linux 命令行下敲完了一长串命令后,如果想在前面先执行一个命令,则可以按组合键 Ctrl + a 将光标移动到行首,输入想添加的命令。

Vim 下也有将光标快速移动到行首的实用命令。在 Vim 普通模式下,使用 0 可以将光标移动到当前光标所在行的行首,使用 ^ 可以在 Vim 下移动光标到当前行的第一个非空字符(空格、tab、换行、回车等)。

(2)Ctrl + e,将光标移动到行尾(e 是 end 的缩写)。既然有将光标快速移动到行首的需求,自然也有将光标快速移动到行尾的需求。

Vim 下也有将光标快速移动到行尾的命令。在 Vim 普通模式下,使用 $ 可以将光标移动到当前行的行尾,而使用 A 命令可以将光标移动到当前行的行尾,并进入插入模式。

(3)Ctrl + b,光标后退一个字符(b 是 backward 的缩写),按字符后移(左向)。

(4)Ctrl + f,光标前进一个字符(f 是 forward 的缩写),按字符前移(右向)。

(5)Alt + b,光标后退一个单词,按单词后移(左向)。

(6)Alt + f,光标前进一个单词。按单词前移(右向)。

1.2 编辑命令

(1)Ctrl + u,删除光标左边所有字符。

注:Ctrl + c 用于中断程序的执行,而 Ctrl + z 把当前进程放到后台(之后可用 fg 命令回到前台)

(2)Ctrl + k,删除光标右边所有字符。

(3)Ctrl + h,删除光标前一个字符(相当于 Backspace)。

(4)Ctrl + d,删除光标后一个字符(相当于 Delete)。

(5)Ctrl + w,删除光标前的单词(以空格分隔),即删除光标到临近左边单词结束。这是工作中经常遇到的一个场景,在命令行输入命令时,经常会因为输入错误或改变命令而需要进行删除,使用退格键(Backspace)一个个删除字符的效率太低了,如果能一次删除一个单词,将会大大减少按键次数。

在 Vim 下, W(大写)表示以一个空格隔开的字符串。

(6)Ctrl + y,粘贴 Ctrl + uCtrl + kCtrl + w等命令删除的文本。

在 Vim 下,yyyank 的缩写,表示复制功能。

(7)Alt + d,删除当前光标到临近右边单词开始(Delete)。

(8)Ctrl + t,交换光标之前和之后的字符。

(9)Alt + t,交换光标之前和之后的单词。

(10)Ctrl + xx,在命令行首和光标之间移动。

更多 Linux 命令行 和 Vim 的实用技巧,期待你来跟我分享。让我们一起学习,共同进步。


微信公众号「padluo」,分享数据科学家的自我修养,既然遇见,不如一起成长。

数据分析


参考文档


  1. Moving efficiently in the CLI ↩︎

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值