Ssh経由でアクセスできるサーバーにあるファイルを編集する必要があります。
私は自分のワークステーションでカスタマイズされた vim
でこれらのファイルを編集したいと思います(リモートサーバーのvim
設定を変更する権限がありません)。 sublime text
またはその他のGUIエディターでファイルを編集したい場合があります。
もちろん、これらのファイルをダウンロードしてローカルで編集し、サーバーにアップロードすることもできます。よりエレガントな解決策はありますか?
これを行うには、sshfsを使用してリモートフォルダーをファイルシステムとしてマウントします。これを行うには、まずいくつかの前提条件があります。
# issue all these cmds on local machine
Sudo apt-get install sshfs
Sudo adduser <username> Fuse
次に、マウントプロセスを実行します。
mkdir ~/remoteserv
sshfs -o idmap=user <username>@<ipaddress>:/remotepath ~/remoteserv
この後、マウントされたフォルダーに移動し、独自にカスタマイズしたローカルのvimを使用します。
次のようにscp
を使用して行うことができます。
vim scp://user@myserver[:port]//path/to/file.txt
絶対パスを正しく解決するために必要なサーバーとパスの間の2つのスラッシュ//
に注意してください。 (最初のスラッシュは構文ですが、2番目のスラッシュは通常どおりリモートユーザーのルートディレクトリを指定します。ホームディレクトリから開始するには、[:port]/~/path/to/file.txt
を実行します。)[:port]
はオプションです。
これはvimの netrw.vim 標準プラグインによって処理されます。他のいくつかのプロトコルがサポートされています。
Vimの設定を編集する権限がないと言うときの意味によっては、サーバー上でVimを希望どおりに使用する方法があるかもしれません。ユーザー.vimrc
を変更することはできませんが(たとえば、共有ユーザーとしてログインしているため)、引き続きファイルを作成できます。たとえば、Loom.vimrc
というファイルとして作成します。次に、-u
スイッチを使用してVimを呼び出します。
vim -u ~/Loom.vimrc file_to_edit
その後、エイリアスを使用することもできます:alias vim='vim -u ~/Loom.vimrc'
を使用すると、通常の方法でVimを使用でき、カスタム.vimrc
ファイルがロードされます。このエイリアスはログアウト後も保持されないため、カスタマイズされたVimを誤って他のユーザーが使用することを心配する必要はありません。
編集するファイルの数と種類に応じて、これはここで実行したいことではないかもしれませんが、言及する価値があると思います。リモートサーバーでファイルを編集する必要があるが、自分のワークステーションにあるすべてのものを使用したい場合は、何らかの Revisionの使用を検討することをお勧めします。マシンのControl システム。こうすることで、選択したソフトウェアを使用して自分のマシンのローカルコピーを変更し、変更をコミットして、宛先マシンのローカルコピーを更新できます。使いやすいソフトウェアでファイルを編集するだけでなく、各ファイルに関連する変更履歴を追加するという付加価値があります。これは常に優れています。
念のために Revision Control Software のリストを示します。
ポッツ氏の回答をさらに詳しく説明します。上記を実行して、次のようなものを.bash_profile(またはシェルが使用するもの)に追加することもできます。
if [[ "$(who mom loves | awk ' { print $1 }' )" == "Loom" ]]; then
alias vim="vim -u ~/.Loom_vimrc"
fi
ここで、LoomはあなたがログインしているoriginalユーザーIDです。
共有アカウントとしてログインしている場合(個人アカウントではなく、Sudoを使用している場合)、Von Neumanがあなたの魂を憐れんで失ってしまうかもしれません。
私はこれをコメントに入れたでしょうが、コードをフォーマットすることはまったくできませんでした。
Vimセッションが既に実行されている場合は、
:silent e scp://user@myserver[:port]//path/to/file.txt
前の:silent
はPress Enter to Continue
メッセージを抑制します
そして
e scp://user@myserver[:port]//path/to/file.txt
は、メモファイルを編集するためのEx
モードコマンドです。
Windows 10で実行されているBitVise SSHD
でテストされ、Ubuntu 16.04で実行されているVIMを使用して