linux如何在shell中使用vi模式

本文主要介绍"linux怎么在shell中使用vi模式",希望能够解决您遇到有关问题,下面我们一起来看这篇 "linux怎么在shell中使用vi模式" 文章。

在计算和操作系统的庞大生态系统中有很多 shell。然而,在 Linux 世界中,bash 已经成为事实上的标准,并在在撰写本文时,它是所有主要  Linux 发行版上的默认 shell。因此,它就是我所说的 shell。需要注意的是,bash 在其他类 UNIX  操作系统上也是一个相当受欢迎的选项,所以它可能跟你用的差别不大(对于 Windows 用户,可以用 cygwin)。

在探索 shell 时,首先要做的是在其中输入命令并得到输出,如下所示:

$ echo "Hello World!"Hello World!

这是常见的练习,可能每个人都做过。没接触过的人和新手可能没有意识到 bash shell 的默认输入模式是 Emacs  模式,也就是说命令行中所用的行编辑功能都将使用 Emacs 风格的“键盘快捷键”。(行编辑功能实际上是由 GNU Readline 进行的。)

例如,如果你输入了 echo "Hello Wrld!",并意识到你想要快速跳回一个单词(空格分隔)来修改打字错误,而无需按住左箭头键,那么你可以同时按下  Alt+b,光标会将向后跳到 W。

$ echo "Hello Wrld!"               ^         Cursor is here.

这只是使用提供给 shell 用户的诸多 Emacs  快捷键组合之一完成的。还有其他更多东西,如复制文本、粘贴文本、删除文本以及使用快捷方式来编辑文本。使用复杂的快捷键组合并记住可能看起来很愚蠢,但是在使用较长的命令或从  shell 历史记录中调用一个命令并想再次编辑执行时,它们可能会非常强大。

尽管 Emacs 的键盘绑定都不错,如果你对 Emacs 编辑器熟悉或者发现它们很容易使用也不错,但是仍有一些人觉得 “vi  风格”的键盘绑定更舒服,因为他们经常使用 vi 编辑器(通常是 vim 或 nvim)。bash shell(再说一次,通过 GNU  Readline)可以为我们提供这个功能。要启用它,需要执行命令 $ set -o vi。

就像魔术一样,你现在处于 vi 模式了,现在可以使用 vi 风格的键绑定来轻松地进行编辑,以便复制文本、删除文本、并跳转到文本行中的不同位置。这与  Emacs 模式在功能方面没有太大的不同,但是它在你如何与 shell 进行交互执行操作上有一些差别,根据你的喜好这是一个强大的选择。

我们来看看先前的例子,但是在这种情况下一旦你在 shell 中进入 vi 模式,你就处于 INSERT 模式中,这意味着你可以和以前一样输入命令,现在点击  Esc 键,你将处于 NORMAL 模式,你可以自由浏览并进行文字修改。

看看先前的例子,如果你输入了 echo "Hello  Wrld!",并意识到你想跳回一个单词(再说一次,用空格分隔的单词)来修复那个打字错误,那么你可以点击 Esc 从 INSERT 模式变为 NORMAL  模式。然后,您可以输入 B(即 Shift+b),光标就能像以前那样回到前面了。(有关 vi 模式的更多信息,请参阅这里。):

$ echo "Hello Wrld!"               ^         Cursor is here.

现在,对于 vi/vim/nvim  用户来说,你会惊喜地发现你可以一直使用相同的快捷键,而不仅仅是在编辑器中编写代码或文档的时候。如果你从未了解过这些,并且想要了解更多,那么我可能会建议你看看这个交互式  vim 教程,看看 vi 风格的编辑是否有你所不知道的。

如果你喜欢在此风格下与 shell 交互,那么你可以在主目录中的 ~/.bashrc 文件底部添加下面的行来持久设置它。

set -o vi

关于 "linux怎么在shell中使用vi模式" 就介绍到这。希望大家多多支持编程宝库

本文主要介绍"Linux数据包的发送过程",希望能够解决您遇到有关问题,下面我们一起来看这篇 "Linux数据包的发送过程" 文章。socket层               +-------------+    ...