Почему некоторые люди используют "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, поэтому теоретически не нужен.
Ответы
Ответ 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, поэтому я не могу его протестировать)