Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
ItsFated
帖子: 8
注册时间: 2019-11-18 22:25
系统: Ubuntu 18.04.3

Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#1

帖子 ItsFated » 2019-11-18 22:50

如标题所述:
异常情况:Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容。这样git log指令输入的内容更像是Vim的行为。
正常情况:应该是反过来,即退出vim后终端不显示vim编辑的文件内容,退出git log的输出后,内容应该还是显示在终端。
在网上搜索的答案都是添加:export TERM=xterm。到 .bashrc 文件中,可以这样也无法改变这种情况,远程终端连接是这样,登录系统使用tty1命令行也是这样。如下图:(运行环境在本文最后)
退出Vim和退出git log的输出
退出Vim和退出git log的输出
运行环境:VMware® Workstation 15 Player
操作系统:Ubuntu Server 18.04.3(服务器版本,无桌面)
远程终端:MobaXterm v12.3
头像
astolia
论坛版主
帖子: 6450
注册时间: 2008-09-18 13:11

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#2

帖子 astolia » 2019-11-19 22:41

你用的是zsh,又不是bash,你放到.bashrc这个bash的配置文件里自然是没用的。你该写到zsh的配置文件.zshrc里
头像
ItsFated
帖子: 8
注册时间: 2019-11-18 22:25
系统: Ubuntu 18.04.3

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#3

帖子 ItsFated » 2019-11-20 10:42

都试过了,不使用zsh,放在.zshrc里面。确认$TERM环境变量是xterm,都试过了。还是无效
头像
astolia
论坛版主
帖子: 6450
注册时间: 2008-09-18 13:11

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#4

帖子 astolia » 2019-11-20 11:24

你把系统中运行下面命令的输出结果发上来,某些环境变量会影响到pager退出后的行为

代码: 全选

env | grep PAGER
env | grep LESS
git config core.pager
头像
ItsFated
帖子: 8
注册时间: 2019-11-18 22:25
系统: Ubuntu 18.04.3

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#5

帖子 ItsFated » 2019-11-20 14:06

如图:
执行结果
执行结果
evn_screen.png (6.53 KiB) 查看 6695 次
头像
astolia
论坛版主
帖子: 6450
注册时间: 2008-09-18 13:11

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#6

帖子 astolia » 2019-11-21 9:51

你没用过git config?只有在你的git仓库下运行才能获得完整的结果。
反正据我所知,在less作为pager时,要让git log退出后不保留输出结果,只会是加了参数-+X或-+R,既然LESS环境变量里不是,那只可能放在core.pager配置项里了。
至于vim,如果不是TERM环境变量的问题,还有一种可能是你是在screen的运行环境下
头像
ItsFated
帖子: 8
注册时间: 2019-11-18 22:25
系统: Ubuntu 18.04.3

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#7

帖子 ItsFated » 2019-11-21 14:32

感谢。已经找到原因了。
git log 退出后不残留内容是因为zsh的配置。
vim退出后残留内容是因为vimrc的配置。
:em51
bozai123456
帖子: 1
注册时间: 2019-11-27 9:43
系统: linux

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#8

帖子 bozai123456 » 2019-11-27 9:44

ItsFated 写了: 2019-11-21 14:32 感谢。已经找到原因了。
git log 退出后不残留内容是因为zsh的配置。
vim退出后残留内容是因为vimrc的配置。
:em51
麻烦问下你是怎么解决的
头像
astolia
论坛版主
帖子: 6450
注册时间: 2008-09-18 13:11

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#9

帖子 astolia » 2019-11-27 13:45

bozai123456 写了: 2019-11-27 9:44
ItsFated 写了: 2019-11-21 14:32 感谢。已经找到原因了。
git log 退出后不残留内容是因为zsh的配置。
vim退出后残留内容是因为vimrc的配置。
:em51
麻烦问下你是怎么解决的
vim的设置的话,应该是他在vimrc里把t_te设置成了空
头像
ItsFated
帖子: 8
注册时间: 2019-11-18 22:25
系统: Ubuntu 18.04.3

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#10

帖子 ItsFated » 2020-11-15 10:26

bozai123456 写了: 2019-11-27 9:44
ItsFated 写了: 2019-11-21 14:32 感谢。已经找到原因了。
git log 退出后不残留内容是因为zsh的配置。
vim退出后残留内容是因为vimrc的配置。
:em51
麻烦问下你是怎么解决的
时隔一年,我当时解决了之后。完结贴解决方案了,在.zshrc中添加这一行就可以:
export LESS=-FRXM
头像
ItsFated
帖子: 8
注册时间: 2019-11-18 22:25
系统: Ubuntu 18.04.3

Re: Vim退出后会显示编辑的文件内容在终端,git log指令q键退出后不会显示内容

#11

帖子 ItsFated » 2020-11-15 10:29

ItsFated 写了: 2020-11-15 10:26
bozai123456 写了: 2019-11-27 9:44
ItsFated 写了: 2019-11-21 14:32 感谢。已经找到原因了。
git log 退出后不残留内容是因为zsh的配置。
vim退出后残留内容是因为vimrc的配置。
:em51
麻烦问下你是怎么解决的
时隔一年,我当时解决了之后。完结贴解决方案了,在.zshrc中添加这一行就可以:
export LESS=-FRXM
当时参考的是这个文章:
https://blog.lilydjwg.me/2013/8/29/not- ... 40562.html
附:less 默认是会转义来自输入的彩色转义字符序列的。我使用了-FRXM参数,也是通过环境变量传递的:

export LESS=-FRXM

这四个选项的意义是:

-F
如果一屏能显示下,那么显示完就退出
-R
不要转义 ANSI 彩色转义字符序列
-X
不要发布终端初始化和结束字符串。这样才不会使用终端的备用屏幕,less 的输出才会留在主屏幕上(使用-F选项时必须,不然可能看不到东西)
-M
在 less 提示符(最后一行)显示更多信息(比如文件的百分比位置)
回复