加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何通过shell脚本执行vim命令

发布时间:2020-05-30 20:58:02 所属栏目:Linux 来源:互联网
导读:嗨我有一个情况 我有一个shell脚本,我必须将输入传递给vim. 详细解释 在这里,我已经编写了我无法更改的shell脚本.这是它的代码. sudo vim /mnt/etc/{hosts,hostname,ports} 由于打开了这个主机文件,我们可以手动在主机名文件旁边通过:n和ports文件的类似文件

嗨我有一个情况

我有一个shell脚本,我必须将输入传递给vim.

详细解释

在这里,我已经编写了我无法更改的shell脚本.这是它的代码.

sudo vim /mnt/etc/{hosts,hostname,ports}

由于打开了这个主机文件,我们可以手动在主机名文件旁边通过:n和ports文件的类似文件.

但我必须从我的.sh文件中执行相同的操作.
此外,我必须编辑ports文件,完成后我必须保存并完成它:wq命令.

我该怎么做?

解决方法

备择方案

除非你真的需要特殊的Vim功能,否则最好使用非交互式工具,如sed,awk或Perl / Python / Ruby /你最喜欢的脚本语言.

也就是说,您可以非交互式使用Vim:

无声批处理模式

对于非常简单的文本处理(即使用Vim,如增强的’sed’或’awk’,可能只是受益于:substitute命令中的增强正则表达式),请使用Ex模式.

# Unix
vim -T dumb --noplugin -n -es -S "commands.ex" "filespec"

注意:如果“commands.ex”文件不存在,Vim将挂起等待输入;更好地检查它的存在!或者,Vim可以从stdin读取命令.您还可以使用从stdin读取的文本填充新缓冲区,如果使用 – 参数,则从stderr读取命令.

完全自动化

对于涉及多个窗口的更高级处理,以及Vim的真实自动化(您可以与用户交互或让Vim运行以让用户接管),请使用:

vim -N -u NONE -n -c "set nomore" -S "commands.vim" "filespec"

以下是使用的参数的摘要:

-T dumb           Avoids errors in case the terminal detection goes wrong.
-N -u NONE        Do not load vimrc and plugins,alternatively:
--noplugin        Do not load plugins.
-n                No swapfile.
-es               Ex mode + silent batch mode -s-ex
                Attention: Must be given in that order!
-S ...            Source script.
-c 'set nomore'   Suppress the more-prompt when the screen is filled
                with messages or output to avoid blocking.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读