Bagaimana cara mendapatkan gvim untuk mulai dimaksimalkan di Windows?


15

Saya ingin editor saya memberikan real estat layar sebanyak mungkin karena meningkatkan kemampuan saya untuk melihat sebagian besar kode sekaligus.

Masalahnya adalah bahwa gvimtampaknya memberi saya baik 80x25 jendela atau mengingat ukuran terakhir yang tidak dimaksimalkan, tergantung pada bagaimana saya memintanya.

Jadi, bagaimana saya bisa memaksanya menjadi sebesar mungkin, terlepas dari kondisi apa pun yang diingat?


Saya sebenarnya akan merekomendasikan ulang plugin github.com/xolox/vim-shell , yang berfungsi untuk gvim pada win32 dan win64 keduanya, dengan <F11> Beralih di antara mode Layar Penuh / normal
van abel

Jawaban:


21

Anda dapat meletakkan baris ini:

autocmd GUIEnter * simalt ~x

di akhir gvimrcfile Anda .

Metode ini menggunakan autocmdfitur untuk menenun keajaibannya. Perintah autocmd GUIEnter *menentukan perintah untuk dijalankan setelah berhasil memulai GUI untuk pola file *(file apa pun).

Perintah yang akan dieksekusi simalt ~x(hanya dalam varian Windows vim), akan mensimulasikan keystroke Alt Spacebarx, yang merupakan penekanan tombol yang akan memaksimalkan jendela.

Anda juga dapat menggunakan versi singkat:

au GUIEnter * sim ~x

tapi saya lebih suka perintah yang diperluas sepenuhnya, terutama karena ini adalah jenis yang Anda atur dan lupakan, hanya memasukkan satu kali ketika menginstal vimke sistem Windows.


Perlu diingat bahwa ini mensimulasikan penekanan tombol untuk mencapai tujuannya. Pada versi bahasa Inggris, ini akan berfungsi dengan baik karena Alt-SpaceXcara Anda memaksimalkan jendela.

Jika itu tidak berhasil, Anda harus menyelidiki penekanan tombol di lokasi apa pun yang Anda gunakan. Sebagai contoh, versi Perancis akan menggunakan Agrandir(memperbesar) dengan nsebagai kontrol keystroke, sehingga perintah yang Anda perlukan ada:

autocmd GUIEnter * simalt ~n

(yang sebenarnya meminimalkan jendela Anda dalam bahasa Inggris).

Jika Anda adalah varian lain (non-Inggris, non-Prancis), cukup tekan Alt-Spacepada jendela untuk membuka menu sistem, dan cari tahu kunci apa yang harus digunakan (harus digarisbawahi).


Untuk menemukangvimrc file Anda untuk menambahkan perintah apa pun yang Anda butuhkan, Anda dapat memasukkan:

:version
:echo $VIM
:echo $HOME

dan Anda harus mendapatkan daftar file startup dan variabel seperti:

system gvimrc file = "$VIM/gvimrc"
  user gvimrc file = "$HOME/_gvimrc"

C:\Program Files (x86)\Vim
C:\Users\Pax\Documents

Versi singkat autocmd Anda tidak memiliki *.
jamessan

Metode ini tidak berfungsi untuk saya: alih-alih memaksimalkan jendela, ia membuka menu pop-up yang memungkinkan untuk memulihkan, memindahkan, meminimalkan, memaksimalkan (...) jendela. Saya menggunakan Windows 7 SP1 dan gvim 7.4.711. Bagaimana saya bisa membuatnya bekerja?
statox

@statox, itulah yang akan Anda lihat jika Anda membiarkannya xdari awal. Pastikan Anda memiliki teks lengkapau GUIEnter * sim ~x .

@ paxdiablo Saya tidak yakin untuk mengerti saya menyalin baris lengkap (baik versi panjang dan pendek) dari auke ~x. Apakah ada karakter spasi putih yang saya lewatkan atau semacamnya?
statox

@statox, ketika Anda memiliki jendela gvim terbuka dan Anda mengklik mouse tombol sistem (ikon vim paling kiri atas, di atas menu file), apakah Anda melihat maksimal? Ketika menu sistem itu terbuka, apakah ia memaksimalkan ketika Anda menekan x?

7

Sebagai alternatif dari jendela yang dimaksimalkan, mengapa tidak mendapatkan lebih banyak ruang untuk pengalaman pengeditan multi jendela multi-vim penuh dengan mode autostart FULL SCREEN? ;-)

Screenshot FULL SCREEN dari hasil akhir (= SEMUA kapasitas VIDEO piksel): tangkapan layar layar video penuh

Menurut pendapat saya itu lebih baik daripada memaksimalkan windows: LENGKAP LENGKAP lengkap (seperti yang biasa saya lakukan dengan puTTY dengan ALT-Enter ketika mengedit pada terminal unix jarak jauh ...)

Saya menjelaskan cara:

Langkah 1

Instal utilitas indah yang luar biasa untuk memungkinkan penggunaan layar penuh di gvim pada Windows:

https://github.com/derekmcloughlin/gvimfullscreen_win32/tree/master

Anda harus mengunduh file DLL gvimfullscreen.dll dan meletakkannya di direktori yang sama dengan gvim.exe ($ VIM / vim74 dengan rilis gVim 7.4). Untuk mengunduh DLL (tanpa menggunakan git):

https://github.com/derekmcloughlin/gvimfullscreen_win32/raw/master/gvimfullscreen.dll

Langkah 2

Edit file .vimrc (di dalam vim:) :e $HOME/.vimrc, menyisipkan perintah-perintah ini untuk autostart layar penuh dan memungkinkan tombol fungsi F11 untuk mengaktifkan mode di antara 3 status: layar penuh, jendela dimaksimalkan, ukuran jendela asli / standar:

"run the command immediately when starting vim
autocmd VimEnter * call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)

" activate/deactivate full screen with function key <F11>  
map <F11> <Esc>:call libcallnr("gvimfullscreen.dll", "ToggleFullScreen", 0)<CR>

Langkah 3

Edit file .gvimrc (di dalam vim:) :split $HOME/.gvimrcmenyisipkan perintah ini untuk menghindari bilah menu dan hal-hal yang tidak berguna:

set guioptions-=m  "remove menu bar
set guioptions-=T  "remove toolbar
set guioptions-=r  "remove right-hand scroll bar
set guioptions-=L  "remove left-hand scroll bar

Apakah ada layar gvimwin64full? atau bisakah kita mengompilasinya menggunakan proyek di github?
van abel


2

Dari :help 'lines':

Jumlah baris jendela Vim.
[...]
Saat Vim berjalan di GUI atau di jendela yang bisa diubah ukurannya, pengaturan opsi ini akan menyebabkan ukuran jendela diubah.
[..]
Anda dapat menggunakan perintah ini untuk mendapatkan jendela setinggi mungkin:
:set lines=999

The columnspilihan melakukan hal yang sama, kecuali untuk lebar (dalam karakter).

Jadi Anda bisa, misalnya, meletakkan ini di file vimrc Anda:

set lines=55
set columns=120

Ini tidak sama dengan dimaksimalkan (bahkan jika Anda menggunakan 999nilai seperti yang dijelaskan di atas), karena "dimaksimalkan" adalah bendera khusus yang diletakkan di jendela, dan secara halus mengubah beberapa operasi (seperti bergerak), tetapi harus menyelesaikan masalah Anda memiliki ukuran jendela 80x25 kecil secara default.


Itu tidak terlalu buruk, meskipun memberikan 234x56jendela pada sistem saya sedangkan memaksimalkan memberi 236x57. Namun, menjadi pendek dua kolom dan satu baris pada ukuran itu tidak terlalu menjadi masalah, terutama untuk sesuatu yang dapat bekerja di platform non-Windows juga, meskipun saya belum benar-benar mengujinya. Saya akan melihat-lihat malam ini ketika saya pulang ke kotak Debian tercinta :-)

Dengan Debian saya, jendela default adalah 200x50, mengatur kedua baris dan kolom ke 999 di salah satu dari vimitu sendiri, file rc atau dengan gvim -c 'set them'memberi saya 236x61 dan memaksimalkan memberi 237x61, jadi lebih dekat daripada di bawah Windows. Menariknya, gvim -geometry 999x999memberi saya jendela yang dimaksimalkan pada ukuran yang sedikit lebih besar sehingga mungkin lebih baik untuk non-Windows meskipun saya curiga akan lebih sulit untuk memastikan semua metode doa menggunakannya. Sayang sekali tidak ada hal jenis simalt untuk platform nonWin.

Namun, ada baiknya beberapa perwakilan karena cukup dekat, dan lebih portabel daripada metode win-only. Ngomong-ngomong, menggunakan 9999x9999 sebagai geometri menjadi aneh vimkarena tidak suka windows dengan dimensi lebih dari 64K piksel (geometri adalah sel karakter dalam hal ini daripada piksel). 999x999 tampaknya berfungsi dengan baik. Tidak yakin bagaimana ini akan berjalan dalam sistem multi-monitor.

Ya, metode ini tidak sempurna, tetapi seperti yang Anda sebutkan, ini cross-platform, dan mungkin juga lebih cepat (menjalankan commandline-tools saat startup dapat menyebabkan sedikit keterlambatan pada Windows Vim, setidaknya, itulah masalahnya ketika saya menggunakannya beberapa tahun yang lalu).
Martin Tournoij

Mengatur kolom / garis untuk 160 x 42memberikan bentuk jendela yang mendekati rasio emas , dan Anda mendapatkan kehebatan 42!
roblogic

0

Selain perintah khusus gVim di jawaban lain, ada beberapa fitur standar Windows untuk meluncurkan aplikasi apa pun yang dimaksimalkan.

Jika Anda menatap gVim dari pintasan, seperti dari Start Menu atau Desktop, Anda dapat mengubah properti pintasan untuk memulai Vim yang dimaksimalkan. Klik kanan pintasan, pilih Properties, dan pilih Dimaksimalkan dari daftar drop-down Run. Namun, ini hanya akan memengaruhi pintasan itu, jadi gVim akan tetap terbuka di jendela kecil jika diluncurkan dari pintasan lain, kotak dialog Jalankan, atau baris perintah.

Jika Anda memulai gvim dari baris perintah atau file batch, Anda dapat menggunakan CMD ini startperintah: start "" /max "C:\Program Files (x86)\Vim\vim73\gvim.exe". ( ""Diperlukan jika path ke gvim.exe dikutip. Jika Anda menggunakan path yang tidak dikutip tanpa spasi, Anda dapat menghilangkannya:. start /max C:\Progra~2\Vim\vim73\gvim.exe)


Saya tidak tahu apa startperintah defaultnya , tapi saya menimpa PATH saya dan sekarang mingsys startada di sana, jadi berhati-hatilah Anda menjalankan yang benar
TankorSmash

Saya mencoba ini ("dari pintasan ... pilih Dimaksimalkan"). Jendela berkedip dan kemudian muncul ukuran yang sama seperti baru saja memulai dari shell cmd DOS. Agar adil, saya memiliki perintah di .vimrc saya yang secara eksplisit mengatur ukuran (baris / kolom) jadi saya curiga yang terakhir mengesampingkan upaya untuk memaksimalkan.
rich p

Hal semacam ini juga ada sebagai fungsi dari beberapa manajer window Linux. Sebagai contoh, saya suka jendela Vim saya menjadi tinggi penuh, tetapi dua monitor saya setinggi 1024px, sedangkan yang di tengah adalah tinggi 1080px. Mengatur Vim untuk mulai dimaksimalkan secara vertikal menggunakan panel kontrol "Aturan Jendela" KDE memastikan bahwa gVim akan mengubah ukuran agar sesuai dengan saat dipindahkan dari monitor ke monitor. (Ini juga memiliki manfaat tambahan dari mengesampingkan linespengaturan, jadi saya dapat membiarkannya gvimrcsebagai pengganti untuk sistem di mana saya tidak mengatur tweak seperti itu.)
ssokolow
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.