如何使用 emacs/vi/vim 从命令行以只读方式打开文件

如何使用 emacs/vi/vim 从命令行以只读方式打开文件

有没有办法告诉 emacs/vi/vim(从命令行)我想要查看view-mode或中的文件read-only

我知道如果 emacs/vi/vim 已在运行,如何以只读方式打开文件。

答案1

对于 emacs:

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

没有强制只读的启动选项。

编辑:
如果你把这个小函数放在你的 shell 启动脚本(例如 .bashrc)中,你可以通过输入以下内容以只读方式打开文件ev file_to_view

ev() {
  emacs "$1" --eval '(setq buffer-read-only t)'
}

答案2

vim -R 文件名

答案3

查看文件名

基本上 vim 处于只读模式;简单!

正如评论所暗示的,如果view与普通链接vi,则这里是狂欢首先检查情况然后修复它的命令:

# non-destructive inspection
which vim
which view
ls -l $(which view)

# overwrite current view with symlink to vim, requires root
ln -sfv $(which vim) $(which view)

答案4

对已接受答案的小小跟进:您可以在 shell 中为其添加别名,以将其简化为单个命令。例如,在 bash 中,您可以在 .bashrc 中输入以下内容:

emacsro() {
  emacs $1 --eval '(setq buffer-read-only t)'
}

(不同的 shell 执行此操作的格式不同,但你应该明白了)

我本来想将其添加为对已接受答案的评论,但似乎不可能在评论中包含多行“代码”块,并且(无论如何在 bash 中)上述代码确实需要放在 3 个单独的行上。

相关内容