如何使用 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連結到 plain 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 條單獨的線上。

相關內容