Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

visual selection in bash / cli

Is there a way to make bash use visual selections for text replacement?

Standard text input conventions don't work:

  1. If you press Shift+Left Arrow, the character to the left should be visually selected
  2. If you press Ctrl+Left Arrow, the cursor should move to the beginning of the previous word
  3. If you press Shift+Ctrl+Left Arrow, the word to the left should be visually selected
  4. If you visually select some text then press any key, the text should be replaced with the text of the key you press

Vi mode (set -o vi) visual selection conventions don't work:

  1. If you enter normal mode, press 'v' to enter visual selection, then press 'h', it should visually select the character to the left
  2. If you enter normal mode, press 'v' to enter visual selection, then press 'B', it should visually select the word to the left
  3. If you visually select some text and then press 'R', it should erase the text and leave you typing the replacement
like image 505
Myer Avatar asked Aug 12 '10 02:08

Myer


2 Answers

this guy did it for zsh:

I've made a VI VISUAL Mode for !ZSH. Emulates !VIM 's visual mode "v" in the cmd-line. http://bazaar.launchpad.net/~raybuntu/%2Bjunk/ZSH_stuff/annotate/head%3A/zle_vi_visual.zsh

it's awesome!

like image 169
wuan Avatar answered Oct 11 '22 06:10

wuan


When I want to do this in ZSH I use edit-command-line. You can add the following into your .zshrc:

autoload -U edit-command-line
zle -N edit-command-line
bindkey -M vicmd v edit-command-line

Then I can just type v in command mode and it will open up my $EDITOR. You can do the same thing in Bash by just typing v in command mode without any customization.

like image 41
claytron Avatar answered Oct 11 '22 07:10

claytron