you are viewing a single comment's thread
view the rest of the comments
[–] 14 points 2 years ago (6 children)

Good article. Rather than aliasing `cd ../.." etc. I've got this function in my setup:

up () {
	local x='' 
	for i in $(seq ${1:-1})
	do
		x="$x../" 
	done
	cd $x
}

This lets me do up 4 to go up 4 directories.

  • source
  • hideshow 12 child comments
  • [–] 4 points 2 years ago (2 children)

    Oh I really like this. I never had an alias for this since I need to do multiple backwards cds very rarely, but I might just copy this

  • source
  • parent
  • hideshow 4 child comments
  • [–] 2 points 2 years ago (1 child)

    Look into zoxide.

    z direc

    Will take you to the most used directory starting with "direc" eg "/home/me/random/directory"

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 2 years ago (1 child)

    I've tried things like that before but never got on with them. I found when I had many projects with similar directory structures it was easy to end up in the wrong place and took more thought to get to the right place than just cding

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 years ago*

    The dir's are the same names or similar? A few extra key strokes to get the fullname should be easier than cd'ing back and forth.

    There's also z foo "space" "tab" as per docs to get interactive list for matches.

    But, just a suggestion!

  • source
  • parent
  • [–] 1 point 2 years ago

    What I use to automatically extend stuff like ls .... to ls ../../../..

    function expand-dots() {
        local MATCH
        if [[ $LBUFFER =~ '(^| )\.\.\.+' ]]; then
            LBUFFER=$LBUFFER:fs%\.\.\.%../..%
        fi
    }
    
    function expand-dots-then-expand-or-complete() {
        zle expand-dots
        zle expand-or-complete
    }
    
    function expand-dots-then-accept-line() {
        zle expand-dots
        zle accept-line
    }
    
    zle -N expand-dots
    zle -N expand-dots-then-expand-or-complete
    zle -N expand-dots-then-accept-line
    bindkey '^I' expand-dots-then-expand-or-complete
    bindkey '^M' expand-dots-then-accept-line
    

    (for zsh)

  • source
  • parent