.bashrcにいくつかのエイリアスを入れて、gvimでプロジェクトファイルのグループを開きます。それぞれのタブにあります。
gvim -p <list of file names using absolute paths>
いつでも移動したいファイルのグループがいくつかある場合を除いて、これはすべて順調です(私の現在のプロジェクトでは、RailsでRubyを使用しているため、それが説明されています)。新しいタブをgvimの既存のインスタンスに追加できるかどうかは本当に素晴らしいです。最後の位置では、Vistaで作業していました。gvimで空のタブの束を開いてこれを回避し、右クリックしてファイル名を入力して[既存のNo-Name gvimで開く]を選択します。Ubuntuを使用しているため、コンテキストメニューにそのようなものはありません。コマンドラインからこれを行う方法はありますか?
Vimが clientserver オプションでコンパイルされている場合は、それを実行できます。次のフラグを使用してvimインスタンスを開始します。
$ gvim --servername GVIM # GVIM is the server name. It can be anything.
このインスタンスでさらにタブを開くには、次のコマンドを実行します。
$ gvim --servername GVIM --remote-tab file1 file2 file3 ...
Vimのclientserver機能は非常に便利です。ファイルを開くことに限定されません。コマンドラインを使用してvimにコマンドを送信するために使用できます。たとえば、vimインスタンスをリモートで閉じるには、次のコマンドを使用できます。
$ gvim --servername GVIM --remote-send '<Esc>:wqa<CR>'
Gvim内から、:tabe {file_name}
と入力します。指定したファイルが新しいタブで開きます。長いファイル名を入力したくない場合は、次のことを試してください。
:tabnew
:e .
これにより、新しい空白のタブページが開き、ファイルブラウザが開きます。マウスをクリックするか、キーボードを使用できます。開くファイルをクリックするか、Enterキーを押します。キーボードを使用して、開きたいファイルの上にカーソルを置き、「t」を押してみてください。これにより、選択したファイルが新しいタブで開き、ファイルブラウザが最初のタブで開いたままになります。これは、ファイルの束を開くための高速な方法である可能性があります。
タブページを使ってできることはたくさんあります。 Vimのオンラインヘルプマニュアルの関連セクションに移動するには、:h tabpage
と入力します。
Windowsのコンテキストメニューで、現在開いているgvimウィンドウの新しいタブでファイルを開くことができますか?
これをtemp.regというファイルとして保存し、ダブルクリックして設定をレジストリに追加します。パスが異なる場合は、必ずvimへのパスを変更してください。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\Shell\Open with &Vim]
[HKEY_CLASSES_ROOT\*\Shell\Open with &Vim\command]
@="\"C:\\Program Files (x86)\\Vim\\vim73\\gvim.exe\" -p --remote-tab-silent \"%1\" \"%*\""
次のようなコンテキストメニューが表示されます。
Linuxユーザーは次の種類のスクリプトを使用できます。
#!/bin/bash
ANS=`pgrep -fx "gvim --servername GVIM"`
echo $@
if [[ ! $ANS ]]; then
gvim --servername GVIM
fi
if [[ $1 ]]; then
gvim --servername GVIM --remote-tab "${@}"
fi
次に、このスクリプトを使用するためにgvim.desktopファイルを編集します。
Exec=/home/user/bin/my_gvim_script.sh %F
これが私のgvim起動スクリプトです。これは以前の回答の延長です。すべての状況でgvim
が呼び出されたときに実行されるgvim
インスタンスは1つだけです。
gvim
インスタンスが実行されていない場合、gvim
はファイル名なしで呼び出されます。 gvim
が起動しました。gvim
は、gvim
インスタンスが存在する場合、ファイル名なしで呼び出されます。空の新しいタブが開きます。gvim
は、gvim
インスタンスの有無にかかわらずファイル名で呼び出されます。ファイルを表示するタブが開きます。これは、他のエディターの標準的な動作を模倣します。
#!/bin/bash
exec=/usr/bin/gvim #the path to gvim
if [ $# -eq 0 ]
then # no filename given
if [ -z $($exec --serverlist) ]
then # no filename given and no gvim instance
$exec -f --servername GVIM > /dev/null 2>&1
else # no filename given, but a gvim instance exists
$exec -f --servername GVIM --remote-send ':tabnew<CR>' > /dev/null 2>&1
fi
else # filenames given
$exec -f --servername GVIM --remote-tab "$@" > /dev/null 2>&1
fi
やり方がある:
n*.cpp|tab ba
または分割したい場合:
n*.cpp|sba
もっと知りたい場合:
:help ba
n
が何であるかはわかりませんが、それがないと機能しません。