相关疑难解决方法(0)

从bash shell脚本中打开vim

我想要执行以下操作的bash shell

  1. 使用vim打开文件
  2. 把东西写进档
  3. 保存并退出文件

    bashpromt# cat mybash.sh
      echo "about to open a file"
      vim file.txt #I need to use vim application to open a file
      #now write something into file.txt 
      #close the that file.
      echo "done."
    
    Run Code Online (Sandbox Code Playgroud)

那可能吗?我找到了类似vim脚本的东西,但不知道如何使用它.或者像"HERE"doc这样的东西可以用于此吗?

编辑:我需要验证vim编辑器在我们的文件系统上工作正常.所以我需要编写调用vim的脚本并执行一些命令并关闭它.我的要求不适合做"回声"的东西"> file.txt".我必须使用vim打开文件.

linux vim bash

11
推荐指数
3
解决办法
2万
查看次数

使用vim的-W选项

-w-WVIM的选项具有理论上的效果如下:

-w {scriptout}您输入的所有字符都记录在文件"scriptout"中,直到您退出Vim.如果要创建要与"vim -s"或":source!"一起使用的脚本文件,这将非常有用.当"scriptout"文件已存在时,将追加新字符.另见| complex-repeat |.{scriptout}不能以数字开头.{Vi无此功能}

-W {scriptout}与-w类似,但不附加,覆盖现有文件.{Vi无此功能}

但是当我这样做时,{scriptout}文件将始终以十六进制序列开头80 fd 60(有时是80 fd 62).

我在portableapps.com上使用gvimportable.exe 7.3.使用-u NONE开关,它也是如此.

这个"神奇数字"是什么?在Windows下使用gvim.exe我无法重播我的脚本,直到我删除了这三个前导字节...

似乎这个功能非常有用,但很难记录.

谢谢您的回答.

vim

6
推荐指数
1
解决办法
768
查看次数

在bash脚本中调用vim的搜索和替换函数

我有一个(> 100)个文件,我想用vim处理.示例文件的文本包含以下内容(仅示例):

xyz.csv        /home/user/mydocs/abc.txt

/home/user/waves/wav.wav , user_wav.wav  
Run Code Online (Sandbox Code Playgroud)

我希望将其替换为:

xyz.csv      /var/lib/mydir/abc.txt
/var/sounds/wav.wav , wav.wav  
Run Code Online (Sandbox Code Playgroud)

在每个文件中,我需要进行的更改是相同的.我的问题是:

  1. 我可以vim通过在bash脚本中调用它来使用搜索和替换功能吗?

  2. 如果是这样,我该怎么做呢?

PS:我搜索了SO以获得一些回复,并找到了一些答案,如ex脚本等.我想知道如何exbash脚本中调用脚本.

vim bash replace

1
推荐指数
1
解决办法
5874
查看次数

标签 统计

vim ×3

bash ×2

linux ×1

replace ×1