LINUX.ORG.RU

Вопросы по zsh и клавиатуре

 , , записки неосилятора


0

2

Наслушался рассказов о том, что это совсем не больно и даже приятно, и решил, наконец, попробовать zsh. Пока он вызывает, в основном, недоумение.
Вопрос №1:
Как заставить zsh понимать home/end/←/→/^←/^→/pgup/pgdn? Все интернеты завалены разными способами, но ни один из них нормально не работает. И это ваш самый удобный в мире шелл?
Вопрос №2:
Почему при возвращении к предыдущей команде по ↑ курсор оказывается не в конце строки, а в начале, и как это изменить? Это какой воспалённый мозг такое вообще смог породить?

★★★★★

Последнее исправление: Axon (всего исправлений: 1)

###################################
# Correcting behaviors of the keys:
###################################

bindkey "\e[1~" beginning-of-line # Home
bindkey "\e[4~" end-of-line # End
bindkey "\e[5~" beginning-of-history # PageUp
bindkey "\e[6~" end-of-history # PageDown
bindkey "\e[2~" quoted-insert # Ins
bindkey "\e[3~" delete-char # Del
bindkey "\e[5C" forward-word
bindkey "\eOc" emacs-forward-word
bindkey "\e[5D" backward-word
bindkey "\eOd" emacs-backward-word
bindkey "\e\e[C" forward-word
bindkey "\e\e[D" backward-word
bindkey    "^[[A" history-beginning-search-backward
bindkey -a "^[[A" history-beginning-search-backward
bindkey    "^[[B" history-beginning-search-forward
bindkey -a "^[[B" history-beginning-search-forward

# For rxvt:

bindkey "\e[7~" beginning-of-line # Home
bindkey "\e[8~" end-of-line # End

# For non RH/Debian xterm, can't hurt for RH/Debian xterm:

bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line

# For freebsd console:

bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
blackst0ne ★★★★★
()
Последнее исправление: blackst0ne (всего исправлений: 1)
Ответ на: комментарий от blackst0ne

Вообще, что за бред - для каждого эмулятора терминала отдельно хоткеи прописывать?

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Вообще, что за бред - для каждого эмулятора терминала отдельно хоткеи прописывать?

Это надо спрашивать у авторов эмуляторов.

Homura_Akemi
()
Ответ на: комментарий от Anatolik

не вижу предпосылок для возникновения проблем с вводом в любом терминале.

Я тоже не видел пока zsh не поставил...

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Вообще, что за бред - для каждого эмулятора терминала отдельно хоткеи прописывать?


Задайте этот вопрос разработчикам эмуляторов терминалов.

blackst0ne ★★★★★
()
Ответ на: комментарий от Axon

Почему у баша с этим проблем нет?

Потому что баш де-факто является стандартом. Очевидно же.

Anatolik ★★
()
Ответ на: комментарий от blackst0ne

Я понятия не имею, что должно делать ctrl + стрелки.

Переход по словам.

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon


Ну так почему же у zsh не /etc/inputrc?


Потому что zsh использует zle, а не readline.

blackst0ne ★★★★★
()
Ответ на: комментарий от Homura_Akemi

Потому что не libreadline.

Олсо, в Debian Zsh из коробки не имеет проблем с ненужноклавишами, ня.


Навреняка в debian наворотили что-то с конфигами. Debian way, как обычно.

blackst0ne ★★★★★
()
Ответ на: комментарий от blackst0ne

Навреняка в debian наворотили что-то с конфигами.

Причесали растрёпанный апстрим :3

Homura_Akemi
()
Ответ на: комментарий от Homura_Akemi

Потому что не libreadline.

И почему, блин, же не libreadline? Чтобы жизнь мёдом не казалась?

Олсо, в Debian Zsh из коробки не имеет проблем с ненужноклавишами, ня.

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

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

И почему, блин, же не libreadline?

Потому что GNU readline не то чтобы убожество, но далеко не подарок. Без zle Zsh был бы просто не нужен для большинства.

Homura_Akemi
()
Ответ на: комментарий от Homura_Akemi

Потому что GNU readline не то чтобы убожество, но далеко не подарок. Без zle Zsh был бы просто не нужен для большинства.

Пока я, что-то, преимуществ zle не чувствую, только недостатки. В конце концов, неужели так сложно было нормальный дефолтный конфиг в апстриме состряпать?

Axon ★★★★★
() автор топика
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от Axon

Не знаю, как в дебиане, а в убунте имеет.

Только Ctrl-стрелки не работают, но кому они вообще нужны, когда есть стандартные хоткеи для этого?

Homura_Akemi
()
Ответ на: комментарий от Homura_Akemi

Только Ctrl-стрелки не работают

Первое, что проверил.

кому они вообще нужны, когда есть стандартные хоткеи для этого?

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

Axon ★★★★★
() автор топика
Последнее исправление: Axon (всего исправлений: 1)

Кстати, а почему на второй вопрос никто не отвечает? Вы, что, все с этим живёте? O_o

Axon ★★★★★
() автор топика
Ответ на: комментарий от Axon

Переход по словам.

в ~/.zshrc

setopt emacs
bindkey '^[[5D' emacs-backward-word
bindkey '^[[5C' emacs-forward-word
bindkey ';5D' emacs-backward-word
bindkey ';5C' emacs-forward-word
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word

и стрелки заработают.

science ★★☆
()
Ответ на: комментарий от Axon

И почему, блин, же не libreadline? Чтобы жизнь мёдом не казалась?


Задайте этот вопрос в mailing list, там Вам ответят ярко и полноценно.

blackst0ne ★★★★★
()
Ответ на: комментарий от Axon

Кстати, а почему на второй вопрос никто не отвечает? Вы, что, все с этим живёте? O_o


Я привёл свой конфиг. У меня нет «варианта №2», который Вы описали.
У меня работает поиск по правой части от курсора. Это самый удобный вариант из всех, что я когда-либо пробовал в различных shells.

blackst0ne ★★★★★
()
Ответ на: комментарий от Axon

Кстати, а почему на второй вопрос никто не отвечает?

Никогда не было такого поведения.

Homura_Akemi
()
Ответ на: комментарий от science

в ~/.zshrc

setopt emacs
bindkey '^[[5D' emacs-backward-word
bindkey '^[[5C' emacs-forward-word
bindkey ';5D' emacs-backward-word
bindkey ';5C' emacs-forward-word
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word

и стрелки заработают.

Не работают ни в konsole, ни в VTE.

Axon ★★★★★
() автор топика
Ответ на: комментарий от blackst0ne

Я привёл свой конфиг. У меня нет «варианта №2», который Вы описали.

Я его к себе целиком скопипастил, не помогло.

Axon ★★★★★
() автор топика
Ответ на: комментарий от blackst0ne

Дай ему уже свой полный конфиг, видишь как человек убивается

zolden ★★★★★
()
Ответ на: комментарий от Axon

Вы издеваетесь, да?



1. Набираем ping ya.ru
2. Ctrl + C
3. Набираем ping http://www.ru
4. Ctrl + C
5. Набираем ls
6. Набираем pi
7. Жмём стрелку вверх - zsh подставил после курсора «ng ya.ru»
8. Жмём стрелку вверх - zsh подставил после курсора «ng http://www.ru"

Всё так?

blackst0ne ★★★★★
()
Ответ на: комментарий от blackst0ne

Всё понял, заменил везде history-beginning-search на history-search, вторую проблему решил.

Axon ★★★★★
() автор топика

Поставил oh-my-zsh, поковырял немного, решил этим и первую проблему.

Axon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.