Вставка последнего аргумента предыдущей команды в bash и zsh


ramok аватар

ramok - Posted on 19 Апрель 2008

В bash и zsh в стандартном режиме (он же зовется emasc-режим, это тот который не vi-режим Ж:-)
есть удобное сочетание клавиш Esc-. позвляющее вставлять последнее слово аргументов прошлой команды.

Пример использования. Например прочитали новость о выходе нового релиза игрушки glest и решили глянуть что за зверь такой.

# так как лень, то ищем есть ли в репозитории
$ apt-cache search glest
glest-data - A free 3d real-time customizable strategy game
glest - A free 3D real-time customizable strategy game
 
# o, есть. смотрим описание и зависимости
$ apt-cache show Esc-.
Package: glest
...
Depends: glest-data (= 3.1.0-1), ..
...
Description: A free 3D real-time customizable strategy game
 Glest takes place in a context which could be compared to that of the
 pre-renaissance Europe, with the licence that magic forces exist in the
 environment and can be controlled.
 
# ок. устраивает установим 
$ sudo apt-get install Esc-.
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Reading state information... Готово
...
 
# смотрим что поставилось, какие запусные файлы, есть ли мануалы, README.Debian и что там
$ dpkg -L Esc-.
/.
/usr
/usr/games
/usr/games/glest
...
 
# ну и запустим
$ Esc-.

Как видно из примера не плохо облегчает жизнь Ж:-)

Если вы используете zsh в vi режиме, то получить эту фичу в режиме вставки можно добавив в свой ~/.zshrc

bindkey -M viins '^[.' insert-last-word

Только учтите что между нажатием Esc и . должно пройти меньше секунды, иначе zsh перейдет в командный режим vi-режима.

0
Ваша оценка: Ничего
..

мне еще нравится такое
bindkey "^[p" copy-prev-shell-word
полезно при переименовании

кстате ^[. - это не только Esc+. а и alt+. ;)

да полезная штука. я пользуюсь !#$

а alt у меня на как оснаваня при управлении wm

стормозил и не сразу допер, что это escape и точка. сидел и давил escape и минус ;)
спасибо, neat!

Интересно. Не знал. Правда пример ИМХО не очень удачный. ;) Я лично предпочел бы из хистори вызвать предыдущую команду и поправить search на show чем набирать заново начало и в конце вставлять по Esc + .

ну как ни крути это учебный пример (из жизни правда) и меня все это автодополняется так что мне быстрее набрать. и вообще я стараюсь избегать стрелочек и редактирования предыдущей команды напрямую, а использовать всяческие способы замены. сначало не удобно а потом привыкаешь Ж:-)
например в этом случаем можно было бы применить csh "заменить и выполнить"

$ apt-get search glest
$ ^search^show

или в zsh можно так

$ apt-get search glest
$ r search=show
или
$ r !:1=show

но это уже другой совет Ж:-)

--
Signature invent in progress 24% ##........

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.