我有一个由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字符为"?“在数据存储中。由
我将要编写一个shell脚本来编辑一些文件。
我是这样做的:
/usr/bin/vim $file
现在我想问一下vim的退出状态。如果用户关闭时保存了更改(:wq或:x),或者关闭时没有更改(:q,:q!)做一些其他的事情
if [ vi-exit-status=wq ] ; then
# do this
else # vi didn't save anything
# do that
fi
我该怎么做呢?当我调用vi创建一个新文件并退出它而不保存时(:q!)然后我通过以下方式检查状态
echo $?
答案是0。如果我通过vi/vim保存一些东西或创建一个文件,它也是
我正在使用vi editor编写脚本,但是我删除了一些代码行却没有保存,我犯了错误。现在我想撤销这些变化。我发现这样做的方法是使用u keystroke来撤消更改,而且效果很好。
现在,我想退出当前状态下的vi编辑器,而不保存更改,所以我尝试
按Esc键
按:q退出
它给了我一个错误
No write since the last change vi error while quitting
我如何克服这个错误?
谢谢你帮忙。
我在专用服务器(由OVH托管)上遇到了yum命令的问题:
[root@mail-server ~]# yum clean all
[root@mail-server ~]# yum update
Modules complémentaires chargés : fastestmirror
One of the configured repositories failed (Inconnu),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum c
如果没有在我的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命令就会显示为一个常规命令行,后面是我之前输入的所有命令。我试着寻找我喜欢的行为的设置,但我做不到。有人能帮我吗?