Vim di beberapa monitor

9

Apakah ada yang punya solusi elegan untuk memiliki MacVim atau rentang gvim di beberapa monitor (berpotensi berbeda resolusi)? Memiliki 2 sesi tidak berfungsi dengan baik karena buffer yang terpisah dan bertukar file.

Anda mungkin berpikir Anda dapat memiliki 2 jendela gui berbagi buffer yang sama, tetapi saya tidak dapat menemukan apa pun yang berfungsi.

Patm
sumber
1
Saya ingin tahu jawabannya juga. aku menemukan ini vimdoc.sourceforge.net/htmldoc/remote.html yang sepertinya arah yang benar. Tapi saya belum mencobanya.
Amjith

Jawaban:

1

Perluas gvim jendela untuk menutupi kedua layar dan gunakan CTRL-W v untuk membagi jendela pengeditan secara vertikal.

Lihat :help CTRL-W untuk perintah jendela lainnya.

MikeyB
sumber
1
Saya sangat sadar membelah windows. Sayangnya, ini tidak berfungsi dengan baik dengan resolusi monitor yang berbeda. Sepertinya tidak ada cara yang baik untuk melakukan ini.
Patm
1

Saya juga sering menggunakan multi-monitor, jadi saya membuat solusi sederhana untuk digunakan sampai vim mengimplementasikan fitur ini. Dengan menggunakan skrip lua bernama gitv, saya dapat membuka file di beberapa instance GVIM secara bersamaan. Pada dasarnya, ketika ada dua contoh GVIM bernama GVIM1 dan GVIM2, yang saya lakukan hanyalah memastikan bahwa hanya satu file yang dapat diedit pada satu waktu, dan yang lainnya adalah pemirsa. (Semuanya dilakukan secara otomatis tanpa disuruh.)

Alur kerja: Saat ini, gitv dirancang untuk repositori git, sehingga hanya dapat digunakan untuk file-file tersebut di repositori git. Anda dapat dengan mudah mengubah perilaku default ini dengan memodifikasi fungsi lsFiles ().

Untuk pertama kali membuka a.txt di GVIM1, gunakan

$ gitv gvimr GVIM1 a.txt

Ini akan membuka jendela gvim jika tidak ada. Kemudian untuk membuka a.txt yang sama pada GVIM2 contoh lain, gunakan

$ gitv gvimr GVIM2 a.txt (atau Anda dapat membuat alias seperti $ gvim2 a.txt)

Kemudian gitv secara internal melakukan hal berikut:

  1. temukan semua instance gvim yang memiliki "a.txt" terbuka. (Dalam hal ini, GVIM1)
  2. atur semua buffer a.txt "readonly", "nomodifiable" dan "autoread".
  3. Buffer yang telah dimodifikasi akan ditulis ke disk sebelum diset "readonly".)
  4. hapus file swap.
  5. buka kembali a.txt di GVIM2. (gvim dapat membuka file itu tanpa masalah karena tidak ada file swap.)

Jika Anda ingin mengedit a.txt pada monitor 1 dan bukan monitor 2, lakukan ini untuk mengganti buffer aktif: $ gitv gvimr GVIM1 a.txt (atau gvim1 a.txt) Ini dapat dilakukan dengan lebih mudah di dalam gvim1 menggunakan ctrl + g + a.txt

(Ini akan secara otomatis mengatur buffer yang sama terbuka dalam gvim "readonly" lain untuk mencegah korupsi data.)

gitv dapat diunduh di sini: http://code.google.com/p/gitv/ Itu diuji hanya pada linux gvim, tetapi dapat dengan mudah porting ke MacVIM.

tbear
sumber