双手不离键盘,在命令行快速移动和删除字符
命令行界面(Command-Line Interface),简称 CLI,它通常不支持鼠标,用户通过键盘输入指令,计算机收到指令后,予以执行,Unix-like 系统常用的 CLI 程序如 sh / bash / csh / zsh 等,在命令行中,我们经常用方向键完成光标移动操作,用 Backspace / Delete 完成字符删除操作,有没有什么方法可以更高效的移动光标和删除字符呢?
这里有一个简单的图表1说明了如何在命令行快速移动及删除字符。
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 + u
、Ctrl + k
、Ctrl + w
等命令删除的文本。
在 Vim 下,yy
是 yank
的缩写,表示复制功能。
(7)Alt + d
,删除当前光标到临近右边单词开始(Delete)。
(8)Ctrl + t
,交换光标之前和之后的字符。
(9)Alt + t
,交换光标之前和之后的单词。
(10)Ctrl + xx
,在命令行首和光标之间移动。
更多 Linux 命令行 和 Vim 的实用技巧,期待你来跟我分享。让我们一起学习,共同进步。
微信公众号「padluo」,分享数据科学家的自我修养,既然遇见,不如一起成长。
参考文档