在我的.tcshrc文件中以只读模式在Linux上为emacs创建别名

在我的.tcshrc文件中以只读模式在Linux上为emacs创建别名,linux,emacs,command-line,Linux,Emacs,Command Line,让你知道这是我的第一篇帖子 基本上,我正在尝试在.tcshrc文件中添加一个别名(或其他内容),以便以emacs只读模式打开文件(无需每次都在下面键入blurb)。我发现了这一点——但由于tcsh不支持函数(我认为),我不能使用这种方法 以只读格式打开emacs的命令行文本如下: emacs文件名--eval'(setq缓冲区只读t)' 有什么想法吗 谢谢 P.我将创建名为emacs ro的脚本,并将其放置在您的路径中 #!/bin/bash emacs "$@" --funcall toggl

让你知道这是我的第一篇帖子

基本上,我正在尝试在.tcshrc文件中添加一个别名(或其他内容),以便以emacs只读模式打开文件(无需每次都在下面键入blurb)。我发现了这一点——但由于tcsh不支持函数(我认为),我不能使用这种方法

以只读格式打开emacs的命令行文本如下:

emacs文件名--eval'(setq缓冲区只读t)'

有什么想法吗

谢谢
P.

我将创建名为

emacs ro的脚本,并将其放置在您的路径中

#!/bin/bash
emacs "$@" --funcall toggle-read-only
或者你也可以使用你的选择

--eval '(setq buffer-read-only t)'

tcsh别名中的引号和括号可能有问题,因此Satish的答案中的
--funcall toggle read only
可能比
--eval
更容易使用。要在文件名后插入参数,可以使用
\!:1第一个参数的表达式:

alias emacs-ro emacs \!:1 --funcall toggle-read-only

根据Satish的回答,但有人建议,如果您使用的Emacs>=24.3,您可以并且应该使用
只读模式
,而不是
切换只读模式
,后者仍将“起作用”,但现在已经过时

#/垃圾箱/垃圾箱
emacs“$@”-funcall只读模式

很棒的东西。谢谢用funcall代替eval解决了这个问题!。。。除非您使用它打开只读文件,在这种情况下,缓冲区将切换为可写。将缓冲区显式设置为只读是一个更好的解决方案。