/.config/fish/functions/ 以下に "コマンド名.fish" というファイルを作って function end 部分をコピー&ペーストして保存する。 使用上の注意 すべて自己責任でご使用下さい。できる限りfish 文法を理解の上、ご使用ください。
カレントディレクトリ名から / を取り除いて、環境変数 $pwdname に格納する
使用法:pwdname
応用:pwdname; ifort hoge.f90 -o $pwdname.out
pwdname.fish:
function pwdname -d "echo pwd without / and something, and setenv it $pwdname" set -e pwdname setenv pwdname (pwd | ssed 's/\///g' | ssed 's/~//') echo $pwdname end
ファイル名の変更を対話的に行う。
使用法:mved foo.txt
mved.fish:
function mved -d"edit file name " set -g name $argv vared name mv $argv $name echo "mv $argv $name" set -e name end
単一のファイルまたはディレクトリを複数のファイルまたはディレクトリにコピーする。
また、cp と同じオプションが使える。
使用法:mcp foo.txt dir1/ dir2/ ← foo.txt が dir1/ dir2/ 以下にそれぞれコピーされる。
mcp -r dir-foo dir1/ dir2/ ← ディレクトリ dir-foo が dir1/ dir2/ 以下にそれぞれコピーされる。
mcp.fish:
function mcp -d "multi copy. copy one file to multi-directories or files" for i in $argv if expr "$i" : "\(-.*\)" set option $option $i else set var $var $i end end for i in $var if test $i != $var[1] echo "cp $option $var[1] $i" command cp $option $var[1] $i end end end
カスタマイズされた cd。指定したディレクトリに移動した後、自動的に ls する。また環境変数 $dirs に移動後のディレクトリ内にあるディレクトリ名を配列として格納する。
通常の cd と同じオプションが使える。元々の cd.fish を改造しただけ。
cd.fish:
# # The following functions add support for a directory history # function cd --description "Change directory" # Skip history in subshells if status --is-command-substitution builtin cd $argv return $status end # Avoid set completions set -l previous $PWD if test $argv[1] = - ^/dev/null if test $__fish_cd_direction = next ^/dev/null nextd else prevd end return $status end builtin cd $argv[1] set -l cd_status $status if test $cd_status = 0 -a $PWD != $previous set -g dirprev $dirprev $previous set -e dirnext set -g __fish_cd_direction prev end ls set -e dirs for i in (ls) if test -d $i setenv dirs $dirs $i end end return $cd_status end