如何设置“vi”shell环境作为默认设置

我想在我的shell中使用vi( set -o vi可以做到这一点),而不是emacs,但我不想把它放到bash启动脚本中。

为什么? 因为我担任validation工程师,而且我正在使用多个用户帐户,这些用户帐户也经常重新安装。 更改默认configuration文件也不能回答,因为有些软件会创build自己的主目录(独立于默认configuration文件)。

编辑:我知道你给了我几种方法如何在启动或任何时候做到这一点,但我想改变它在系统中的某个地方,并将其作为默认值,这是可能的吗?

这实际上是相当直觉,当你想到它,虽然它不像起初看起来那么明显。 下面的命令会给你你想要的:

 ssh -t somehost "bash -i -o vi" 

这将以vi模式启动交互式shell。 让我们分解它。 ssh -t somehost连接到主机(显然)并打开一个tty会话。 "bash -i -o vi"做了两件事。 首先,它以交互模式启动bash,即您login时通常会收到的shell。 这读入bashconfiguration文件等,并带给你一个提示。 第二个参数-o vi启用shell选项,特别是vi模式。

要在现实环境中使用它,您可能需要执行以下操作(将path调整为bash或select的shell):

 function ssh_vi { ssh -t $1 "bash -i -o vi" } 

并称为…

 $ ssh_vi mysite.com 

希望这可以帮助!

听起来你想要腻子为你运行一个脚本。 看看ExtraPutty 。 或Kitty的自动命令 。

这似乎是不可能的,只有通过configuration更改。
一个可能的解决scheme似乎是改变和重新编译“readline”库。

也许,我只是不明白这个问题,但对我来说,它似乎并不是一个问题:典型的GNU系统有一个全局的/etc/inputrcconfiguration,不是吗? readline(3) vi模式可以通过添加:

 set editing-mode vi 

当然。

bash $ export EDITOR = vi所有寻找这个variables的软件都会使用vi,你可以直接写入.bashrc,所以每次启动屏幕都会使用它

答案是:

  1. 编辑。* rc shell文件(.bashrc .kshrc)

  2. 添加线
    设置-o vi

  3. 源shellconfiguration文件(.bash_profile / .profile)源./.bash_profile

  4. 检查
    set -o | egrep -w“(vi | emacs)”