Saya harus mengedit beberapa file yang ditempatkan pada beberapa server yang dapat saya jangkau melalui ssh.
Saya lebih suka mengedit file-file ini secara khusus vim
di workstation saya (saya tidak punya hak untuk mengubah vim
pengaturan pada server jauh). Terkadang saya ingin mengedit file dengan sublime text
atau editor GUI lainnya.
Tentu saja, saya dapat mengunduh file-file ini, mengeditnya secara lokal dan mengunggahnya kembali ke server. Apakah ada solusi yang lebih elegan?
deb
berbasis dan karenanya tidak memilikiapt-get
. (Dalam hal ini,yum
atauzypper
mungkin ada.) Mereka juga memerlukan root pada mesin lokal, yang mungkin atau mungkin tidak tersedia. (Ini bukan untuk mengatakan itu solusi yang buruk, tetapi ia datang dengan prasyarat besar.)osxfuse
dansshfs
. Ini dapat diinstal dengan homebrew (brew install sshfs
danbrew cask install osxfuse
, atau dari paket yang diperoleh dari osxfuse.github.ioAnda dapat melakukannya melalui
scp
seperti ini:Perhatikan dua garis miring
//
antara server dan jalur, yang diperlukan untuk menyelesaikan jalur absolut dengan benar. (Slash pertama adalah sintaksis, sedangkan slash kedua menentukan direktori root pengguna jarak jauh, seperti biasa. Untuk memulai di direktori home, Anda akan melakukannya[:port]/~/path/to/file.txt
.)[:port]
Adalah opsional.Ini ditangani oleh plugin standar netrw.vim vim . Beberapa protokol lain didukung.
sumber
E382: Cannot write, 'buftype' option is set
:set buftype=""
di vim.~/.ssh/config
dan menyelesaikan host jarak jauh denganvim scp://[host]/path
.:e scp://...
Tergantung pada apa yang Anda maksudkan ketika Anda mengatakan Anda tidak memiliki hak untuk mengedit pengaturan Vim, mungkin ada cara menggunakan Vim di server dengan cara yang Anda inginkan. Jika Anda tidak dapat mengubah pengguna Anda
.vimrc
(karena Anda masuk sebagai pengguna bersama, misalnya) tetapi Anda masih bisa membuat file, buatlah itu sebagai file yang dipanggil, katakan,Loom.vimrc
lalu panggil Vim menggunakan-u
sakelar:vim -u ~/Loom.vimrc file_to_edit
Anda bahkan kemudian dapat menggunakan alias:
alias vim='vim -u ~/Loom.vimrc'
akan memungkinkan Anda untuk menggunakan Vim dengan cara biasa, dan itu masih akan memuat.vimrc
file kustom Anda . Alias ini tidak akan bertahan setelah Anda keluar, jadi Anda tidak perlu khawatir tentang orang lain yang secara tidak sengaja menggunakan Vim khusus Anda.sumber
Tergantung pada berapa banyak file dan jenis file apa yang Anda harapkan untuk diedit, ini mungkin tidak persis apa yang ingin Anda lakukan di sini, tapi saya pikir itu layak disebutkan. Jika Anda harus mengedit file di server jauh, tetapi ingin menggunakan semua yang Anda miliki di stasiun kerja Anda sendiri, maka Anda mungkin ingin mulai berpikir untuk menggunakan semacam sistem Kontrol Revisi di mesin Anda. Dengan begitu, Anda dapat memodifikasi salinan lokal di mesin Anda sendiri menggunakan perangkat lunak pilihan Anda, melakukan perubahan, dan kemudian memperbarui salinan lokal di mesin tujuan. Selain mengedit file dengan perangkat lunak apa pun yang Anda rasa nyaman, Anda memiliki nilai tambah memiliki riwayat perubahan yang terkait dengan setiap file, yang selalu baik.
Berikut daftar Perangkat Lunak Kontrol Revisi , untuk berjaga-jaga.
sumber
git
, mendorongnya ke sesuatu sepertigithub
, dan menarik perubahan darigithub
ke mesin lokal Anda, untuk membuat perubahan di sana?Untuk memperluas jawaban Mr. Potts: Anda juga dapat melakukan hal di atas, lalu masukkan sesuatu seperti ini di .bash_profile (atau apa pun yang menggunakan shell Anda):
di mana Loom adalah userID asli Anda yang Anda masuki sebagai.
Jika Anda masuk sebagai akun bersama (dan bukan akun individu kemudian sudo su - ing, maka mungkin Von Neuman kasihan pada jiwa Anda karena Anda hilang.
Saya akan menaruh ini dalam komentar, tetapi saya tidak bisa mendapatkan kode diformat sama sekali.
sumber
Jika Anda sudah menjalankan sesi vim, gunakan
:silent e scp://user@myserver[:port]//path/to/file.txt
Di
:silent
depan akan menekanPress Enter to Continue
pesandan
e scp://user@myserver[:port]//path/to/file.txt
adalahEx
perintah mode untuk mengedit file remnote.Diuji dengan
BitVise SSHD
menjalankan pada Windows 10, dan menggunakan VIM menjalankan pada Ubuntu 16.04sumber
Press Enter to Continue
untuk pemuatan awal, tetapi tidak untuk yang berikutnya:w