Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I used to have this in my .inputrc when I used bash but it doesn't work in ZSH because ZSH doesn't read the .inputrc (AFAIK):

$if Bash
  # Meta+O can be made to load the previous 
  # command and position the cursor for typing an option
  "\eo": "\C-p\C-a\ef "

It's the one thing I miss from my bash days. Is there a way to port this command to ZSH? I tried some bindkey shenanigans with little success.

share|improve this question
up vote 7 down vote accepted

That's right, zsh has its own line editor (ZLE) and doesn't read readline's .inputrc.

Try:

# define widget function
function cursor-after-first-word {
    zle up-history
    zle beginning-of-line
    zle forward-word
    RBUFFER=" $RBUFFER"
}

# create widget from function
zle -N cursor-after-first-word

# bind widget to ESC-o
bindkey '^[o' cursor-after-first-word

See man zshzle about what else is possible.

share|improve this answer
2  
Using emacs-forward-word instead of forward-word would better match how forward-word works in bash (and Emacs). Or the asker might want to redefine M-f and use a direct translation: bindkey '^[f' emacs-forward-word; bindkey -s '^[o' '^p^a^[f ' – Chris Johnsen May 4 '11 at 2:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .