私の友人は、数日前にEmacsでクールなトリックを見せてくれました。リモートサーバーでファイルを開くだけで、すぐに「vimでもそれを行う方法があるはずだ」と思いました。
私はそれ:e scp://user@server//filepathを行うために使用するだけで問題ありません;)。ただし、サーバー名を入力するだけで、ファイルのパスと名前(タブ付き)の補完を取得できます。これは私にはできませんでした。誰かがこれがvimでできるかどうか知っていますか?
私の友人は、数日前にEmacsでクールなトリックを見せてくれました。リモートサーバーでファイルを開くだけで、すぐに「vimでもそれを行う方法があるはずだ」と思いました。
私はそれ:e scp://user@server//filepathを行うために使用するだけで問題ありません;)。ただし、サーバー名を入力するだけで、ファイルのパスと名前(タブ付き)の補完を取得できます。これは私にはできませんでした。誰かがこれがvimでできるかどうか知っていますか?
回答:
はい。ただし、vimのビルトインファイルマネージャーはリモートブラウジングをネイティブにサポートしていないため、現在(2015)はすぐに使用できるわけではありません。。
2016年第3四半期の更新:
さまざまな程度の快適さ/互換性/努力で、いくつかの回避策があります。これらをすべて合わせると、すばらしいソリューションになりますが、すべて個別に使用することもできます。
シェルの初期化ファイルにユーザーレベルafuse/ sshfsデーモンを設定します
例えばからの数行のスクリプト.profileで、例えばディレクトリの下にオンデマンドの自動マウンターをセットアップできます~/scp/。この統合の詳細は、UnixおよびLinux SEの投稿にあります。これは、最も快適なオプションは、リモートファイルはローカルの「見える」ですが、必要とafuseし、sshfsあなたに利用できるようにします。
リモートファイルパスのセットアップシェルコマンドライン補完
bashの完了関数パッケージには、完了のために設計されたいくつかの関数がsshありscpます。ラッパー関数を使用してvim()、リモートパスをvim期待どおりの形式にマングリングし、それらを使用してTABが完成したリモートファイルをに提供できますvim。このアプローチのマイナーな欠点についても詳しく説明しています。混乱のない状況の場合。bash-completionインストールする必要があるか、同等であり、他のシェルに適合させる必要があります。
環境を変更できない場合、または.vimrc-only:vimファイルマネージャでは、// ?キーを使用して前方/後方を検索できTAB、それらの1つにマッピングできます。これは、ファイルシステム内をすばやくナビゲートするためのサウンドよりも強力です。以下の説明。
$HOME:vim scp://files/、または/:vim scp://files////または$HOME)で開きます。/etc/network/interfacesNetRWをオンにしてリモートを編集するには/:
/etENTERENTER/netwENTERENTER/intENTERt
?上部から折り返すことなく、いつでも上方に検索することができます。
さらに良く、ほぼ模倣 TABするために.vimrc- 完了追加:
autocmd filetype netrw noremap <buffer> <TAB> /let g:netrw_liststyle=3<C-E>、リモートVExploreのトグルを追加します(使用します)。incsearch、ignorecaseとsmartcasenetrwのための、またはすべてのバッファ。「従来の」タブ補完と比較すると、上記は異なりますが、非常に快適です。
注:上記のすべては、~/.ssh/configUser、Port、Compression、JumpHostを使用したssh証明書ベースのパスワードレス接続を想定しています(ProxyCommandは、ホスト名/エイリアスのみが必要となるように設定されています。