Как я могу заставить kubuntu уважать предыдущие размеры окна?

Без () синтаксис действительно был бы двусмысленным.

Должен быть какой-то однозначный синтаксис для определения функции и без существенного изменения другого синтаксиса оболочки, это не может быть: 1]

do_something {
    # one or more commands go here
}

Вы сказали, что это «не связано с его текущим синтаксисом», но это так! Обратите внимание, что при попытке запустить некоторые вы не получаете никакой синтаксической ошибки. Вы получаете ошибку, но это не ошибка синтаксиса. Вторая строка с } является синтаксической ошибкой, но первая строка не является. Вместо этого do_something { пытается запустить команду с именем do_something и передать { в качестве аргумента этой команде:

$ do_something {
do_something: command not found

Если уже существует команда с именем do_something, вы запускаете Это. Если уже есть функция, называемая do_something, вы вызываете ее. В общем, важно, чтобы синтаксис был однозначным, но также важно, чтобы можно было переопределить функцию, не называя ее случайно.

Как оболочка рассматривает { и (.

Поскольку type { скажет вам, { ключевое слово оболочки. Это делает его подобно [[. Если используется в ситуации, когда в противном случае это была бы команда, { несет специальную семантику. В частности, он выполняет группировку команд. В других ситуациях, однако, он может использоваться без привязки для обозначения символа {. Это включает в себя ситуацию передачи его как второго или последующего слова команды.

Конечно, Bash , который вы называете его , был разработан для обработки { иначе, чем его в настоящее время. Однако его синтаксис больше не был бы совместим с оболочкой POSIX, и Bash на самом деле не был бы оболочкой стиля Bourne и не мог бы запускать многие сценарии оболочки.

Напротив, является метасимволом оболочки. Он всегда обрабатывается специально, если он появляется в команде и не цитируется (с ' ', " " или \). Таким образом, в синтаксисе нет двусмысленности:

do_something() {
    # one or more commands go here
}

Это ничего не значит. Если у Bash нет функций, то это будет синтаксическая ошибка, по той же причине echo foo(bar) является синтаксической ошибкой.

Если вам действительно не нравится нотация (), вы можете использовать ключевое слово function и опустить это, как упоминает судовод. Обратите внимание, что это не является частью синтаксиса для определения функций в большинстве других оболочек в стиле Bourne, а в некоторых поддерживается, но функции определены таким образом, что имеют другую семантику - и поэтому скрипт, который его использует, не будет переносимым. (Причина, по которой этот синтаксис может быть однозначным, заключается в том, что function сам по себе является ключевым словом в Bash, что означает, что все, что следует за ним, является началом определения функции.)

Наконец, обратите внимание, что, хотя большинство функций определения используют { на практике, любая составная команда разрешена. Если у вас была функция, тело которой вы хотели всегда запускать в подоболочке, вы можете использовать ( ), а не { }.

2
задан 12 February 2012 в 02:00

4 ответа

Автоматическое растяжение?

KDE Форумы / Ширина автоматического масштабирования Windows: http://forum.kde.org/viewtopic.php?f=66&t=97839

Автоматическое растяжение?

Конфигурировать настройки специально для окна

Системные настройки> Поведение окна> Правила окна

Специальное окно / Настройки приложения

Щелкните правой кнопкой мыши по границе окна> Дополнительно> Специальное окно / Настройки приложения> Размер и amp; Позиция

Размер - Запомнить

3
ответ дан 25 May 2018 в 14:22
  • 1
    Спасибо, оказывается, кликнув по кнопке максимизации, по первой ссылке, зафиксировал ее. – Jon 12 February 2012 в 04:35

Автоматическое растяжение?

KDE Forums / Ширина автоматического масштабирования Windows: http://forum.kde.org/viewtopic.php?f=66&t=97839

Правила окна

  • Конфигурировать настройки специально для окна

Системные настройки> Поведение окна> Правила окна

Специальные настройки окна / приложения

Щелкните правой кнопкой мыши по границе окна> Дополнительно> Специальное окно / Настройки приложения> Размер и amp; Положение

Размер - Запомнить

enter image description here [/g1]

3
ответ дан 15 August 2018 в 20:12

Что касается более широкого вопроса о запоминании размера и позиции, принятый ответ показывает, как это сделать на основе каждого окна.

Следующий вопрос: как глобально настроить его для всех окон? Это было запрошено еще в 2000 году в https://bugs.kde.org/show_bug.cgi?id=15329, который был закрыт как WONTFIX в 2012 году. Разработчик KWin имел это, чтобы сказать:

Я устанавливаю этот запрос функции в WONTFIX, так как невозможно реализовать такую ​​политику запоминания с нашей используемой в настоящее время системой окон. Признание окна - нетривиальная проблема. Это может стать разрешимым с Wayland, но в целом запоминание не может быть реализовано диспетчером окон или системой окон, но требует от клиентов.
0
ответ дан 25 May 2018 в 14:22

Что касается более широкого вопроса о запоминании размера и позиции, принятый ответ показывает, как это сделать на основе каждого окна.

Следующий вопрос: как глобально настроить его для всех окон? Это было запрошено еще в 2000 году в https://bugs.kde.org/show_bug.cgi?id=15329 , который был закрыт как WONTFIX в 2012 году. Разработчик KWin сказал следующее:

Я устанавливаю этот запрос функции в WONTFIX, так как невозможно реализовать такую ​​политику сохранения с нашей используемой в настоящее время системой окон. Признание окна - нетривиальная проблема. Это может стать разрешимым с Wayland, но в целом запоминание не может быть реализовано диспетчером окон или системой окон, но должно быть запрошено клиентами.

0
ответ дан 25 July 2018 в 19:56

Другие вопросы по тегам:

Похожие вопросы: