之前写过一篇在emacs中使用TRAMP进行文件管理的文章,这里继续说几个后续问题。

Shell

之前提到,shell的提示符很恶心,当然,这个问题是可以解决的。shell里头有个叫PS1的环境变量,主要负责提示符的显示格式。在目标服务器上的~/.bashrc里头加入PS1的定义就好了,比如我的PS1是这样的

1
PS1="[\u@\h \W]\$ "

至于\u\h\W这些东西是怎么定义的,请自行谷歌,说这个的文章一大片。

TRAMP的相关设置

使用tramp中会有一些不方便的时候,比如你每次都要输入协议“ssh”,每次都有用户名和ip,当然,还要输入密码。这样的过程其实很烦,tramp中可以进行一些默认的设置来帮我们完成这些工作。比如:

1
2
3
(setq tramp-default-method "ssh")
(setq tramp-default-host "0.0.0.0")
(setq tramp-default-user "xiafei")

你甚至可以设定在哪台服务器上使用哪个id和哪种协议,这些都在TRAMP USER Manual里头,我就不多说了。

还有一个问题一直困扰着我,也是非emacser bs我的重要一点,每次我在emacs里头make一坨代码的时候都要输入一次密码。比如,M-x shell-command,输入make后,需要输入密码。每次make都这样,除非两次make时间间隔很短。这说明tramp还是有密码的缓存机制的,Manul里头也给出了答案——只需要设置变量password-cache-expiry即可,单位是秒,设置为nil表示不缓存。比如我的:

1
(setq password-cache-expiry 36000)

你懂的….哈哈…

p.s. 原文地址,http://chunyemen.org/archives/487,欢迎访问纯爷们的小生活

p.s.s 这个连姓氏都可以成为敏感瓷的时代真是别有乐趣

Tagged with:
 

Emacs是Linux下常用的文本编辑器之一,但是远程文件管理往往是emacser比较头疼的问题。离开了自己的.emacs的程序员就仿佛看到了另外一个编辑器,更重要的是,你的终端——putty、secureCTR甚至gnome-terminal会吃掉大量的快捷键,这些也就让远程文件管理成为很多emacser的噩梦。另一方面,vim身材娇小,与系统紧密结合,少有特殊的键盘绑定,这让无数emacser未知愤恨和无奈。

不过,emacs毕竟是一个牛叉的“操作系统”,我理解为emacs=shell+vim(vimer请淡定,just a joke…)。所以,凡是shell里头能搞定的,emacs就能搞定。好了,祭出今天的主角——TRAMP。

文件管理

其实TRAMP已经在你的emacs里头潜伏很久了,从22开始,它就集成在emacs中了。方法很简单,C-c C-F, 然后按照下面的图输入:

格式是:/protocol:user@host:path。protocol可以是ssh和ftp。过程中需要输入密码~

然后你会看到这个:

这个时候,基本的文件管理是没有问题了,添加删除改名移动都没问题,emacser,你懂的!如果不懂,press h for help.

Shell

如果你非要一个shell,那就M-x shell吧。额,功能没有问题,不过提示符是丑陋了点….不过multi-term不好使,eshell我没试过…当打开远程目录的时候,emacs的环境已经是远程的主机了,所以shell也是在那里的。

Coding

本地的emacs,远程的文件,所以yasnippet能用,cedet也好使。靠,还有什么能比这两个家伙正常工作更爽的了?感觉很顺畅,至少不用把自己的一大堆.emacs和.emcs.d/往服务器上捣了,至少不用找人少的时候在服务器上偷偷编译新版本的emacs了。上图:

本地sudo

这也是一直纠结我的问题,相信不少emacser也纠结过。如果你需要root权限来修改一个文件,你可以sudo vim fileName. 不过,把这种方式套用到emacs上来就有点令人恶心了,emacs启动速度确实不能跟vim比。那怎么办呢?请参看文章最开始,user是root,host是localhost。还有什么好说的?emacser,你懂的!

最近一直和emacs做伴,直接导致培训后的考试里头关于vim的题基本不会….悲剧啊…

p.s. 原文地址:http://chunyemen.org/archives/439,欢迎访问纯爷们的小生活

Tagged with: