mintty下启动emacs shell mode后,垃圾字符问题
2015-11-26 09:12
603 查看
十年以后,重回emacs怀抱,会了。
在mintty下启动emacs的shell mode以后,总会在提示符之前显示几个固定的垃圾字符。
term和ansi-term也一样,网上搜索了很久也没有解决办法。
仔细分析以后发现,系统home下面的.bashrc里PS1变量最前面一段
其实是给xterm或者说给mintty修改title用的,下面是我用MSYS2系统的时候完整的PS1变量
当我们启动emacs的shell mode以后,无法解析到最前面这几个字符。所以这几个字符就无情的显示在emacs的shell中了。
于是我想到了在emacs中重新定义PS1这个变量,也就是把seten的函数饮用一下放到emacs的启动elisp中,
一天我上网突然看到有人在.bashrc中通过判断term的类型来重新定义PS1,感觉曙光就在眼前了。我把之前的PS1变量的设置方法重新写了一下
也就是说,如果我当前执行的term不时xterm这类的,我就把之前设定title的字符移除。
结论当然是肯定的,从此以后emacs的shell,term,ansi-term都干净了。而且原来mintty的title还可以继续显示用户的当前目录
在mintty下启动emacs的shell mode以后,总会在提示符之前显示几个固定的垃圾字符。
term和ansi-term也一样,网上搜索了很久也没有解决办法。
仔细分析以后发现,系统home下面的.bashrc里PS1变量最前面一段
\[\e]0;\w\a\]
其实是给xterm或者说给mintty修改title用的,下面是我用MSYS2系统的时候完整的PS1变量
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n\$ '
当我们启动emacs的shell mode以后,无法解析到最前面这几个字符。所以这几个字符就无情的显示在emacs的shell中了。
于是我想到了在emacs中重新定义PS1这个变量,也就是把seten的函数饮用一下放到emacs的启动elisp中,
(setenv "PS1" "XXXX")不过很悲惨地,你可以在emacs中通过M-x getenv看到这个变量,但是无法应用在emacs的shell中。于是,,,于是郁闷很久。
一天我上网突然看到有人在.bashrc中通过判断term的类型来重新定义PS1,感觉曙光就在眼前了。我把之前的PS1变量的设置方法重新写了一下
case $TERM in (xterm*) set_title='\[\e]0;\w\a\]' (*) set_title= esac PS1=$set_title'\n\[\e[32m\]\u@\h \[\e[35m\]$MSYSTEM\[\e[0m\] \[\e[33m\]\w\[\e[0m\]\n\$ '
也就是说,如果我当前执行的term不时xterm这类的,我就把之前设定title的字符移除。
结论当然是肯定的,从此以后emacs的shell,term,ansi-term都干净了。而且原来mintty的title还可以继续显示用户的当前目录
相关文章推荐
- bash,bg,bind,break,builtin,caller,compgen, complete,compopt,continue,declare,dirs,disown,enable,eval,exec,expo
- bash,bg,bind,break,builtin,caller,compgen, complete,compopt,continue,declare,dirs,disown,enable,eval,exec,expo
- Shell 语法 if 、 case 、for 、 while、 until 、select 、repeat、子函数
- Shell 读取文本内容
- Shell 脚本 ,, 根据进程号退出 从而关机
- Shell—AWK—脚本实例
- 你不知道的shell用法和脚本,简单&强大
- linux中shell常用联合批量操作命令
- Linux shell 倒计时脚本
- sh_shell的基础语法2
- Shell管道学习 free -m|grep "Mem"|awk'{print$2,$4}'
- Windows XP 的 Windows PowerShell 1.0 本地化安装
- linux shell实现随机数多种方法(date,random,uuid)
- [PowerShell Utils] Create a list of virtual machines based on configuration read from a CSV file in Hyper-V
- Drupal 7.31SQL注入getshell漏洞利用详解及EXP
- 客户端连接服务端
- Shell脚本一枚
- java调用shell脚本,并获得结果集的例子
- Hadoop Shell命令
- 在shell 上执行mongo 查询