是否存在vi
在 Ubuntu 环境中创建、编辑或修改文件的唯一选项?
我的问题基本上是真正知道是否存在我会被迫使用的情况,vi
因为它是 Ubuntu 生态系统中特定情况下唯一可用的选项。
是否存在我无法访问其他选项(如nano
)pico
或仅使用 、 等工具发送信息cat
的sed
特殊情况tee
?
我认为这更多是服务器端或云端,因为在桌面上有更多选项,但对于经常使用终端的任何人,我会问:
有这样的情况吗?
是否存在vi
在 Ubuntu 环境中创建、编辑或修改文件的唯一选项?
我的问题基本上是真正知道是否存在我会被迫使用的情况,vi
因为它是 Ubuntu 生态系统中特定情况下唯一可用的选项。
是否存在我无法访问其他选项(如nano
)pico
或仅使用 、 等工具发送信息cat
的sed
特殊情况tee
?
我认为这更多是服务器端或云端,因为在桌面上有更多选项,但对于经常使用终端的任何人,我会问:
有这样的情况吗?
在Ubuntu生态系统中,我认为这种情况甚至不存在,
vi
至少是一个 vim-tiny,它已经是一个“真实的vim
”,远非“真实的”vi
。在资源有限的嵌入式系统(通常不是 Ubuntu)的情况下,您可能只有一个
vi
结果是指向busybox
. 而且没有剩余空间。那么,vi
是唯一的选择。除此之外,我认为
vi
唯一选择的情况在今天根本不常见,即使在 Linux 世界之外也是如此。但很容易出现这样的情况,
vi
即您可以计划的唯一选择,在未来的某些情况下肯定会存在的唯一选择——这很可能发生在客户过度冷却的服务器机房内。想象一下,您被一位客户打来电话:
没问题,到现在为止,你知道会有
vi
!Vi 从来都不是唯一的选择。你可以随时使用
ed
。好吧,有一种情况你需要
vi
编辑器,让我们假设:*nix
系统上如您所见,没有数字键盘。使用旧的
vi
(我指的是原始的传统vi
, 不是vim
,vim.tiny
, 或vim.basic
),您可以使用此键盘编辑文件。没有方向键?是的,当您处于命令模式时,您可以像专业人士一样使用、 和移动h文件j。左,下,上,右。klhjkl事实是,在许多发行版中,编辑器喜欢
nano
并且pico
只是不标准,而其他包,即vim-tiny
是。ubuntu-minimal 的包列表见这里,vim-tiny
是唯一的编辑器。根据这个答案,Ubuntu 服务器似乎也是如此。我知道基础 Debian、Fedora 也是如此。话虽这么说,鉴于如果你
nano
的系统上有我还没有看到你必须使用的情况vi
,但是,如果你正在为客户工作并且没有,那么请玩@Volker的回答根访问权限?apt-get install nano
不会对你有多大好处(如果它甚至可以访问外部互联网!)。在许多情况下
vi
(我的意思自然是vim.tiny
因为这就是我们发布的)可能是唯一的交互式编辑器。如果我们忽略蝴蝶和宇宙射线,这些似乎是最有可能发生这种情况的场合:您只使用
ubuntu-minimal
基本元包。这取决于vim-tiny
但不依赖于其他编辑。我目前无法在没有任务的情况下找到安装 Ubuntu 的方法,standard^
但您可以在安装后使用以下命令将其删除:我有个人经验,我在没有
standard^
安装任务的情况下获得了系统映像。如果我没有网络访问权限,那vi
将是我唯一的选择。Chrooting 进入一个只
vi
通过映射的环境手动核对所有其他编辑器(并禁用重新安装它们的方法)
手动破坏 shell 以停止已知的编辑器,除非
vi
被启动。真正的最小安装将是最有可能的原因,但这些天很少见。一些 VPS 和云托管公司使用它们(与其他任何东西一样节省磁盘空间)但我建议它们绝对不是常态。
在您无法安装 emacs 的情况下,或者在您需要修改配置文件以使您能够安装 emacs 的情况下。:-p
许多(大多数?)Busy-Box 安装只有
vi
.它不是特定于 ubuntu 的,但它适用于许多嵌入式设备。
总是有猫、头、尾……所以我不确定是否存在没有其他选择的系统,但即使您更喜欢 emacs ,也有可能找到没有更好选择的系统。
我的例子是我曾经管理过的一个系统,它要么太慢(要么线路很慢且有损),以至于当使用光标键导航时,它经常突然切换到插入和注入垃圾到编辑的文件中,并使用 HJKL 进行移动是唯一可靠的选择。
在这种情况下,vim 是 Ubuntu 生态系统中的唯一选择:
Ubuntu Snappy
除了vim-tiny
. 也许将来会有,但到 2015-16 年还没有。如果你打算通过串行控制台或 ssh 使用 Ubuntu Snappy,你最好准备好使用vim
.有一次我遇到了只有 vi 的行模式在工作的情况。与真正搞砸了终端定义有关。基本上只有线模式下的 vi(如果你假装你有一个 1 线终端,这就像普通 vi 一样),ex 和 ed 会工作,因为唯一的终端定义是“哑”。