Làm thế nào để bắt đầu tối đa hóa gVim?


38

Làm cách nào để gVim tự động tối đa hóa cửa sổ của nó khi tôi mở nó? Và một giải pháp đa dạng, tôi đang cố gắng sử dụng cùng một cấu hình trong máy Linux và Windows ...

Tôi đã thử hack :set lines=999 columns=999, nó gần như hoạt động, nhưng cửa sổ không được tối đa hóa, chỉ thay đổi kích thước và tôi mất một số hàng / cột.


3
Đó là cách di động nhất mà tôi biết. Bạn có thể giải thích về "nhưng cửa sổ không được tối đa hóa, chỉ thay đổi kích thước và tôi mất một số hàng / cột". Tối đa hóa là afaik, thay đổi kích thước cho đến các cạnh. Và tôi không nghĩ rằng mình đã mất một hàng / col theo cách đó.
Rook

@Idigas: chính xác, tối đa hóa chỉ là "thay đổi kích thước cho đến khi nó lấp đầy không gian có sẵn (không bao gồm các thanh công cụ, v.v.)", về mặt wm-speak :)
akira

Đặt hack ở trên không thay đổi kích thước cho đến các cạnh. Tôi bắt đầu nghĩ rằng cách tiếp cận tốt hơn sẽ thêm một if trong vimrc của tôi: nếu nó là windows, hãy gọi một cấu hình, nếu không, hãy gọi cấu hình khác.
Ai đó vẫn sử dụng bạn MS-DOS

Câu trả lời:


30

Từ wiki Vim :

au GUIEnter * simalt ~x

Điều đó sẽ hoạt động trên Windows; Tôi không chắc chắn những tổ hợp phím nào bạn cần trên Gnome / KDE.


Điều này không làm việc cho tôi trên Windows 7 Ultimate.
Matt Alexander

2
Nó cũng phụ thuộc vào ngôn ngữ hệ điều hành một cách đáng buồn. Đối với các phiên bản Windows của Pháp, nó trở thành au GUIEnter * simalt ~n.
vào

Có cách nào để làm ngược lại, để không tối đa hóa? Có vẻ như :simalt ~xchỉ hoạt động một chiều trên Windows7x64 ANH.
TankorSmash

1
~xđến từ phím tắt cho tùy chọn menu. Kiểm tra các phím tắt cho tùy chọn mong muốn và thử nó. Có lẽ đó là Restore?
Grzegorz Gierlik

@GrzegorzGierlik Cảm ơn, bạn đã đúng. Tôi đã không nhận ra điều đó simaltcó nghĩa là 'mô phỏng phím bấm alt'. Cảm ơn.
TankorSmash

10

Cách tốt nhất nếu bạn quan tâm về khả năng tương thích đa nền tảng là set lines=999 columns=999. Tôi đã tìm thấy nó trong Wiki của Vim và mặc dù nó không hoàn hảo, nhưng đó là một giải pháp tốt nhất nếu bạn cần làm việc trên các hệ điều hành khác nhau.


Bạn có thể kết hợp điều này với au GUIEnter * simalt ~ x ??
snitzr

Có, tạo một điều kiện trong vimrc của bạn để biết đó là windows hay Linux. Vì tôi chủ yếu sử dụng Linux, nên tôi sẽ thêm cấu hình này sau.
Ai đó vẫn sử dụng bạn MS-DOS

Cách tiếp cận này không hiệu quả với tôi trong Gnome 3. Khi cửa sổ chưa được tối đa hóa, điều này sẽ làm chậm Vim trong một thời gian (không xảy ra khi tôi tối đa hóa bằng trình quản lý cửa sổ) và nó sẽ để lại một chút cạnh trên cửa sổ mở ra, vì chiều cao màn hình của tôi không phải là bội số hoàn hảo của chiều cao dòng. Khi cửa sổ được tối đa hóa theo chiều dọc (nhưng không theo chiều ngang) bằng cách kéo cửa sổ sang trái hoặc phải màn hình, điều này sẽ không có hiệu lực.
Andres Riofrio

@AndresRiofrio Đối với những tình huống này (nhiều môi trường máy tính để bàn trong Linux), tôi nghiêm túc suy nghĩ về việc sử dụng devilspie . Đó là một giải pháp của bên thứ ba, tôi biết, nhưng nó có thể hoạt động. Tôi đã sử dụng nó trong một số ứng dụng khác mà tôi muốn được mở tối đa hóa.
Ai đó vẫn sử dụng bạn MS-DOS

Điều này cũng khiến cửa sổ trở nên to lớn nếu bạn hủy tối đa hóa nó.
Kevin Cox

6

Thủ thuật với:

au GUIEnter * simalt ~x

phụ thuộc vào ngôn ngữ Windows.

Đối với phiên bản tiếng Ba Lan của tôi hoạt động:

au GUIEnter * simalt ~ s

Nơi sđến từ đâu Mak_s_ymalizuj.

Vì vậy, nếu ~xkhông hoạt động, nhấn ALT+SPACEđể mở menu Window và kiểm tra phím tắt cho tùy chọn menu Ma_x_izing Window .


1
Và ~ n cho tiếng Pháp ("Agra & ndir")
Sébastien RoccaSerra

1
Và ~ m cho tiếng Na Uy
Bjarte Brandt

4

Bạn có thể sử dụng maximize.dll plugin cho fullscreen veiw trên Vim (nếu bạn đang sử dụng Windows). Chỉ cần sao chép Maximum.dll vào vimdirectory/pluginthư mục.



3

Trên GNU / Linux

Trên GNU / Linux, cách dễ nhất là gọi gvimbằng -geometrytùy chọn. Ví dụ:

gvim -geometry 1336x744

Điều này không hữu ích nếu bạn muốn sử dụng lại cùng một lệnh start trên các máy khác nhau.

Đây là những gì tôi đang sử dụng trên một số máy mà không có vấn đề gì. Chỉ cần thêm nó ở đâu đó cao lên trong của bạn .vimrc.

if has("gui_running")
  " GUI is running or is about to start.
  " Maximize gvim window (for an alternative on Windows, see simalt below).
  set lines=999 columns=999
else
  " This is console Vim.
  if exists("+lines")
    set lines=50
  endif
  if exists("+columns")
    set columns=100
  endif
endif

Nguồn: http://vim.wikia.com/wiki/Maxizes_or_set_initial_window_size


Đối với linux đây có lẽ là lựa chọn tốt nhất. trong .zshrc làm bí danh v = "gvim -geometry 1366x768" và bạn đã sẵn sàng.
Tanel Tammik

@TanelTammik Hãy xem lại câu trả lời của tôi. Tôi đã chỉnh sửa nó một cách đáng kể để hiển thị giải pháp tốt hơn mà tôi hiện đang sử dụng. Cảm ơn đã bỏ phiếu.
Serge Stroobandt

2

CẬP NHẬT: đối với người dùng linux, tôi đã tìm thấy giải pháp tốt hơn thực sự tối đa hóa cửa sổ: https://stackoverflow.com/questions/12448179/how-to-maxizes-vims-windows-on-startup-with-vimrc

Sự phụ thuộc duy nhất là wmctrl, nhưng nó đáng để cài đặt.

Vì vậy, đối với các cửa sổ tôi sử dụng maximize.dll plugin (như đã đề cập bởi @fatihturan), và đối với linux tôi sử dụng wmctrl. Tuyệt quá!

(nhưng tôi thực sự không thể hiểu tại sao năm 2014 gvim không có tính năng này ngoài luồng)


Câu trả lời cũ:


Đối với tôi, hack đơn giản :set lines=999 columns=999hoạt động kém trên Linux Mint MATE của tôi với hai màn hình. Tôi thường mở gvim trên màn hình phụ, không có thanh tác vụ, vì vậy, Vim nên chiếm toàn bộ màn hình. Nhưng nếu tôi làm :set lines=999 columns=999, gvim thu nhỏ các giá trị này thành kích thước của màn hình chính , do đó, có một khu vực nhỏ bên dưới cửa sổ gvim không được sử dụng. Sẽ tốt hơn nếu tôi đặt số dòng / cột thực: chỉ cần tối đa hóa cửa sổ của bạn "bằng tay" và nhập :set lines?:set columns?, để có được các giá trị cần thiết. Vì tôi sử dụng hai màn hình, tôi cũng cần chỉ định vị trí cửa sổ, vì vậy, hãy nhập :winposđể có được vị trí cửa sổ hiện tại.

Và thứ yếu, tốt hơn hết là không chỉ đặt các cài đặt này cho .vimrc, mà thực hiện chúng khi gui được tải.

Vì vậy, công thức cuối cùng:

1) tối đa hóa gvim của bạn bằng tay và gõ ba lệnh để có được giá trị thực tế: :winpos, :set lines?:set columns?.

2) thêm cái này vào .vimrc:

function Maximize()

   " put your actual values below
   winpos 0 0
   set lines=78
   set columns=237

endfunction

autocmd GUIEnter * call Maximize()

Hấp dẫn. Có lẽ bạn có thể nhận được các giá trị dòng và cột trong vimscript một cách ngẫu nhiên, vì vậy cấu hình này sẽ hoạt động trong tất cả các thiết bị.
Ai đó vẫn sử dụng bạn MS-DOS

1

Ubuntu (16.04)

Tốt hơn là để trình quản lý cửa sổ thực hiện nhiệm vụ này, ít nhất là trong Ubuntu , nó sẽ toàn màn hình gvimthay vì tối đa hóa cửa sổ, cho bạn nhiều không gian hơn. Tất nhiên giải pháp này phụ thuộc vào nền tảng và không phải đa nền tảng, nhưng nó là một lựa chọn tốt hơn nhiều cho Ubuntu . Bạn thậm chí có thể thiết lập gvimđể mở trên một khung nhìn cụ thể .

Trình quản lý cài đặt cấu hình Compiz -> Đặt Windows -> Vị trí cửa sổ cố định -> Windows với chế độ vị trí cố định -> mới

 Windows class=Gvim
 Mode    Maximize

Nếu bạn không có Trình quản lý cài đặt cấu hình Compiz:

sudo apt install compizconfig-settings-manager

1

Nếu bạn muốn vim đạt được toàn màn hình trong Windows (như trong hình), plugin gvimfullscreen_win32rất được khuyến khích.

Plugin cho phép truy cập dễ dàng hơn vào chế độ toàn màn hình và môi trường không bị phân tâm. Bạn cũng có thể thêm :set go=để đạt được nhiều không gian hơn. Đây là một ảnh chụp màn hình (Gvim7.4 trên Windows 8.1):

nhập mô tả hình ảnh ở đây


0

Tôi tin rằng bạn có thể làm điều này trong bạn $HOME/.vimrcđể đạt được những gì bạn muốn:

if has("gui_running")
     set fuoptions=maxvert,maxhorz
     au GUIEnter * set fullscreen
 endif

Bạn có thể xác nhận nơi toàn màn hình đang được áp dụng như vậy:

:verbose set nofullscreen?
 fullscreen
       Last set from ~/.vim_runtime/my_configs.vim

Có vẻ như điều này chỉ hoạt động cho MacVim.
Michael Yoo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.