Связанный ответ дал мне хорошее начало, но был немного упрощен - он сработал, если у вас был глобус, соответствующий 3 файлам, но не если вы выполняли rm -rf foo
.
У меня это работает в ~ .bash_profile
:
rmf() {
if [ "$1" == "-rf" ]; then
read -r -p "Sure you want to delete '${2}' [y/N]? " response
if [[ $response =~ ^(yes|y| ) ]]; then
command rm "$@"
fi
else
command rm "$@"
fi
}
alias rm=rmf
Ответ Дилана Фрезе заставил меня немного исследовать, и я считаю, что это решение немного лучше, чем то, которое я ранее принял; Во всяком случае, для моих целей.
git config --global --replace-all core.pager 'less -NR'
Это позволяет мне git diff
и даже не думать об этом. Конечно, бывают случаи, когда вы не хотите, чтобы это было постоянным глобальным изменением, так что info. здесь все еще в силе.
Вместо конвейера git log
вы можете использовать минус
встроена в нумерацию строк. Ввод -N в меньше
приведет к отображению номеров строк.
используйте less -r
, чтобы отобразить цвет, но вам нужно будет заставить git
использовать цвета, потому что, когда вы передаете git diff
, он будет отличаться от - nocolor
git diff --color HEAD~3 HEAD | nl | less -R
Если вы хотите получать номера строк в каждой строке, попробуйте найти предлагаемые здесь решения, https://stackoverflow.com/questions/24455377/git-diff-with-line -numbers-git-log-with-line-numbers
Попробуйте showlinenum и перенаправьте его на меньше -R
, например
git diff --color=always | showlinenum.awk | less -R
Что касается showlinenum, просто клонируйте репозиторий github и скопируйте showlinenum.awk
в PATH
. Скрипт выдаст вам точный номер строки.
Также вы можете использовать git difftool
. Если вас устраивает less
, тогда vimdiff
( git difftool -t vimdiff
) будет хорошей идеей:
Прочтите man git- difftool
для получения дополнительной информации.
Используйте команду:git diff --color=always | less -RN
И можно было определить команду быстрого доступа в~/.bashrc
:
alias gdc='git diff --color=always | less -RN'