【问题标题】:Creating an alias for emacs in read-only mode on Linux in my .tcshrc file在我的 .tcshrc 文件中在 Linux 上以只读模式为 emacs 创建别名
【发布时间】:2013-01-13 04:23:13
【问题描述】:

你知道这是我第一次发帖。

基本上,我试图在我的 .tcshrc 文件中放入一个别名(或其他东西),以便我可以在 emacs 中以只读方式打开一个文件(而不必每次都在下面键入简介)。我找到了这个 - https://superuser.com/questions/204236/how-can-i-open-a-file-read-only-from-command-line-with-emacs-vi-vim - 但由于 tcsh 不支持函数(我认为)我不能使用这种方法。

以只读格式打开emacs的命令行文本是这样的:

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

有什么想法吗?

谢谢 P.

【问题讨论】:

    标签: linux emacs command-line


    【解决方案1】:

    根据 Satish 的回答,但建议如果您使用 Emacs >=24.3,您可以而且应该使用 read-only-mode 而不是 toggle-read-only,后者仍然可以“工作”,但现在已经过时了。

    #!/bin/sh
    emacs "$@" --funcall read-only-mode
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • ...除非您使用它打开只读文件,在这种情况下,缓冲区将切换为可写。将缓冲区显式设置为只读是一个更好的解决方案。
      【解决方案3】:

      我会创建一个名为 emacs-ro 的脚本并放在你的 PATH 中

      #!/bin/bash
      emacs "$@" --funcall toggle-read-only
      

      或者你也可以使用你的选项。

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

      【讨论】:

      • 好东西。谢谢。使用 funcall 而不是 eval 解决了它!
      猜你喜欢
      • 2010-09-15
      • 2019-10-25
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多