Я исправил это с моей стороны. Это идет в конфиге:
bind \e\[1\;5C forward-word bind \e\[1\;5D backward-word
"источник", выполнив:
. .config/fish/config.fish
("." является источником в рыбе)
Надеюсь, что это поможет вам!
Я использую терминатор вместе с рыбой, и я хочу использовать Alt-Left и т. Д. Для навигации по терминатору и Ctrl-Left и Ctrl-right для перемещения курсора по слову. Проблема в том, когда я делаю
bind \cleft backward-word
это не меняет поведение Ctrl-влево или вправо. Похоже, это следует из документации, и я извлек ключ и команду из флагов -K и -f и
bind -a
показывает, что привязки существуют.
Я использовал ту же команду для других последовательностей, но я не могу заставить ее работать. Я что-то пропустил?
Я исправил это с моей стороны. Это идет в конфиге:
bind \e\[1\;5C forward-word bind \e\[1\;5D backward-word
"источник", выполнив:
. .config/fish/config.fish
("." является источником в рыбе)
Надеюсь, что это поможет вам!
введите bind \cleft backward-word
в командной строке рыбы должны сделать эту работу. Если вы хотите, чтобы он выполнялся при каждом запуске, установите:
function fish_user_key_bindings bind \cleft backward-word end
в .config/fish/config.fish
Привязки клавиш не сохраняются между сессиями по умолчанию. Голые операторы связывания в config.fish не будут иметь никакого эффекта, потому что они поставляются перед настройкой привязок клавиш по умолчанию. Чтобы сохранить пользовательские привязки клавиш, поместите операторы связывания в функцию fish_user_key_bindings, которая будет автоматически загружаться.
The accepted answer is almost worked, but I found I can't make it auto bind the keys through config.fish file. I endup modify the fish_vi_key_bindings.fish (which under /usr/share/fish/functions) directly.
Also, just adding ctrl-left and ctrl-right to normal mode under vi keybind is not enough, have to add insert and visual mode also.
bind \e\[1\;5C forward-word bind \e\[1\;5D backward-word bind -M insert \e\[1\;5C forward-word bind -M insert \e\[1\;5D backward-word bind -M visual \e\[1\;5C forward-word bind -M visual \e\[1\;5D backward-word
Sorry for this should be a comment to the accepted answer, not an independent answer, but due to I don't have sufficient reputation to add comment (personally, I don't think this reputation system is reasonable), and I felt that I should share this to someone who is facing the same issue, or for someone who has experience on how to fix the issue.
The "~/.bash_profile" for fish is in ~/.config/fish/config.fish (if it doesn't exist create it). To have it run on login put this in the config.fish file:
if status --is-login bind \e\[1\;5C forward-word bind \e\[1\;5D backward-word end
Первое, что нужно отметить, это то, что ctrl+ left-arrowне имеет никакого смысла и не может быть сделано в любой оболочке. Это потому, что ctrlключ на самом деле не отправляет никаких символов сам по себе (если вы не сделали что-то очень необычное для конфигурации вашего терминала). Эта клавиша изменяет следующую букву, которая нажимается. Например, ctrl+ aзаставляет терминал отправлять однобайтовое шестнадцатеричное значение 0x01. Поскольку такие клавиши, как стрелка влево, обычно отправляют последовательность символов, начинающуюся с escсимвола, а escape - это уже управляющий символ, применение модификатора управления к нему ничего не дает.
Как вы нашли обычный способ сделать это, используйте alt. Если вы сконфигурировали свой терминал, чтобы он воспринимал это как «мета-ключ», который ставит префикс перед последующим символом escape, вы можете нажать alt+, page-upчтобы терминал отправлял \e\e[5~
. Если вы собираете fish из исходников git, вы получите удобную программу с именем, fish_key_reader
которая значительно облегчит изучение того, какие ключи отправляются. Это будет в выпуске Fish 2.3.1, который должен появиться через пару недель.
Наконец, пользовательские привязки клавиш должны быть в вашем личном конфигурационном файле, а не в глобальном /usr/share/fish/functions/fish_default_key_bindings.fish
скрипте. Вы должны создать файл с именем $HOME/.config/fish/functions/fish_user_key_bindings.fish
следующего содержания:
function fish_user_key_bindings bind \e\[1\;5C forward-word bind \e\[1\;5D backward-word end