Как открыть файл только для чтения из командной строки с помощью 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)'

При запуске нет возможности принудительного перехода в режим «только чтение».

Редактировать:
Если вы поместите эту небольшую функцию в скрипт запуска оболочки (например, .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

Небольшое дополнение к принятому ответу: Вы можете создать псевдоним в своей оболочке, чтобы сократить его до одной команды. Например, в bash вы можете поместить следующее в свой .bashrc:

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

(в разных оболочках для этого будут разные форматы, но вы поняли идею)

Я бы добавил это как комментарий в ответ на принятый ответ, но мне показалось невозможным разместить многострочный блок «кода» в комментарии, и (по крайней мере, в bash) приведенный выше код действительно должен располагаться на трех отдельных строках.

Связанный контент