Menggunakan Vim / Gvim dengan beberapa jendela GUI

25

Apakah mungkin untuk memiliki 2 atau lebih (G) vim windows untuk sesi yang sama, atau setidaknya berbagi beberapa buffer. Di sini, "jendela" merujuk ke jendela Gnome (atau KDE, atau Windows dll.), Bukan jendela VIM.

Saya menggunakan dua monitor dengan xinerama dan ingin membuka dua jendela GUI terpisah daripada memiliki satu besar yang membentang beberapa layar.

Atilla Filiz
sumber
pernahkah Anda mencoba: sp & lt; nama file & gt; atau: vsp & lt; nama file & gt; ? Ini adalah perintah pemecahan jendela vim dan itu hebat. Ini beberapa dokumentasi
Tom Stephens
2
@ Tom Stephens: dan itu membantu .. bagaimana? OP ingin memposisikan vim-windows dari ONE vim instance di monitornya. OP tidak ingin ONE vim instance membentang di semua monitor.
akira
1
Ini penting; editor seharusnya tidak benar-benar melakukan manajemen jendela itu sendiri.
Sam Watkins

Jawaban:

19

Saat ini gVim tidak dapat memiliki jendela 'tingkat atas' yang terpisah untuk proses / sesi yang sama. Ada item TODO untuk menerapkan sistem komunikasi antar-proses antara beberapa contoh Vim untuk membuatnya berperilaku seolah-olah proses terpisah disatukan. (Lihat :help todo dan cari "level atas".)

Heptite
sumber
7 tahun kemudian, Vim8, ini masih dalam daftar todo.
Al.G.
1
Donasi ke badan amal Vim dan dapatkan suara, lalu pilih fitur: vim.org/sponsor/index.php
Heptite
3

Lihatlah layar GNU yang digunakan bersama dengan Vim.

Jendela pertama, mulai layar gnu dan vim

xterm
screen -S edit
vim

Jendela kedua, sambungkan ke sesi layar:

xterm
screen -x edit

Sangat berguna di desktop xinerama besar, beberapa layar virtual, atau sesi VNC. Satu sesi Vim, dengan banyak tab, adalah semua yang Anda butuhkan.

- Tom

Tom
sumber
1
Poin untuk tutorial cepat dan singkat, meskipun saya akan menyebut ini hanya sedikit berguna, karena saya tidak dapat mengedit buffer berbeda dari sesi yang sama dengan cara ini.
Atilla Filiz
Menariknya ini adalah titik di mana layar menang atas tmux, - dalam tmux melampirkan sesi yang sama dari klien yang berbeda berarti Anda hanya melihat hal-hal yang tercermin di kedua contoh ... Saya sedang mempertimbangkan beberapa kombinasi yang tidak suci dari keduanya tetapi belum sudah tahu apa yang ingin saya lakukan!
JonnyRaa
2

Sudah lama sejak Anda mengajukan pertanyaan dan banyak hal telah membaik. Nvidia memiliki dukungan driver yang jauh lebih baik untuk banyak monitor di Linux.
Saya sekarang sudah berhenti menggunakan Gvim sejak saya pindah ke KDE: Sekarang saya menggunakan vim-qt. Ini memungkinkan Anda untuk membuka banyak instance, jika Anda tidak ingin menggunakan vim di terminal.

edit: My setup

jollyroger
sumber
Saya mencobanya sekarang, bagaimana cara menggunakan beberapa instance ini? Sepertinya gvim biasa dengan wajah yang sedikit berbeda denganku.
Atilla Filiz
Anda hanya dapat memulai dua instance vim-qt sehingga Anda dapat memiliki satu jendela untuk setiap layar Anda dan alt-tab di antara mereka, atau menetapkan hotkey untuk setiap jendela. Vim-qt ditulis untuk qt, jadi lingkungan desktop berbasis qt seperti KDE dapat memanfaatkan windows dengan lebih baik. Itu berarti Anda dapat memiliki beberapa jendela grafis yang berbeda terbuka dan bahwa jendela vim grafis Anda dapat menjadi layar penuh. Yang tidak mungkin dengan gvim biasa.
jollyroger
6
Terima kasih telah meluangkan waktu tetapi ini bukan yang saya inginkan. Saya ingin mengakses buffer yang sama dari dua jendela GUI yang terpisah. Dan ini tidak mungkin karena berbagi buffer masih dalam daftar tugas yang harus dilakukan (lihat jawaban yang diterima)
Atilla Filiz
1

Anda dapat memiliki sesi vi (m) sebanyak yang Anda inginkan dengan menggunakan jendela terminal terpisah untuk masing-masingnya.

Karena tidak memiliki mereka membentang, saya menganggap Anda menempatkan mereka ke layar penuh dan kemudian meluas di kedua monitor karena diatur untuk memperpanjang desktop. Jangan memaksimalkan dan secara manual menyesuaikan ukuran jendela terminal atau gvim.

Jika saya melewatkan tanda tersebut, cobalah untuk menguraikan lebih jauh.

Apa yang Anda maksud dengan jendela vim?

edit: Here's a pic of my screen with 4 vim instances running

Semoga Heptite memukulnya, karena saya agak bingung dengan yang ini.

Dan M.
sumber
1
Itulah yang saya lakukan sekarang, secara manual mengubah ukurannya menjadi dua monitor dan kemudian: vsplit tetapi terlihat jelek dan kadang-kadang saya ingin melihat beberapa buffer di desktop virtual yang berbeda, atau menutup satu monitor dengan yang lain. Yang saya inginkan adalah menggunakan dua terminal differnet dan masih mengakses buffer yang sama dari keduanya.
Atilla Filiz
Saya mengerti sekarang. Senang melihat Heptite menjawab itu untukmu.
Dan M.