Подтвердить что ты не робот

Почему некоторые люди используют "if has (" gui_running ")" в .gvimrc?

Я читал некоторые dotfiles (.vimrc.gvimrc), чтобы узнать некоторые опрятные трюки, и я встретил этот:

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

Если это уже файл .gvimrc(загружается только при загрузке gVim), почему он имеет условие if has("gui_running")? Разве это не избыточно? Есть ли специальная проблема/причина для этого?

Я знаю, что if has("gui_running") интересно использовать в скриптах и ​​т.д., я прошу конкретно использовать его в .gvimrc, потому что он получен только при использовании gvim, поэтому теоретически не нужен.

4b9b3361

Ответ 1

Файл gvimrc, к которому привязался OP, был моим, поэтому я лучше владел и признал, что это было сделано по уважительной причине.

Я скопировал этот фрагмент из взломать без отвлечения, который рекомендует поместить его в ваш vimrc. Затем в какой-то момент я понял, что было бы аккуратно переместить его в файл gvimrc, но я не думал об этом четко и оставил проверку if has('gui_running') на месте. Вы правы, чтобы указать, что это не нужно, поэтому я теперь удалил его.

Для потомков, здесь мой gvimrc до и после изменение.

Ответ 2

Сохранение одного конфигурационного файла вместо двух проще (особенно если вы работаете на нескольких машинах и должны синхронизировать свои конфиги). Поэтому вместо создания .gvimrc и .vimrc некоторые из них могут предпочесть поместить все это в файл .vimrc и использовать защитные устройства.

А потом кто-то делится этим файлом в Интернете, и люди копируют его разделенные графическим интерфейсом разделы .gvimrc. Вот как это получается.

Ответ 3

Из vim-документации, в основном это позволяет вам выполнять различные настройки в зависимости от того, какой GUI работает.

- To check in a Vim script if the GUI is being used, you can use something
  like this:

    if has("gui_running")
       echo "yes, we have a GUI"
    else
       echo "Boring old console"
    endif

                            *setting-guifont*
- When you use the same vimrc file on various systems, you can use something
  like this to set options specifically for each type of GUI:

    if has("gui_running")
        if has("gui_gtk2")
        :set guifont=Luxi\ Mono\ 12
        elseif has("x11")
        " Also for GTK 1
        :set guifont=*-lucidatypewriter-medium-r-normal-*-*-180-*-*-m-*-*
        elseif has("gui_win32")
        :set guifont=Luxi_Mono:h12:cANSI
        endif
    endif

UPDATE:

            *gui-init* *gvimrc* *.gvimrc* *_gvimrc* *$MYGVIMRC*
The gvimrc file is where GUI-specific startup commands should be placed.  It
is always sourced after the |vimrc| file.  If you have one then the $MYGVIMRC
environment variable has its name.

Ответ 4

Может ли быть так. gvimrc читается, если вы вызываете запуск программы с помощью gvim вместо vim? Единственное различие, которое я вижу, это если вы вызываете gvim в настройке, где он не может запускаться (например, вы находитесь в сеансе ssh без X). В этом vim будет запущен, но файл все равно может быть найден.

(Я действительно не знаю, так ли это, в моей системе я скомпилировал vim без X, поэтому я не могу его протестировать)