Nif*_*fle 84 linux vim emacs command-line
有没有办法告诉 emacs/vi/vim(从命令行)我想在view-mode或read-only.
我知道如何在 emacs/vi/vim 已经运行时以只读方式打开文件。
Red*_*ick 147
vim -R 文件名
Tre*_*son 51
对于 emacs:
emacs FILE --eval '(setq buffer-read-only t)'
Run Code Online (Sandbox Code Playgroud)
没有强制只读的启动选项。
编辑:
如果你把这个小函数放在你的 shell 启动脚本(例如 .bashrc)中,你可以通过键入来打开一个只读文件ev file_to_view
ev() {
emacs "$1" --eval '(setq buffer-read-only t)'
}
Run Code Online (Sandbox Code Playgroud)
小智 26
查看文件名
基本上 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)
Run Code Online (Sandbox Code Playgroud)
Jay*_*Jay 10
vim -R <file>
Run Code Online (Sandbox Code Playgroud)
允许写作 :w!
vim -c ":set nomodifiable" <file>
Run Code Online (Sandbox Code Playgroud)
防止用户对缓冲区中的文件进行任何更改。但是用户可以使缓冲区可修改:set modifiable
你可以用
vim -c ":noremap q :q<cr>" -c ":map : <Esc>" -c ":set nomodifiable" <file>
Run Code Online (Sandbox Code Playgroud)
防止用户关闭“不可修改”,并允许用户通过按退出q。但是,用户根本无法进入命令模式,这可能是您想要的,也可能不是。
您还可以使用 less 命令打开文件:
less <file>
Run Code Online (Sandbox Code Playgroud)
在类似 vim 的环境中查看文件但不能更改文件。
小智 9
接受的答案的小后续:您可以在 shell 中为它设置别名,以将其简化为单个命令。例如,在 bash 中,您可以将以下内容放入 .bashrc:
emacsro() {
emacs $1 --eval '(setq buffer-read-only t)'
}
Run Code Online (Sandbox Code Playgroud)
(不同的外壳会有不同的格式来执行此操作,但您明白了)
我会将此添加为对已接受答案的回复的评论,但似乎不可能在评论中包含多行“代码”块,并且(无论如何在 bash 中)上面的代码确实需要在 3 个单独的行上。
小智 6
要仅查看文件而无法编辑:
cat <file> | less
Run Code Online (Sandbox Code Playgroud)
在less您可以通过按v键进入“编辑文件模式” 。但是您无法编辑标准输入,因此将输出管道cat <file>传输到less,less在按“v”时停止进入“编辑”模式。
对于 vim 相同的方法
cat <file> | vim -
Run Code Online (Sandbox Code Playgroud)
小智 6
在 emacs 中你可以这样做
emacs FILE -f view-mode
Run Code Online (Sandbox Code Playgroud)
应用语法突出显示。它不只是将文件作为只读缓冲区打开。在此模式下,无需使用控制键即可访问某些命令,例如 I-search。
小智 5
对于 emacs,您还可以使用view-mode。
emacsclient --create-frame --eval '(view-file "/tmp/EXAMPLE")'
Run Code Online (Sandbox Code Playgroud)
或终端内的替代方案:
emacsclient --nw --eval '(view-file "/tmp/EXAMPLE")'
Run Code Online (Sandbox Code Playgroud)
或者你可以使用我的包装脚本
| 归档时间: |
|
| 查看次数: |
71961 次 |
| 最近记录: |