mirror of
https://github.com/Cian-H/dotfiles.git
synced 2025-12-28 05:21:57 +00:00
This change allows the dotfiles to work with chezmoi (e.g: on windows) and improves grepability with neovim/telescope
49 lines
1.9 KiB
Nu
49 lines
1.9 KiB
Nu
#!/usr/bin/nu
|
|
|
|
# I actually use it as a part of my startup, so I am not really sure how to pack it, yet I wouldd like to contribute
|
|
#-------------------------------------------------------------------------------------------------------------------------------
|
|
#
|
|
# How to use?
|
|
#-------------------------------------------------
|
|
#1) Add desired paths to the cdpath variable
|
|
#2) Use in your shell: $c [directory]
|
|
#2.5) You *have to* use an argument. If you wish to simply $cd, use $cd command.
|
|
#3) If the path exists, you will cd into the first match found (the command is iterating over the list in the correct order,
|
|
# i.e. first element is being iterated overin the first place)
|
|
#3.5) But if path does not exist, you will receive a proper echo.
|
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
|
#
|
|
#Written by skelly37
|
|
#------------------------
|
|
|
|
# startup = [
|
|
# "let cdpath = [. /place/your ~/cdpath/here ]",
|
|
# "def c [dir] { let wd = (pwd); for element in $cdpath {if (pwd) == $wd {cd $element; for directory in (ls -a | select name type | each { if $it.type == Dir {echo $it.name} {} } ) {if $dir == $directory {cd $dir} {}}; if (pwd) == $element {cd $wd} {}} {}}; if (pwd) == $wd {cd $wd; echo \"No such path!\"} {}}",
|
|
# ]
|
|
#
|
|
|
|
export def --env c [dir] {
|
|
let CD_PATH = [. ($env.NU_PLUGIN_DIRS | get 0) $nu.default-config-dir ]
|
|
let wd = (pwd);
|
|
for element in $CD_PATH {
|
|
let element = ($element | path expand)
|
|
if (pwd) == $wd {
|
|
cd $element;
|
|
for directory in (ls -a | where type == dir | get name) {
|
|
if $dir == $directory {
|
|
cd $dir
|
|
break
|
|
}
|
|
};
|
|
if (pwd) == $element {
|
|
cd $wd
|
|
}
|
|
}
|
|
};
|
|
if (pwd) == $wd {
|
|
cd $wd
|
|
print "No such path!"
|
|
}
|
|
}
|
|
|