Есть ли способ сообщить emacs / vi / vim (из командной строки), что я хочу просмотреть файл в view-mode
или read-only
.
Я знаю, как открыть файл только для чтения, если emacs / vi / vim уже запущен.
linux
command-line
vim
emacs
Nifle
источник
источник
Ответы:
Для Emacs:
Там нет опции запуска для принудительного чтения только.
Редактировать:
если вы поместите эту маленькую функцию в скрипт запуска оболочки (например, .bashrc), вы можете открыть файл только для чтения, набрав
ev file_to_view
источник
vim -R имя файла
источник
просмотреть имя файла
В основном vim в режиме только для чтения; Simples!
Как подсказывает комментарий, в случае, если
view
он связан с равнинойvi
, вот команды bash, которые сначала проверяют ситуацию, а затем исправляют ее:источник
vim
есть подсветка синтаксиса, но у васview
ее нет, возможно,view
это ссылка на минимальную версию, вvim
которой не скомпилирована подсветка синтаксиса. Сравните выходные данные:version
команды.argv[0]
чтобы определить свое поведение. Это обычная уловка; AFAIK иногда GCC и Bash делают это также.позволяет писать с
:w!
Запрещает пользователю вносить какие-либо изменения в файл в буфере. Но пользователь может сделать буфер модифицируемым с помощью
:set modifiable
Вы могли бы использовать
чтобы предотвратить отключение пользователем «nomodifiable», и позволить пользователю выйти, нажав
q
. Но тогда пользователь вообще не может войти в командный режим, который может быть или не быть тем, что вы хотите.Вы также можете открыть файл с помощью команды less:
Для просмотра файла в vim-подобной среде, но без возможности изменить файл.
источник
less
, хотя, как указывает @nxdrvr, вы можете нажать клавишу v, чтобы открыть файл в редактируемом режиме вvi
Небольшое продолжение принятого ответа: вы можете использовать псевдоним в своей оболочке, чтобы свести его к одной команде. Например, в bash вы можете поместить в ваш .bashrc следующее:
(разные оболочки будут иметь разные форматы для этого, но вы поняли)
Я бы добавил это в качестве комментария в ответ на принятый ответ, но не представляется возможным иметь многострочный блок «кода» в комментарии, и (в любом случае, в bash) приведенный выше код действительно должен быть на 3 отдельные строки.
источник
Чтобы просто просмотреть файл без возможности редактирования:
В
less
вы можете перейти в «режим редактирования файла», нажав vклавишу. Но вы не можете редактировать стандартный ввод, поэтому конвейеризация выводаcat <file>
на less останавливаетless
переход в режим «edit» при нажатии «v».Для VIM тот же подход
источник
v
предложение. Острота.cat
. Просто используйте<FILENAME less
.<file> less
ошибку, я полагаю, вы имели в видуless <file>
, но, как объяснено в ответе, приless
непосредственном использовании пользователь может нажать клавишу v и перейти в режим редактирования. Трубопровод,cat
чтобыless
это не происходило.less < FILENAME
, что дает вам «Не удается изменить стандартный ввод» при нажатии кнопки V . Аналогично с Vim:vim - < FILENAME
.Для emacs вы также можете использовать режим просмотра .
или альтернатива внутри терминала:
Или вы можете использовать мой скрипт
источник
В Emacs вы можете сделать
Подсветка синтаксиса применяется. Он не просто открывает файл как буфер только для чтения. В этом режиме некоторые команды, такие как I-search, доступны без клавиши управления.
источник
отправка файла в std out, может быть приемлемой, учитывая размер файла
источник
Я не собираюсь отказываться от чьего-либо ответа пользователя здесь, но я хотел бы добавить больше информации о
Read-only Mode
файле. Согласно режиму «Только для чтения», может быть, вы захотите просмотреть файл, но захотите защитить этот файл от случайных нажатий клавиш и изменений. (Возможно, вы захотите вызвать длинный файл, чтобы попрактиковаться в перемещениях vi, или вы можете прокрутить командный файл или программу). Вы можете ввести файл в режиме только для чтения и использовать все команды перемещения vi, но вы не сможете изменить файл.Чтобы посмотреть файл в режиме только для чтения, введите:
или же:
(Команда view, как и команда vi, может использовать любой из параметров командной строки для перехода к определенному месту в файле.) Если вы решите внести некоторые изменения в файл, вы можете переопределить режим только для чтения, выполнив добавление восклицательного знака в команду записи:
Если у вас есть проблемы с записью файла.
Для дальнейшей ссылки здесь
источник