专注于Java领域优质技术,欢迎关注
作者:vimtutor 来自:Vim教程网
Vim的很多命令和功能与Linux系统的命令和功能及其相似,可以说是一脉相承。Vim教程网(对应命令进行对比。
(1) <Ctrl a>:Linux 命令行下执行该命令,将光标移动到行首 (a 是 ahead 的缩写)快速移动光标,不仅是在 Vim 下的高优需求,也是 Linux 命令行下的常见工作场景。
例如,在 Linux 命令行下敲完了一长串命令后,如果想在前面先执行一个命令,则可以按组合键<Ctrl a>将光标移动到行首,输入想添加的命令。
Vim 下也有将光标快速移动到行首的实用命令。在 Vim 普通模式下,使用0可以将光标移动到当前光标所在行的行首,使用^可以在Vim下移动光标到当前行的第一个非空字符。
(2) <Ctrl e>:Linux 命令行下执行该命令,将光标移动到行尾 (e 是 end 的缩写)既然有将光标快速移动到行首的需求,自然也有将光标快速移动到行尾的需求。与组合键<Ctrl a>对应的命令<Ctrl e>会将光标移动到行尾,方便继续输入要执行的命令。
Vim 下也有将光标快速移动到行尾的命令。在 Vim 普通模式下,使用$可以将光标移动到当前行的行尾,而使用A命令可以将光标移动到当前行的行尾,并进入插入模式。
(3) <Ctrl r>:Linux 命令行下执行该命令,会进入历史命令查找窗口,输入要查找的命令可快速选择历史命令个人觉得,<Ctrl r>(r 是 retrieve (检索) 的缩写)命令是一个非常实用的 Linux 技巧。当需要在已经执行过的历史命令中 (即history命令的结果) 查找某条命令并再次执行该命令时,可以使用<Ctrl r>调出 Linux 历史命令的搜索窗口,并输入要查找的目前命令进行查找并重新执行之。
当然可以通过history | grep xxx在已执行的历史命令列表中找到名为 xxx 的命令,然后复制该命令再重复执行之。
毋庸置疑,<Ctrl r>相比上述的步骤更加高效、便捷。
Vim 里的模糊搜索插件 ctrlp 跟 Linux 终端命令行下执行<Ctrl r>的功能非常相似。推荐将 ctrlp作为你的一个必备 Vim 插件。
(4) <Ctrl w>:Linux 命令行下执行该命令,会删除当前光标附近的一个词 (以空格隔开的字符串)删除当前光标附近的一个词,这是工作中经常遇到的一个场景。在命令行输入命令时,经常会因为输入失误或改变命令而需要进行删除,使用退格键 (Backspace) 一个个删除字符的效率太低了,如果能一次删除一个单词,将会极大减少按键次数,整体提高Linux使用效率。
w表示以一个空格隔开的字符串,这在 Vim 下也是相同的概念。推荐阅读:Vim基于单词移动及Vim单词、字串概念。
(5) <Ctrl u>:Linux 命令行下执行该命令,会删除命令行上已经敲出来的所有文本 (即删除整行)经常在工作中需要取消已经敲出了一长串的命令。除了可以使用<Ctrl c>提前中断本次即将执行的命令外,还可以使用<Ctrl u>删除命令行上所有已经输入的字符。
个人觉得,<Ctrl u>的实用性其实不大,毕竟已经有了组合命令<Ctrl c>能完成同样的操作,其被大家所熟知。
注:<Ctrl c>用于中断程序的执行,而<Ctrl z>用于暂停程序的执行 (可通过fg命令恢复)。
在 Vim 下,可以使用dd命令快速删除当前光标所在行。
(6) <Ctrl y>:Linux 命令行下执行该命令,将粘贴<Ctrl w>、<Ctrl u>等命令删除的文本当删除了 Linux 命令行中已经输入的某些字符后,可以在适当的时机将之再粘贴出来以便再次使用。
熟悉 Vim 基本命令的都知道,y在 Vim 命令集中是yank的缩写,表示 粘贴 功能。Vim 下经常使用yy命令粘贴被复制的文本。
聪明如斯的你,肯定是记住了yy命令,自然也就记住了<Ctrl y>命令哦~ (这也是为什么要在本文中将这些 Linux 实用技巧与 Vim 命令进行对比说明的原因)
(7) !xx关键字:Linux 命令行下执行该命令,会执行最近一条包含有 xx关键字 的历史命令history命令记录了 Linux 系统最近执行过的历史命令列表。如果需要重复执行最近一条包含有 xx关键字 的命令,可以使用!xx关键字。
!真是使用 Linux 下的一个操作神器。可以使用它快速执行一条历史命令,既避免了重复的按键输入,又减少了通过翻 “↑” 箭头人肉查找历史命令的工作量。
如果包含有 xx关键字 的历史命令有多条,且本次希望执行的目标命令并不是隔当前时间最近的一条,则还可以使用!行号n的方式指定执行history列表中行号为 n 的命令。
可以看出,!既可以使用关键字指定要执行的历史命令,也可以通过行号精确指定要执行的历史命令。推荐使用搜索引擎搜索关键字 “linux 惊叹号” 阅读更多相关内容的细节。
Vim 下好像并没有与之功能类似的命令?
(8) cd -:Linux 命令行下执行该命令,会将当前目录切换到上一次所在目录在 Linux 命令行下进行操作时,经常遇到辛辛苦苦进入到一个很深的目录并执行一些操作后,不小心输入了cd命令切换回了当前用户根目录的情况。再次输入完整的深层次目录或通过翻 “↑” 键以便再次进入该目录显然是一个很 “蠢笨” 的方法。
在 Linux 下,假设当前所在目录为 a,通过cd 某路径命令切换到了 b 目录后,使用cd -命令可快速切换回 a 目录哦。
(9) <Shift Insert>:Linux 命令行下执行该命令,可粘贴复制到系统剪切板上的内容在 Linux 命令行下,除了可以使用鼠标右键粘贴复制的文本外,还可以使用组合键<Shift Insert>完成粘贴操作。
据说,极客型 Linux 玩家可以做到不使用鼠标完成所有的日常工作。<Shift Insert>进行文本粘贴显然可以减少使用鼠标的频率。在使用 xshell 等远程终端模拟软件时,使用<Shift Insert>是不是一个更加高效、便捷的文本粘贴方法呢?
注:<Ctrl Insert>用于复制已选中的命令行控制台文本 (不是<Ctrl c>哦)。
(10) <Ctrl l>:Linux 命令行下执行该命令,可清空当前屏幕Linux 下可以使用clear命令清空整个屏幕,<Ctrl l>可达到同样的效果。
Vim 下,zz命令可用来重绘屏幕并把当前行显示在窗口正中。更多Vim实用技巧,推荐阅读《30个Vim常用命令和使用技巧整理》。
除此之外,还有一些比较不为人熟知的小技巧,例如,连续按3次Esc键可显示当前系统支持的所有命令,<Ctrl [相当于Esc键的功能,<Ctrl i>等价于 Tab 键的功能等。
现在人工智能非常火爆,给大家推荐一个非常适合小白入门的教程,点下面链接即可跳转。