当在屏幕内的会话中调用vi时,我总是遇到错误:
bash-3.2$ vi perf332.db2
ex: 0602-108 screen is not a recognized terminal type.
[Press return to continue]
[Using open mode]
在我显式地导出TERM=xterm或其他东西之后,它工作得很好。
我的屏幕在Linux服务器上运行,我从那里通过SSH连接到AIX服务器。
如果没有在我的Linux系统上安装Emacs,Bash命令行编辑默认模式仍然是Emacs。在没有Emacs的情况下,这是如何工作的?
我试着搜索Bash源代码,但还是无法理解。Bash是否将Emacs集成在自己的内部?
$ set -o
allexport off
braceexpand on
emacs on
: :
vi off
xtrace off
我正在Windows上运行一个Docker容器,使我能够在某些需要的项目中使用Linux。当使用CLI时,我无法使用光标键来导航命令/命令历史记录。我希望按下向上/向下箭头可以在以前运行的命令中导航,而左/右箭头则允许我将光标移动到当前所选命令的一部分,以便从那个位置进行编辑。相反,当我按下光标键时,我会看到输出到控制台的字符(即向上、向下、左、右解析为^[[A、^[[B、^[[C和^[[D )。
是否缺少启用预期行为的选项/安装?
我看过关于设置-o的信息,但我没有历史条目:
# set -o | grep history
# set -o
Current option settings
e
环境
操作系统: Windows Linux子系统,Ubuntu 18.04
贝壳:鱼
工具包管理: brew (自制/linuxbrew)
fish安装了
鱼类已设置为默认外壳。
- brew had installed
- brew environment setting as [official site](https://docs.brew.sh/Homebrew-on-Linux)
- php had installed with brew
- composer had installed with brew
我试图在bash中使用vi模式。通过.inputrc ( OSX):
set editing-mode vi
在vi insert模式下,右箭头键将光标移向右侧,但在行中的最后一个字符上停止。如果光标超过行尾,则将光标移动到左侧。因此,总之,你能走的最右边是行中的最后一个字符。
$ cd /usr/locl/bin
# Move the cursor to the middle of the line, and fix something there
$ cd /usr/local/bin
# Now move the cursor back to the end, and write a c
显然,自从几周前bash v. 5(在Arch Linux和Debian Buster上见证)发布以来,在vi模式下调用编辑器的默认行为发生了变化。
set -o vi
v
bash 4.x和更早版本:弹出一个空的$EDITOR。
bash 5.x: $EDITOR将使用最后执行的命令打开(类似于fc命令)。
偶然打开命令行编辑器并剧烈地执行:q!,会导致重复执行最后一个命令。对于长期的vi模式成瘾者来说,这是意想不到的行为,违反了最低限度惊讶的原则.如何恢复到旧的空编辑器状态?
我很难找到一种方法来配置Bash启动文件,以便每次我打开新的Bash时它都会显示我的磁盘使用情况。
我使用的脚本是
s=$(du -sh --total | grep "total" | awk '{printf %.3f",$1/5000}')
echo "You are using $s% of your storage"
我知道,在重新排列的时候,
set editing-mode vi
您可以将上述选项放在~/.inputrc,editing-mode由Readline记录为中。
editing-mode (emacs)控制读行是以一组类似于emacs或vi的键绑定开始的。editing-mode可以设置为emacs或vi。
还有,对于巴斯,
set -o vi
根据巴什文件
vi使用vi样式的行编辑接口.这也会影响用于读取-e的编辑界面。
Bash的-o vi除了设置适当的Readline模式之外,还会做其他事情吗?而且,如果您已经在您的~/.inputrc中设置了D18,那么这会有什么不同吗?
我只是在我的机器上安装了bashv4.1.0。
旧版本在/bin/bash下。有没有一种方法可以使用更新版本的bash而不替换/bin中的旧版本?我希望更新的版本被用作默认版本。
$ which bash
/bin/bash
$ bash --version
GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
$ ~/bash/bash-4.1/bash --version
GNU bash, version 4.1.0(1)
当我试图使用Iterm2或OSX Terminal对服务器执行ssh时,我会遇到一些奇怪的行为。基本上,问题是当使用tab进行自动完成时,它最终会打印一个额外的随机字符,例如:
//the 'e' is extra in this case
$ cd keys/e
当尝试使用任何箭头键进行导航时,它根本不起作用。
//^[[C^[[C^[[C^[[C^[[C^[[C^[[C are printed by pressing arrow keys
$ cd keys/^[[C^[[C^[[C^[[C^[[C^[[C^[[Ce
//Kernel Version
OS Version