Pertanyaan Dapatkah saya melanjutkan proses vim yang ada?


Ketika saya meninggalkan pekerjaan kemarin, saya meninggalkan vim terbuka dengan file yang sedang saya kerjakan. Saya bekerja dari rumah hari ini, jadi saya VPN, dan ketika saya pergi untuk mengedit file-file yang sama, saya mendapatkan peringatan bahwa ada sesi vim yang terbuka dengan file-file tersebut.

Saya tahu saya hanya bisa memaksa logout pengguna saya yang lain, tetapi itu akan membunuh sesi vim yang ada. saya berpikir semua perubahan saya akan disimpan di .swp mengajukan.

Sebaliknya, apakah mungkin bagi saya untuk mengambil sesi vim yang ada dan membukanya dengan login kedua saya? Dengan cara itu pasti akan mempertahankan semua perubahan saya, dan saya tidak perlu membuka semua tab yang sama lagi.


4
2017-09-13 15:14


asal




Jawaban:


Anda dapat membunuh vim (tetapi tidak menggunakan -9) dan semua perubahan Anda akan disimpan di .swp file. Kemudian Anda memulai vim baru dan menggunakan Recover.


6
2017-09-13 15:19





Bagaimana kalau menggunakan screen atau tmux sebagai alternatif? Dengan cara itu Anda dapat memutuskan sesi layar Anda ketika Anda selesai dan kemudian masuk nanti (mungkin dari komputer lain) dan menyambung kembali.


2
2017-09-13 16:20





Anda benar bahwa logout paksa / kill dari proses vim Anda yang lain akan memungkinkan Anda untuk mengambil file ".swp" yang tertinggal dan mulai bekerja dengannya. Hanya menguji teori ini dan itu berhasil di Ubuntu. Pastikan saja Anda memilih opsi "Sembuh" ketika ia memberitahu Anda file swap sudah ada.

Itu harus mendapatkan modifikasi apa pun yang belum disimpan, tetapi saya tidak yakin tentang info sesi lain seperti riwayat perintah.


1
2017-09-13 15:20



... dan tentu saja, ini hanya berfungsi ketika Anda memang memiliki file swap - jika Anda mengedit file di direktori di mana Anda tidak dapat membuat file baru, vim tidak akan dapat membuat file swap (dan beritahu Anda demikian). Semuanya akan tetap berfungsi, tetapi perubahan yang tidak disimpan akan hilang ketika Anda membunuh vim. - tdammers


Ada program kecil yang disebut ini retty, tapi saya sama sekali tidak tahu seberapa andal itu.


0
2017-09-13 15:15





Anda tidak dapat mengambil alih proses yang telah dimulai dari terminal lain. Jika Anda memulai vim di dalam layar, Anda akan dapat melepaskan sesi layar dan kemudian pasang kembali dari terminal yang berbeda (termasuk yang eksternal melalui ssh).

Lalu ada retty, tetapi itu tidak tersedia untuk semua platform perangkat keras, dan itu dalam tahap experiental - pada dasarnya, gunakan dengan resiko Anda sendiri.

Pilihan lain adalah melakukannya :mks (membuat sesi) sesekali; jika Anda kemudian membunuh vim dan memulainya dari terminal yang berbeda, Anda dapat langsung saja Session.vim file yang telah dibuat oleh perintah mks (atau mulai vim dengan vim -S Session.vim) dan melanjutkan sesi Anda (Anda mungkin harus menanggapi beberapa permintaan pengembalian meskipun).


0
2017-09-13 15:18





reptyr: Utilitas untuk mengambil program yang sedang berjalan dan melampirkannya ke terminal baru

Dari manusia halaman: "reptyr adalah utilitas untuk mengambil program berjalan yang ada dan melampirkannya ke terminal baru. Memulai proses yang lama berjalan melalui ssh, tetapi harus pergi dan tidak ingin mengganggu? Cukup mulai layar, gunakan reptyr untuk mengambilnya, dan kemudian membunuh sesi ssh dan langsung pulang. "


0
2018-02-01 22:48