web-dev-qa-db-ja.com

gvimを「インスタンスのみ」にする

Gvimを「インスタンスのみ」にしたい。つまり、新しいインスタンスを開くのではなく、すでに開いているgvimインスタンスのタブとしてファイルを開くオプションなどを知っている。

明確にする例:1つのファイルmodule1.cでgvimウィンドウを開いているとします。ターミナルを使用しているとすると、module1.cと同じウィンドウで「module2.c」を開くには、どのコマンドを入力する必要がありますか?

PS:複数のタブで複数のファイルを開くことができる-pオプションがあることを知っています。しかし、私が探しているのは、すでに実行された後にOUTSIDEGvimから新しいタブを開く方法です。

どうやるか?それも可能ですか?

6
Rafael Almeida

gvimを「インスタンスのみ」にしたい、つまり、新しいインスタンスを開くのではなく、すでに開いているgvimインスタンスのタブとしてファイルを開くオプションまたは何かを知っている。

ここで何かを明確にさせてください... vimでは、タブは人々が期待するものではありません。ほとんどのプログラムでは、それらはファイルの「インスタンス」(1つのタブ/ 1つのファイル)ですが、vimでは、複数のvimウィンドウを配置できる単なる「視点」であり、それぞれに入力したものを保持します。

Vimは、ファイルを開くときに、そのファイルをバッファーで開きます。ファイルごとに1つのバッファー。開いているバッファのリストを表示するには、

:ls

明確にする例:gvimウィンドウを1つのファイルmodule1.cで開いているとします。端末を使用しているとすると、「module2.c」をで開くにはどのコマンドを入力する必要がありますかmodule1.c?と同じウィンドウ

繰り返しますが、用語の問題があります。説明のために、vimの内部ウィンドウではなく、Windowsウィンドウのような「ウィンドウ」を意味すると仮定します。すでに開いているgvimインスタンスでファイルを開きたい場合は、

gvim first_file.dat
gvim --remote-tab second_file.dat

これは、.batファイルに入れることで簡単に短縮でき(Windowsを使用している場合)、「--...」の部分を何度も入力する必要はありません。

追記:複数のタブで複数のファイルを開くことができる-pオプションがあることは承知しています。しかし、私が探しているのは、すでに実行された後、外部のgvimから新しいタブを開く方法です。 。

興味深いことに、私はそれについて知りませんでした:)

それを行う方法?それも可能ですか?

それがあなたが探していたものであるかどうかを教えてください。

7
Rook

Vimは、+ clientserverオプションを指定してコンパイルされている場合、クライアントサーバーモードで実行するとこれを実行できます。

-servernameオプションを指定して最初のvimインスタンスを起動します。

gvim --servername FILES --remote-silent file.txt

これで、-servernameを指定するか、-だけを指定することで、このインスタンスでさらにファイルを開くことができます。 remoteオプション。

gvim --remote file2.txt

gvim --servername FOOBAR --remote file3.txt

Vimのマニュアルドキュメントから引用 クライアントサーバーモードで 。 Afaik、新しいファイルはアクティブなタブでバッファとして開かれます。着信ファイルを新しいタブで開くようにvimを構成できるかどうかはわかりません。

3
user4358