我有一个由windows系统生成的CSV文件。然后将该文件移动到linux。linux环境是NAME="Red Hat Enterprise Linux Server".VERSION="7.3 (Maipo)".ID="rhel“。
当我使用vi编辑器时,所有的字符都是可见的。例如,给出了一行:"Sarah--bitte nicht löschen“。
但是当我猫文件时,我得到类似于"Sarah--bitte nicht l▒schen“之类的东西。
此文件由数据存储应用程序使用,并且此unicode字符为"?“在数据存储中。由
我在使用sql*plus的同时,在linux下使用rlwrap实用程序进行命令行编辑。一切都很好,除了这个实用程序会回显我从键盘输入的每个命令。例如,假设我在提示符中键入以下语句:
SQL> select last_name from employees
相同的语句将在终端中再次重复,使输出如下所示:
SQL> select last_name from employees
select last_name from employees
然后,当我在下一行完成select语句时,输出将如下所示:
SQL> select last_name from employees
sel
如果没有在我的Linux系统上安装Emacs,Bash命令行编辑默认模式仍然是Emacs。在没有Emacs的情况下,这是如何工作的?
我试着搜索Bash源代码,但还是无法理解。Bash是否将Emacs集成在自己的内部?
$ set -o
allexport off
braceexpand on
emacs on
: :
vi off
xtrace off
显然,自从几周前bash v. 5(在Arch Linux和Debian Buster上见证)发布以来,在vi模式下调用编辑器的默认行为发生了变化。
set -o vi
v
bash 4.x和更早版本:弹出一个空的$EDITOR。
bash 5.x: $EDITOR将使用最后执行的命令打开(类似于fc命令)。
偶然打开命令行编辑器并剧烈地执行:q!,会导致重复执行最后一个命令。对于长期的vi模式成瘾者来说,这是意想不到的行为,违反了最低限度惊讶的原则.如何恢复到旧的空编辑器状态?
我试着搜索答案,但可能我的问题表达错了,我找不到它。
因此,在我自己的Linux环境中,当我退出"vi“时,编辑窗口的内容仍然停留在shell窗口中。在输入"vi“之前,我不能只滚动屏幕来查看之前输入的命令。我曾经在某些环境中(以不同的用户身份),一旦退出" vi ",vi命令就会显示为一个常规命令行,后面是我之前输入的所有命令。我试着寻找我喜欢的行为的设置,但我做不到。有人能帮我吗?
我最近在我的机器上升级到Fedora 33 (Linux5.9.16-200)。我正在运行vim增强版本8.2。当我输入sudo vim (甚至sudo vi)来编辑具有管理权限的文件时,我会得到以下错误。
sudo: __vi_internal_vim_alias: command not found
我不知道是什么原因造成了这种情况。没有sudo的情况下,Vim装载很好。你能告诉我如何解决这个问题吗?谢谢。
更新:在执行which vim时,我得到以下结果。
alias vim='__vi_internal_vim_alias'
__vi_internal_vim_
我从这里下载了原始的Vi编辑器:,它总是显示这条消息(无论是在xterm中还是在适当的终端中,linux在xterm中被xterm替换):
linux: Unknown terminal type
[Using open mode]
我尝试将TERM更改为vt100、vt200等,但仍然出现了错误。这很烦人,因为打开模式一次只显示一行,但我想要一个全屏编辑器。