Linuxターミナルからvimインスタンスを再利用します
質問
vimのリモート機能を利用することにより、vimのインスタンスを再利用して、必要に応じて複数のファイルをロードできます。
同じ端末インスタンス内からその機能を使用すると便利です。
vim 7+で利用可能なタブベースのインターフェイスを使用したい シナリオは次のようになります
- ターミナルを開く
- vim file1.cpp
- 編集-保存-プロンプトを表示するにはCtrl + Z
- 別のファイルを開く
- vim file2.cpp
- 同じエディタでfile1.cppとfile2.cppを開いています
それは可能ですか?!
解決
あなたのためにいくつかの提案がありますが、どちらもあなたが話していることそのものではありません。 1つ目は NERDツリーで、ツリーベースの素敵なものを提供します他のファイルを開くためのファイルブラウザ。とても便利な。また、 NERD Tree を開くためのホットキー(ctrl+o
)も設定しました。 a>私にとって。 ~/curr/trunk
にあるプロジェクトのエイリアスを保持しているので、これは常に機能します:
map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>
私が提案する他のことは、ctrl + zを廃止することです。それはやや不格好であり、その方法を使用する私が知っている誰もが迷子になり、バックグラウンドで3つまたは4つのvimが実行されることになります。自分でシェルを開く方法を見てください。 ; sのマップを使用してシェルスクリプトを実行します:
map ;s :!~/.vim/shell.sh<CR>
実行するもの:
#!/bin/sh
/usr/local/bin/bash -l;
VIMであることを明確にするために、.profileにも少し魔法があります:
if [ "$VIMRUNTIME" != "" ] ; then
export PS1="\u@\h \W \t$ vim> "
fi
<!> lt; / 2セント<!> gt;
他のヒント
これが指定した方法で正確に実行できるかどうかはわかりませんが、おそらくローカルマシンで実行されているvimサーバーを使用して非常によく似た処理を実行できます。
Vimで:help remote.txt
を調べます。
vimのバージョンが+clientserver
でコンパイルされている場合、vimを使用してvimサーバーを作成し、その上でコマンドを実行できます。別のファイルを開きます。
--servername
スイッチは新しいサーバーを作成でき、--remote
スイッチは追加のコマンドまたはファイルを送信できます。
e.g。
vim --servername test file1.txt
vim --servername test --remote file2.txt
見ましたが、私のコンピューターの1つでxubuntuの標準として使用しているvimにはありませんが、こちらを使用すると、コンパイル済みの場合に役立ちます。そうでない場合は、gvimのインストールとシンボリックリンクは明らかにオプションです(gvimにはデフォルトで含まれているため)、またはソースからバイナリをコンパイルします。
編集:
私はgvimでもっと遊びましたが、これは端末内でこれを行うことは不可能に見えます。 Control-Zは、プロセスレベルでジョブを一時停止します。私はそれが画面で動作するかもしれないと思ったが、gvimがグラフィカルウィンドウで起動しない限り、通信は行われないようだ。
次のことを行いました:
VIMをサーバーとして起動しました:
vim --servername abc
CTRL+Z
で中断して、次のようにしました:
vim --servername abc --remote ~/.cshrc
fg
VIMで~/.cshrc
が開きました。
その後、私がやった:
vim --servername abc --remote ~/.aliases
fg
VIMには1つのバッファーが~/.aliases
で、別のバッファーが~/foo_bar
でした。
その後、私がやった:
vim --servername abc --remote-tab ~/foo_bar
fg
そして今、VIMには、2つの前のバッファーが開いているタブと、<=>が開いている別のタブがありました。
コールケースでは、VIMはGUIではなくターミナルで実行されていました。
次の方法で、現在の画面を分割して2つ(またはそれ以上)のファイルを開くことができます:
水平分割の場合、次の操作を行います。
:sp 'filename'
そして垂直分割の場合:
:vsp 'filename'
2つのタブを切り替えるには、ctrl + wを押してから、矢印キーを使用して、編集するファイルに移動します。
また、ファイルを切り替えるだけ(そして開いているファイルを1つだけにする)場合は、次の操作を実行できます。
:e 'filename'
G'day、
または、複数のファイルを作成したいが、一度に1つのファイルに対してvimウィンドウ全体を使用する場合は、単に入力できます
:e 'filename'
新しいファイルを開きます。これは複数回実行できます。現在開いているものを確認するには、次を入力します
:ls
開いたファイル間をバウンスするには、cntl- ^(shift-cnt-6)を使用できます。これにより、メインファイルとセカンダリファイルが交互に表示されます(ファイルリストに%と#が表示されます)
または入力できます
:n b
nは、「ls」コマンドで表示されるリスト内の目的のファイルの先頭にある番号です。
HTH
歓声、
vimでhidden
機能を設定して、複数のファイルを開くことができます:
:set hidden
その後、<!> quot; buffer <!> quot;を切り替えるたびにファイルを保存することなく、必要な数のファイルを開くことができます:
:e 'filename'
バッファをナビゲートするためのコマンドがいくつかあります:
:bnext
:bprev
:buffers
もちろん、samozで述べたように、画面を分割して同じウィンドウに複数のバッファーを表示できます。
vimに関する優れた紹介については、これを読むことをお勧めします。時間を大幅に節約できます。
がんばって!