Есть ли способ сообщить 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) приведенный выше код действительно должен располагаться на трех отдельных строках.