57 lines
1.1 KiB
Fish
57 lines
1.1 KiB
Fish
set -gx fish_greeting
|
|
|
|
function nix
|
|
if test "$argv[1]" = "develop"; and test (count $argv) -eq 1
|
|
command nix develop -c fish $argv[2..-1]
|
|
else if test "$argv[1]" = "shell"
|
|
env IN_NIX_SHELL=shell nix $argv
|
|
else
|
|
command nix $argv
|
|
end
|
|
end
|
|
|
|
function a
|
|
for arg in $argv
|
|
if string match -q '*/' $arg
|
|
mkdir -p $arg
|
|
else
|
|
mkdir -p (dirname $arg)
|
|
touch $arg
|
|
end
|
|
end
|
|
end
|
|
|
|
function g
|
|
if git rev-parse --git-dir >/dev/null 2>&1
|
|
gitui
|
|
else
|
|
echo "Not inside a Git repository."
|
|
end
|
|
end
|
|
|
|
function y
|
|
set tmp (mktemp -t "yazi-cwd.XXXXXX")
|
|
yazi $argv --cwd-file="$tmp"
|
|
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
|
builtin cd -- "$cwd"
|
|
end
|
|
end
|
|
|
|
function editor
|
|
set pos (cat ~/dotfiles/.pos)
|
|
y $pos
|
|
if test -e ./p.vim
|
|
set cmd nvim -S ./p.vim
|
|
else
|
|
set cmd nvim
|
|
end
|
|
if test -e ./flake.nix
|
|
and not contains -- "$IN_NIX_SHELL" pure impure
|
|
and command nix develop --command true 2>/dev/null
|
|
command nix develop --command $cmd
|
|
else
|
|
command $cmd
|
|
end
|
|
echo $PWD > ~/dotfiles/.pos
|
|
end
|