Как заставить рыбу сохранять новые привязки клавиш настойчиво после закрытия окна терминала?

как я могу заставить рыбу, чтобы сохранить новый ключ привязки упорно после закрытия окна терминала?

на данный момент у меня проблема:

я открываю окно терминала, оболочка по умолчанию является рыба. Я добавить ключ привязки с: персонализация \например имя_функции он работает в терминале теперь я закрываю окно терминала открыть новое окно терминала, снова рыба оболочка по умолчанию привязка не работает больше и не выход fish -a
3
задан 5 January 2011 в 02:25

14 ответов

В соответствии с этим вопросом, кажется, вам нужно отредактировать / создать файл ~/.config/fish/functions/fish_user_key_bindings.fish и, например, для чего-то вроде:

function my_func echo hello end function fish_user_key_bindings bind \eg my_func end
0
ответ дан 25 July 2018 в 22:39

Вы можете добавить привязки в файлы инициализации:

/usr/share/fish/config.fish /etc/fish/config.fish ~/.config/fish/config.fish

Например, вы можете добавить следующую функцию:

function __fish_less commandline -i -- "|less" end bind \ey __fish_less

Пример:

https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish

EDIT:

Из оболочки рыбы https: // github.com/zmalltalker/fish-nuggets/blob/master/config.fish:

Файлы инициализации При запуске рыба оценивает файлы /usr/share/fish/config.fish (или / usr / local / fish ... если вы установили рыбу в / usr / local), /etc/fish/config.fish (Или ~ / etc / fish / ... если вы установили рыбу в свой домашний каталог) и ~ /.config/fish/config.fish (или любой другой каталог, указанный переменной $ XDG_CONFIG_HOME) в этом порядке. Первый файл не должен быть непосредственно отредактирован, второй - для системной конфигурации, а последний - для настройки пользователя. Если вы хотите запустить команду только при запуске интерактивной оболочки, используйте статус выхода команды status -is-interactive, чтобы определить, является ли оболочка интерактивной. Если вы хотите запустить команду только при использовании оболочки входа, вместо этого используйте «status -is-login». Примеры. Если вы хотите добавить каталог ~ / linux / bin в свою переменную PATH при использовании оболочки входа, добавьте следующее в ваш файл ~ / .config / fish / config.fish: если status -is-login установлен PATH $ PATH ~ / linux / bin end Если вы хотите запустить набор команд при выходе из игры, используйте обработчик событий, который запускается при выходе из оболочки: function on_exit --on-process% self echo fish теперь выходит из конца Универсальные переменные хранятся в файле .config / fish / fishd.HOSTNAME, где HOSTNAME - это имя вашего компьютера. Не редактируйте этот файл напрямую, не редактируйте их с помощью рыбных скриптов или не используйте вместо этого интерактивную игру.

Итак, вы должны отредактировать файл ~ / .config / fish / config.fish, выйти из системы (или переустановить файл config.fish), и, наконец, вы должны иметь свои «пользовательские привязки».

Я любезно советую вам прочитать всю документацию и немного поиграть с оболочкой, ничего из того, что я написал здесь, не из документа.

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

2
ответ дан 25 July 2018 в 22:39
  • 1
    сначала я просто установил bind \ eg appendgrep в config.fish, и это не сработало. вторая попытка заключалась в том, чтобы также добавить функцию в файл config.fish, как эта функция appendgrep commandline -i - & quot; | grep \ & quot; но это также не имеет значения и не работает. – NES 5 January 2011 в 03:13
  • 2
    тем не менее, определенные функции через каталог функций, кажется, быть настойчивым и по-прежнему доступны после закрытия окна терминала и открывая его. хотя они не отображаются в персонализация -F выходной. возможно, есть какие-то различия, что функции должны быть глобальными или так? – NES 5 January 2011 в 03:21
  • 3
    Обновление: не должно быть никаких проблем, чтобы использовать привязку командной строки в конфиге.файл рыбы, как вы предположили, потому что он работает в Shell. Тем не менее, постараемся найти решение и дать ответ в здесь, когда я узнаю. я думаю, это может быть также связано с этим вопросом mail-archive.com/fish-users@lists.sourceforge.net/msg01956.html – NES 5 January 2011 в 17:23
  • 4
    У меня есть несколько сомнений ... 1. Используйте readline, чтобы убедиться, что вы правильно сопоставляете комбинации клавиш Alt. 2. Может быть, рыба не читает fish.config, поэтому попробуйте отредактировать системные файлы /etc/fish/config.fish и /usr/share/fish/config.fish. Посмотрите на странные параметры conf и при необходимости добавьте свою функцию. – tmow 5 January 2011 в 17:47

по данным на этот вопрос, кажется, нужно отредактировать файл / создать файл [F2] и, например, поставить там что-то вроде:

function my_func echo hello end function fish_user_key_bindings bind \eg my_func end
0
ответ дан 2 August 2018 в 04:05

Вы можете добавить привязки в файлах инициализации:

/usr/share/fish/config.fish /etc/fish/config.fish ~/.config/fish/config.fish

, например, можно добавить следующие функции:

function __fish_less commandline -i -- "|less" end bind \ey __fish_less

пример:

https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish

изменения:

от рыбы раковины https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish:

инициализации файлов при запуске, рыба оценивает файлов /usr/доли/рыба/конфиг.рыба (или /usr/местные/рыбы... если вы установили рыбы в /usr/local), то в /etc/рыба/конфиг.рыба (или ~/и т. д./рыбы/... если вы установили рыбы в вашем домашнем каталоге) и ~/.конфиг/рыба/конфиг.рыбы (или любой другой каталог, указанный в переменной $XDG_CONFIG_HOME), в таком порядке. Первый файл не следует редактировать напрямую, второй предназначен для системной конфигурации, а последний предназначен для конфигурации пользователя. Если вы хотите, чтобы команда выполнялась, только на запуск интерактивной оболочки, использовать статус выхода из команды 'статус-это-интерактивные', чтобы определить, если оболочка является интерактивной. Если вы хотите, чтобы команда выполнялась, только при использовании оболочка, статус использования-это-войти вместо этого. Примеры: если вы хотите добавить директорию ~/линукс/bin в переменную Path при использовании оболочка входа в систему, добавьте следующие строки в ваш ~/.конфиг/рыба/конфиг.рыба файла: если статус-это вход в систему указать путь в $Path ~/линукс/ОГРН концов, если вы хотите выполнить набор команд, когда рыба выходит, использовать обработчик событий, который срабатывает при выходе из оболочки: функция on_exit-на-процесс %само Эхо рыбы теперь выхода торцевые Универсальные переменные хранятся в файле .конфиг/рыба/fishd.Hostname, где hostname-имя вашего компьютера. Не редактируйте этот файл напрямую, редактировать их через рыбы скриптов или с помощью рыбы, а не интерактивно. [dиода d17]Итак, вы должны отредактировать ~/.конфиг/рыба/конфиг.рыбу, выход (или ре-источник конфигурации.рыб) и, наконец, Вы должны иметь ваши "пользовательские привязки".[!dиода d17]

я убедительно советую вам прочитать всю документацию и немного поиграть с раковины, ничего, что я тут написал не из дока.

потом, если не получится, вернись сюда с журналами (если таковой имеется), конфигурационные файлы, отладки и так далее.

2
ответ дан 2 August 2018 в 04:05
  • 1
    сначала я поставил просто персонализация \ЭГ appendgrep в config.рыбы и она не работает. вторая попытка была также поставить функцию в конфиге.рыбы файл, как это appendgrep функции командной строки -я ... " | команда grep \"" конец, но это сделает никакой разницы и не работает. – NES 5 January 2011 в 03:13
  • 2
    однако определенные функции через каталог функций кажутся постоянными и все еще доступны после закрытия окна терминала и открытия его. хотя они не отображаются в выводе bind -f. возможно, существуют какие-то различия, которые должны быть глобальными или такими? – NES 5 January 2011 в 03:21
  • 3
    Обновление: не должно быть проблем с использованием командной строки bind в файле config.fish, как вы также предположили, потому что он работает в оболочке. Однако попытайтесь найти решение и ответьте здесь, когда я узнаю. я думаю, это также может быть связано с этим вопросом mail-archive.com/fish-users@lists.sourceforge.net/msg01956.html – NES 5 January 2011 в 17:23
  • 4
    У меня есть несколько сомнений ... 1. Используйте readline, чтобы убедиться, что вы правильно сопоставляете комбинации клавиш Alt. 2. Может быть, рыба не читает fish.config, поэтому попробуйте отредактировать системные файлы /etc/fish/config.fish и /usr/share/fish/config.fish. Посмотрите на странные параметры conf и при необходимости добавьте свою функцию. – tmow 5 January 2011 в 17:47

Вы можете добавить привязки в файлы инициализации:

  /usr/share/fish/config.fish /etc/fish/config.fish ~ / .config / fish / config.  fish  

Например, вы можете добавить следующую функцию:

  function __fish_less commandline -i - "| less" end bind \ ey __fish_less  

Пример:

https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish

РЕДАКТИРОВАТЬ:

Из файла файла shell :

Файлы инициализации При запуске рыба оценивает файлы / usr / share / fish /config.fish (Or / usr / local / fish ... если вы установили рыбу в / usr / local), /etc/fish/config.fish (Или ~ / etc / fish / ... если вы установили рыбу в ваш домашний каталог) и ~ / .config / fish / config.fish (или любой другой каталог, указанный переменной $ XDG_CONFIG_HOME) в этом порядке. Первый файл не должен быть непосредственно отредактирован, второй - для системной конфигурации, а последний - для настройки пользователя. Если вы хотите запустить команду только при запуске интерактивной оболочки, используйте статус выхода команды status -is-interactive, чтобы определить, является ли оболочка интерактивной. Если вы хотите запустить команду только при использовании оболочки входа, используйте вместо нее «status -is-login».

Примеры:

Если вы хотите добавить каталог ~ / linux / bin в вашу переменную PATH при использовании оболочки входа в систему, добавьте следующее в файл ~ / .config / fish / config.fish:

, если status --is-login set PATH $ PATH ~ / linux / bin end

Если вы хотите запустить набор команд при выходе из рыбы, используйте обработчик событий, который запускается при выходе из оболочки:

function on_exit --on -process% self echo fish теперь выходит из конца

Универсальные переменные хранятся в файле .config / fish / fishd.HOSTNAME, где HOSTNAME - это имя вашего компьютера. Не редактируйте этот файл напрямую, отредактируйте их через скрипты с рыбками или используйте вместо него интерактивную игру.

Итак, вы должны отредактировать файл ~ / .config / fish / config.fish, logout (или переустановите config.fish) и, наконец, вы должны иметь свои «пользовательские привязки».

Я любезно советую вам прочитать всю документацию и немного поиграть с оболочкой, ничего, что я написал здесь, t) из doc.

Затем, если это не сработает, вернитесь сюда с журналами (когда это доступно), конфигурационными файлами, debug и т. д.

2
ответ дан 4 August 2018 в 20:09

В соответствии с этим вопросом кажется, вам нужно отредактировать / создать файл ~ / .config / fish / functions / fish_user_key_bindings.fish и, например, для put там что-то вроде:

  function my_func echo hello end function fish_user_key_bindings bind \ eg my_func end  
0
ответ дан 4 August 2018 в 20:09

В соответствии с этим вопросом кажется, вам нужно отредактировать / создать файл ~ / .config / fish / functions / fish_user_key_bindings.fish и, например, для put там что-то вроде:

  function my_func echo hello end function fish_user_key_bindings bind \ eg my_func end  
0
ответ дан 6 August 2018 в 04:11

Вы можете добавить привязки в файлы инициализации:

  /usr/share/fish/config.fish /etc/fish/config.fish ~ / .config / fish / config.  fish  

Например, вы можете добавить следующую функцию:

  function __fish_less commandline -i - "| less" end bind \ ey __fish_less  

Пример:

https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish

РЕДАКТИРОВАТЬ:

Из файла файла shell :

Файлы инициализации При запуске рыба оценивает файлы / usr / share / fish /config.fish (Or / usr / local / fish ... если вы установили рыбу в / usr / local), /etc/fish/config.fish (Или ~ / etc / fish / ... если вы установили рыбу в ваш домашний каталог) и ~ / .config / fish / config.fish (или любой другой каталог, указанный переменной $ XDG_CONFIG_HOME) в этом порядке. Первый файл не должен быть непосредственно отредактирован, второй - для системной конфигурации, а последний - для настройки пользователя. Если вы хотите запустить команду только при запуске интерактивной оболочки, используйте статус выхода команды status -is-interactive, чтобы определить, является ли оболочка интерактивной. Если вы хотите запустить команду только при использовании оболочки входа, используйте вместо нее «status -is-login».

Примеры:

Если вы хотите добавить каталог ~ / linux / bin в вашу переменную PATH при использовании оболочки входа в систему, добавьте следующее в файл ~ / .config / fish / config.fish:

, если status --is-login set PATH $ PATH ~ / linux / bin end

Если вы хотите запустить набор команд при выходе из рыбы, используйте обработчик событий, который запускается при выходе из оболочки:

function on_exit --on -process% self echo fish теперь выходит из конца

Универсальные переменные хранятся в файле .config / fish / fishd.HOSTNAME, где HOSTNAME - это имя вашего компьютера. Не редактируйте этот файл напрямую, отредактируйте их через скрипты с рыбками или используйте вместо него интерактивную игру.

Итак, вы должны отредактировать файл ~ / .config / fish / config.fish, logout (или переустановите config.fish) и, наконец, вы должны иметь свои «пользовательские привязки».

Я любезно советую вам прочитать всю документацию и немного поиграть с оболочкой, ничего, что я написал здесь, t) из doc.

Затем, если это не сработает, вернитесь сюда с журналами (когда это доступно), конфигурационными файлами, debug и т. д.

2
ответ дан 6 August 2018 в 04:11

Вы можете добавить привязки в файлы инициализации:

  /usr/share/fish/config.fish /etc/fish/config.fish ~ / .config / fish / config.  fish  

Например, вы можете добавить следующую функцию:

  function __fish_less commandline -i - "| less" end bind \ ey __fish_less  

Пример:

https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish

РЕДАКТИРОВАТЬ:

Из файла файла shell :

Файлы инициализации При запуске рыба оценивает файлы / usr / share / fish /config.fish (Or / usr / local / fish ... если вы установили рыбу в / usr / local), /etc/fish/config.fish (Или ~ / etc / fish / ... если вы установили рыбу в ваш домашний каталог) и ~ / .config / fish / config.fish (или любой другой каталог, указанный переменной $ XDG_CONFIG_HOME) в этом порядке. Первый файл не должен быть непосредственно отредактирован, второй - для системной конфигурации, а последний - для настройки пользователя. Если вы хотите запустить команду только при запуске интерактивной оболочки, используйте статус выхода команды status -is-interactive, чтобы определить, является ли оболочка интерактивной. Если вы хотите запустить команду только при использовании оболочки входа, используйте вместо нее «status -is-login».

Примеры:

Если вы хотите добавить каталог ~ / linux / bin в вашу переменную PATH при использовании оболочки входа в систему, добавьте следующее в файл ~ / .config / fish / config.fish:

, если status --is-login set PATH $ PATH ~ / linux / bin end

Если вы хотите запустить набор команд при выходе из рыбы, используйте обработчик событий, который запускается при выходе из оболочки:

function on_exit --on -process% self echo fish теперь выходит из конца

Универсальные переменные хранятся в файле .config / fish / fishd.HOSTNAME, где HOSTNAME - это имя вашего компьютера. Не редактируйте этот файл напрямую, отредактируйте их через скрипты с рыбками или используйте вместо него интерактивную игру.

Итак, вы должны отредактировать файл ~ / .config / fish / config.fish, logout (или переустановите config.fish) и, наконец, вы должны иметь свои «пользовательские привязки».

Я любезно советую вам прочитать всю документацию и немного поиграть с оболочкой, ничего, что я написал здесь, t) из doc.

Затем, если это не сработает, вернитесь сюда с журналами (когда это доступно), конфигурационными файлами, debug и т. д.

2
ответ дан 7 August 2018 в 22:10

В соответствии с этим вопросом кажется, вам нужно отредактировать / создать файл ~ / .config / fish / functions / fish_user_key_bindings.fish и, например, для put там что-то вроде:

  function my_func echo hello end function fish_user_key_bindings bind \ eg my_func end  
0
ответ дан 7 August 2018 в 22:10

В соответствии с этим вопросом кажется, вам нужно отредактировать / создать файл ~ / .config / fish / functions / fish_user_key_bindings.fish и, например, для put там что-то вроде:

  function my_func echo hello end function fish_user_key_bindings bind \ eg my_func end  
0
ответ дан 10 August 2018 в 10:24

Вы можете добавить привязки в файлы инициализации:

  /usr/share/fish/config.fish /etc/fish/config.fish ~ / .config / fish / config.  fish  

Например, вы можете добавить следующую функцию:

  function __fish_less commandline -i - "| less" end bind \ ey __fish_less  

Пример:

https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish

РЕДАКТИРОВАТЬ:

Из файла файла shell :

Файлы инициализации При запуске рыба оценивает файлы / usr / share / fish /config.fish (Or / usr / local / fish ... если вы установили рыбу в / usr / local), /etc/fish/config.fish (Или ~ / etc / fish / ... если вы установили рыбу в ваш домашний каталог) и ~ / .config / fish / config.fish (или любой другой каталог, указанный переменной $ XDG_CONFIG_HOME) в этом порядке. Первый файл не должен быть непосредственно отредактирован, второй - для системной конфигурации, а последний - для настройки пользователя. Если вы хотите запустить команду только при запуске интерактивной оболочки, используйте статус выхода команды status -is-interactive, чтобы определить, является ли оболочка интерактивной. Если вы хотите запустить команду только при использовании оболочки входа, используйте вместо нее «status -is-login».

Примеры:

Если вы хотите добавить каталог ~ / linux / bin в вашу переменную PATH при использовании оболочки входа в систему, добавьте следующее в файл ~ / .config / fish / config.fish:

, если status --is-login set PATH $ PATH ~ / linux / bin end

Если вы хотите запустить набор команд при выходе из рыбы, используйте обработчик событий, который запускается при выходе из оболочки:

function on_exit --on -process% self echo fish теперь выходит из конца

Универсальные переменные хранятся в файле .config / fish / fishd.HOSTNAME, где HOSTNAME - это имя вашего компьютера. Не редактируйте этот файл напрямую, отредактируйте их через скрипты с рыбками или используйте вместо него интерактивную игру.

Итак, вы должны отредактировать файл ~ / .config / fish / config.fish, logout (или переустановите config.fish) и, наконец, вы должны иметь свои «пользовательские привязки».

Я любезно советую вам прочитать всю документацию и немного поиграть с оболочкой, ничего, что я написал здесь, t) из doc.

Затем, если это не сработает, вернитесь сюда с журналами (когда это доступно), конфигурационными файлами, debug и т. д.

2
ответ дан 10 August 2018 в 10:24

В соответствии с этим вопросом кажется, вам нужно отредактировать / создать файл ~ / .config / fish / functions / fish_user_key_bindings.fish и, например, для put там что-то вроде:

  function my_func echo hello end function fish_user_key_bindings bind \ eg my_func end  
0
ответ дан 13 August 2018 в 16:49

Вы можете добавить привязки в файлы инициализации:

  /usr/share/fish/config.fish /etc/fish/config.fish ~ / .config / fish / config.  fish  

Например, вы можете добавить следующую функцию:

  function __fish_less commandline -i - "| less" end bind \ ey __fish_less  

Пример:

https://github.com/zmalltalker/fish-nuggets/blob/master/config.fish

РЕДАКТИРОВАТЬ:

Из файла файла shell :

Файлы инициализации При запуске рыба оценивает файлы / usr / share / fish /config.fish (Or / usr / local / fish ... если вы установили рыбу в / usr / local), /etc/fish/config.fish (Или ~ / etc / fish / ... если вы установили рыбу в ваш домашний каталог) и ~ / .config / fish / config.fish (или любой другой каталог, указанный переменной $ XDG_CONFIG_HOME) в этом порядке. Первый файл не должен быть непосредственно отредактирован, второй - для системной конфигурации, а последний - для настройки пользователя. Если вы хотите запустить команду только при запуске интерактивной оболочки, используйте статус выхода команды status -is-interactive, чтобы определить, является ли оболочка интерактивной. Если вы хотите запустить команду только при использовании оболочки входа, используйте вместо нее «status -is-login».

Примеры:

Если вы хотите добавить каталог ~ / linux / bin в вашу переменную PATH при использовании оболочки входа в систему, добавьте следующее в файл ~ / .config / fish / config.fish:

, если status --is-login set PATH $ PATH ~ / linux / bin end

Если вы хотите запустить набор команд при выходе из рыбы, используйте обработчик событий, который запускается при выходе из оболочки:

function on_exit --on -process% self echo fish теперь выходит из конца

Универсальные переменные хранятся в файле .config / fish / fishd.HOSTNAME, где HOSTNAME - это имя вашего компьютера. Не редактируйте этот файл напрямую, отредактируйте их через скрипты с рыбками или используйте вместо него интерактивную игру.

Итак, вы должны отредактировать файл ~ / .config / fish / config.fish, logout (или переустановите config.fish) и, наконец, вы должны иметь свои «пользовательские привязки».

Я любезно советую вам прочитать всю документацию и немного поиграть с оболочкой, ничего, что я написал здесь, t) из doc.

Затем, если это не сработает, вернитесь сюда с журналами (когда это доступно), конфигурационными файлами, debug и т. д.

2
ответ дан 13 August 2018 в 16:49
  • 1
    сначала я просто установил bind \ eg appendgrep в config.fish, и это не сработало. вторая попытка заключалась в том, чтобы также добавить функцию в файл config.fish, как эта функция appendgrep commandline -i - & quot; | grep \ & quot; но это также не имеет значения и не работает. – NES 5 January 2011 в 03:13
  • 2
    однако определенные функции через каталог функций кажутся постоянными и все еще доступны после закрытия окна терминала и открытия его. хотя они не отображаются в выводе bind -f. возможно, существуют какие-то различия, которые должны быть глобальными или такими? – NES 5 January 2011 в 03:21
  • 3
    Обновление: не должно быть проблем с использованием командной строки bind в файле config.fish, как вы также предположили, потому что он работает в оболочке. Однако попытайтесь найти решение и ответьте здесь, когда я узнаю. я думаю, это также может быть связано с этим вопросом mail-archive.com/fish-users@lists.sourceforge.net/msg01956.html – NES 5 January 2011 в 17:23
  • 4
    У меня есть несколько сомнений ... 1. Используйте readline, чтобы убедиться, что вы правильно сопоставляете комбинации клавиш Alt. 2. Может быть, рыба не читает fish.config, поэтому попробуйте отредактировать системные файлы /etc/fish/config.fish и /usr/share/fish/config.fish. Посмотрите на странные параметры conf и при необходимости добавьте свою функцию. – tmow 5 January 2011 в 17:47

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

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