mirror of
https://github.com/nix-community/home-manager
synced 2024-11-06 03:09:45 +01:00
63 lines
2.1 KiB
Nix
63 lines
2.1 KiB
Nix
|
{ config, ... }: {
|
||
|
config = {
|
||
|
programs.fish = {
|
||
|
enable = true;
|
||
|
|
||
|
shellAbbrs = {
|
||
|
l = "less";
|
||
|
gco = "git checkout";
|
||
|
"-C" = {
|
||
|
position = "anywhere";
|
||
|
expansion = "--color";
|
||
|
};
|
||
|
L = {
|
||
|
position = "anywhere";
|
||
|
setCursor = true;
|
||
|
expansion = "% | less";
|
||
|
};
|
||
|
"!!" = {
|
||
|
position = "anywhere";
|
||
|
function = "last_history_item";
|
||
|
};
|
||
|
vim_edit_texts = {
|
||
|
position = "command";
|
||
|
regex = ".+\\.txt";
|
||
|
function = "vim_edit";
|
||
|
};
|
||
|
"4DIRS" = {
|
||
|
setCursor = "!";
|
||
|
expansion =
|
||
|
"$(string join \\n -- 'for dir in */' 'cd $dir' '!' 'cd ..' 'end')";
|
||
|
};
|
||
|
dotdot = {
|
||
|
regex = "^\\.\\.+$";
|
||
|
function = "multicd";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
nmt = {
|
||
|
description =
|
||
|
"if fish.shellAbbrs is set, check fish.config contains valid abbreviations";
|
||
|
script = ''
|
||
|
assertFileContains home-files/.config/fish/config.fish \
|
||
|
'abbr --add -- l less'
|
||
|
assertFileContains home-files/.config/fish/config.fish \
|
||
|
'abbr --add -- gco "git checkout"'
|
||
|
assertFileContains home-files/.config/fish/config.fish \
|
||
|
'abbr --add --position anywhere -- -C --color'
|
||
|
assertFileContains home-files/.config/fish/config.fish \
|
||
|
'abbr --add --position anywhere --set-cursor -- L "% | less"'
|
||
|
assertFileContains home-files/.config/fish/config.fish \
|
||
|
'abbr --add --function last_history_item --position anywhere -- !!'
|
||
|
assertFileContains home-files/.config/fish/config.fish \
|
||
|
"abbr --add --function vim_edit --position command --regex '.+\.txt' -- vim_edit_texts"
|
||
|
assertFileContains home-files/.config/fish/config.fish \
|
||
|
'abbr --add '"'"'--set-cursor=!'"'"' -- 4DIRS "$(string join \n -- '"'"'for dir in */'"'"' '"'"'cd $dir'"'"' '"'"'!'"'"' '"'"'cd ..'"'"' '"'"'end'"'"')'
|
||
|
assertFileContains home-files/.config/fish/config.fish \
|
||
|
"abbr --add --function multicd --regex '^\.\.+$' -- dotdot"
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|