VI経由でコピーされたファイルを開く方法

VI経由でコピーされたファイルを開く方法

「a.txt」があるとしましょう。ファイルをコピーしたら、VIを使用して新しくコピーしたファイルを開きたいです。

cp a.txt b.txt
vi b.txt

2つのコマンドを1つのコマンドにまとめるには?

答え1

a.txtを開き、内容をb.txtに保存して(効果的にコピー)、b.txtに切り替えてvi自体を使用してコピーできます。

一緒に入れてください:

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

これは、(内部的に)コンテンツをb.txtというファイルに保存するコマンドを実行したvi a.txt後に実行するのと同じです。ただし、この時点でviはまだa.txtを編集しているため、「代替ファイルの編集」(または「最後のファイルの編集」)を意味するコマンドを続行し、viがb.txtに触れた場合は次のように切り替えます。文書を編集中です。:w b.txtvi:e#

答え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のドット演算子を思い出させます。

幸せなゴルフ。

関連情報