Membuat gvim 'hanya-contoh'

6

Saya ingin menjadikan gvim menjadi 'hanya-contoh', yaitu, mengetahui opsi atau sesuatu yang membuka file sebagai tab pada instance gvim saya yang sudah terbuka alih-alih membuka yang baru.

Contoh untuk memperjelas: misalkan saya memiliki jendela gvim terbuka dengan satu file, module1.c. Seandainya saya di terminal, perintah apa yang harus saya masukkan untuk membuat 'module2.c' terbuka di jendela yang sama yang sekarang memiliki module1.c?

PS: Saya sadar bahwa ada opsi -p yang memungkinkan saya untuk membuka banyak file dalam banyak tab. Tapi yang saya cari adalah cara untuk membuka tab baru dari LUAR gvim SETELAH itu sudah berjalan.

Bagaimana cara melakukannya? Apakah itu mungkin?

Rafael Almeida
sumber

Jawaban:

7

Saya ingin menjadikan gvim menjadi 'hanya-contoh', yaitu, mengetahui opsi atau sesuatu yang membuka file sebagai tab pada instance gvim saya yang sudah terbuka alih-alih membuka yang baru.

Izinkan saya untuk hanya menjelaskan sesuatu di sini ... di vim, tab tidak seperti yang diharapkan orang. Dalam kebanyakan program mereka adalah "contoh" dari file (satu tab / satu file), tetapi dalam vim mereka hanyalah "sudut pandang" di mana Anda dapat memiliki beberapa jendela vim, masing-masing memegang apa pun yang Anda masukkan ke dalamnya.

Vim, saat membuka file, membukanya di buffer. Satu buffer untuk setiap file. Anda dapat melihat daftar buffer yang dibuka dengan

:ls

Contoh untuk memperjelas: misalkan saya memiliki jendela gvim terbuka dengan satu file, module1.c. Seandainya saya di terminal, perintah apa yang harus saya masukkan untuk membuat 'module2.c' terbuka di jendela yang sama yang sekarang memiliki module1.c?

Sekali lagi, kami memiliki masalah terminologi. Demi diskusi, saya akan menganggap Anda berarti "jendela" seperti di jendela windows, dan bukan jendela internal vim. Jika Anda ingin membuka file dalam instance gvim yang sudah dibuka, cobalah

gvim first_file.dat
gvim --remote-tab second_file.dat

Ini dapat dengan mudah dipersingkat dengan meletakkannya di file .bat (jika Anda menggunakan windows), dan kemudian Anda tidak perlu mengetikkan bagian "--..." berulang kali.

PS: Saya sadar bahwa ada opsi -p yang memungkinkan saya untuk membuka banyak file dalam banyak tab. Tapi yang saya cari adalah cara untuk membuka tab baru dari LUAR gvim SETELAH itu sudah berjalan.

Menarik, saya tidak tahu tentang itu :)

Bagaimana cara melakukannya? Apakah itu mungkin?

Katakan apakah itu yang Anda cari.

Benteng
sumber
Ya, itulah tepatnya yang saya cari! = D Juga, Anda dapat mempersingkat perintah dengan skrip shell yang diletakkan di folder / usr / bin (saya sebut milikku 'gvimt')
Rafael Almeida
bagus sekali, terima kasih. Saya melakukan alias = vim = '/ c / Program \ Files \ (x86) /Vim/vim73/gvim.exe --remote-tab' di cygwin
Jay R. Wren
Anda dapat melakukan "Fungsi g {param ($ file) gvim --remote-silent $ file}" di Powershell
Zotov
3

Vim dapat melakukan ini ketika dijalankan dalam mode klien, jika itu dikompilasi dengan opsi + klien .

Luncurkan instance vim pertama dengan opsi --servername :

gvim --servername FILES --remote-silent file.txt

Sekarang, Anda dapat membuka file lebih lanjut dalam hal ini dengan memberikan --servername , atau hanya dengan opsi --remote .

gvim --remote file2.txt

gvim --servername FOOBAR --remote file3.txt

Diambil dari dokumentasi manual vim pada mode server klien . Afaik, file-file baru dibuka sebagai buffer pada tab aktif. Saya tidak yakin apakah vim dapat dikonfigurasi untuk membuka file yang masuk di tab baru.

Nagul
sumber