Answers:
vim -R文件名
查看文件名
vim基本上是只读模式;简单!
正如评论所暗示的,万一view
链接到plain vi
,这里是bash命令,它首先检查情况,然后进行修复:
# 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)
vim
有语法突出显示但view
没有语法突出显示,则可能是您view
的链接的最低版本vim
没有编译语法突出显示。比较:version
命令的输出。
argv[0]
以决定其行为。这是一个常见的把戏。AFAIK有时GCC和Bash也会这样做。
vim -R <file>
允许与 :w!
vim -c ":set nomodifiable" <file>
防止用户对缓冲区中的文件进行任何更改。但是用户可以通过以下方式修改缓冲区:set modifiable
你可以用
vim -c ":noremap q :q<cr>" -c ":map : <Esc>" -c ":set nomodifiable" <file>
以防止用户关闭“ nomodifiable”,并允许用户通过按退出q
。但是,那么用户根本无法进入命令模式,这可能是或可能不是您想要的。
您也可以使用less命令打开文件:
less <file>
在类似于vim的环境中查看文件,但无法更改文件。
less
,尽管@nxdrvr指出您可以按v键在vi
要仅查看文件而不能编辑:
cat <file> | less
在其中,less
您可以通过按键进入“编辑文件模式” v。但是您不能编辑标准输入,因此在按“ v” cat <file>
键时,将输出传递到less会停止less
进入“编辑”模式。
对于vim同样的方法
cat <file> | vim -
v
建议。好漂亮
cat
。只需使用<FILENAME less
。
<file> less
将给出一个错误,我假设是您的意思less <file>
,但是如答案中所述,当less
直接使用时,用户可以按v键进入编辑模式。用管道cat
来less
阻止这种情况的发生。
less < FILENAME
,当您按下V时,它会为您提供“无法编辑标准输入” 。同样用Vim: vim - < FILENAME
。
对于emacs,您还可以使用view-mode。
emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'
或终端内的替代方案:
emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'
或者您可以使用我的包装器脚本
发送文件到标准输出,考虑到文件的大小,可以接受
cat <file> # dump whole file to stdout
head <file> # view the first few lines
tail <file> # view the last n lines
我不会在这里向任何用户答复,但我想添加一些有关Read-only Mode
文件的更多信息。根据oreilly文档的只读模式,有时您会想要查看文件,但又想保护该文件免受意外的击键和更改。(您可能需要调用一个长文件来练习vi的移动,或者您可能想滚动浏览命令文件或程序)。您可以以只读模式输入文件并使用所有vi Movement命令,但将无法更改该文件。
要以只读模式查看文件,请输入:
$ vi -R file
要么:
$ view file
(view命令和vi命令一样,可以使用任何命令行选项前进到文件中的特定位置。)如果您决定对文件进行一些编辑,则可以通过以下方式覆盖只读模式:在写命令中添加一个感叹号:
:w!
or:
:wq!
如果您在写文件时遇到问题。
在这里进一步参考