如何通过VI打开复制的文件

如何通过VI打开复制的文件

假设我有“a.txt”。我想复制该文件并使用VI打开新复制的文件。

cp a.txt b.txt
vi b.txt

如何将两个命令合并在一个命令中?

答案1

您可以使用 vi 本身进行复制,方法是打开 a.txt,然后将内容保存到 b.txt(有效复制它),然后切换到 b.txt。

把它们放在一起:

vi -c 'w b.txt' -c 'e#' a.txt

这相当于运行vi a.txt,然后运行:w b.txt命令(在 内部vi),这会将内容保存到名为 b.txt 的文件中。但此时 vi 仍将编辑 a.txt,因此您继续执行该:e#命令,这意味着“编辑替代文件”(或“编辑最后一个文件”),并且鉴于 vi 刚刚触及 b.txt,它将切换到编辑该文件。

答案2

使用&&运算符

cp a.txt b.txt && vi b.txt

答案3

您可以编写自己的函数并使用该函数。在下面的示例中,您可以使用 cp1 作为命令。

例子:

$ cat test.txt
function cp1() {
  source_file=$1
  destination_file=$2
  cp "${source_file}" "${destination_file}"
  vi "${destination}"
}

$ . ./test.txt    
$ cp1 a.txt b.txt 

答案4

如果您想要一种节省输入的方法,您可以使用 bash 内置功能来重复上一个命令的最后一个单词。你可以通过以下方式做到这一点ALT+.

> cp a.txt b.txt
> vi ALT+.

非常有用,让你想起 vim 的点运算符。

快乐打高尔夫球。

相关内容