Почему некоторые люди используют 'if has ("gui_running") "в .gvimrc? - PullRequest
33 голосов
/ 20 ноября 2010

Я читал некоторые точечные файлы (.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, поэтому в теории не нужен.

Ответы [ 4 ]

51 голосов
/ 21 ноября 2010

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

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

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

13 голосов
/ 21 ноября 2010

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

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

7 голосов
/ 20 ноября 2010

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

- 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.
1 голос
/ 20 ноября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...