之前写过一篇在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:
 

上一篇文章提到使用TRAMP进行远程的文件管理以及coding,现在我基本上能够使用本地emacs进行远程工作了。这样做的好处是,如果你有多台服务器,你不必为每台服务器配置一遍emacs,不必考虑不同服务器上emacs的版本问题。

但是,我发现cscope在远程条件下不能建立索引,更不能查找变量、函数什么的了。google了好久,在这里看到了答案。大概解释一下。

先说做法,编辑你load-path下的xcscope.el,修改以下三个地方:
1991行

1
(apply 'start-process "cscope" outbuf

改为

1
(apply 'start-file-process "cscope" outbuf

2001行

1
(apply 'call-process cscope-program nil outbuf t options)

改为

1
(apply 'process-file cscope-program nil outbuf t  options)

2124行

1
(apply 'start-process "cscope-indexer"

改为

1
(apply 'start-file-sprocess "cscope-indexer"

完成修改之后,就能够在远端建立索引,查找变量什么的了。不过这样做有个毛病,每次进行cscope操作的时候都要输入密码。额,很无奈的一件事情,cscope每次都会新开一个shell,然后输入密码,唉,为什么不缓存一下密码呢….

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

Tagged with: