我想set -o vi
在我的 shell 中使用 vi(可以解决问题)作为默认设置而不是 emacs,但我不想将它放入 bash 启动脚本中。
为什么?因为我是一名验证工程师,我使用多个用户帐户,而且这些帐户也经常重新安装。更改默认配置文件也不是答案,因为某些软件会创建自己的主目录(独立于默认配置文件)。
编辑:我知道您给了我几种在启动时或任何时候执行此操作的方法,但我确实想在系统的某个地方更改它并将其设为默认值,这可能吗?
答案1
如果你仔细想想,这其实相当直观,尽管它并不像乍一看那么明显。以下命令将为你提供所需的信息:
ssh -t somehost "bash -i -o vi"
这将在 vi 模式下启动一个交互式 shell。让我们来分析一下。 ssh -t somehost
连接到主机(显然)并打开一个 tty 会话。 "bash -i -o vi"
做两件事。首先,它以交互模式启动 bash,即您登录时通常会收到的 shell。这将读取 bash 配置文件等,并将您带到提示符。第二个参数,-o vi
启用 shell 选项,具体来说是 vi 模式。
要在现实环境中使用它,您可能需要执行以下操作(调整路径以适应 bash 或您选择的 shell):
function ssh_vi { ssh -t $1 "bash -i -o vi" }
并被称为...
$ ssh_vi mysite.com
希望这可以帮助!
答案2
也许,我只是没有理解这个问题,但对我来说这似乎根本不是一个问题:典型的 GNU 系统做有一个全局/etc/inputrc
配置,你的?vi
模式readline(3)
可以通过添加来启用:
set editing-mode vi
当然。
答案3
答案4
bash$ export EDITOR=vi 所有查找此变量的软件都将使用 vi,您可以按原样写入 .bashrc,这样每次启动屏幕时都会使用它