lesskey lesskey
chmod 0600 ~/.less
+# Find the required options to get colored ls output. GNU ls is preferred. See
+# shell/aliases.in for details. Doing this here instead of in shell/aliases
+# speeds up shell starts.
+#
+# Check if colors are available.
+ls --color > /dev/null 2>&1
+if test $? -eq 0; then
+ ls_color=gnu
+else
+ ls -G > /dev/null 2>&1
+ if test $? -eq 0; then
+ ls_color=cli
+ else
+ ls_color=
+ fi
+fi
+# Absolute path to `ls`.
+ls_path=`which ls`
+# GNU ls with colors.
+if test "x$ls_color" = xgnu; then
+ ls_env=
+ ls_color='--color'
+# Normal (BSD) ls with colors.
+elif test "x$ls_color" = xcli; then
+ ls_env='CLICOLOR_FORCE=1'
+ ls_color='-G'
+# Simple ls with no colors.
+else
+ ls_env=
+ ls_color=
+fi
+generate perl shell/aliases \
+ -e 'while (<STDIN>) {
+ s/\bLS_ENV\b/$ARGV[0]/;
+ s/\bLS_PATH\b/$ARGV[1]/;
+ s/\bLS_COLOR\b/$ARGV[2]/;
+ print;
+ }' \
+ "$ls_env" "$ls_path" "$ls_color"
+
generate cat screenrc .in
# As screen-256color is not widely supported use it only on machines where the
# matching terminfo entry is available. This also requires a terminal emulator
alias v=vim
+# Make sure there is no alias named ls as it causes problems with the
+# following ls function on (at least) bash 4.0.35.
+unalias ls 2> /dev/null
# Improved ls which displays the files in columns (-C), visualizes
# directories, links and other special files (-F) and pages everything through
# less.
# If available use GNU ls with colorized output. If it isn't available try
# normal ls which needs CLICOLOR_FORCE so it displays colors when used with a
# pager. If none work no colors are used.
-
-# Check if colors are available.
-ls --color > /dev/null 2>&1
-if [ $? -eq 0 ]; then
- ls_color=gnu
-else
- ls -G > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- ls_color=cli
- else
- ls_color=
- fi
-fi
-
-# Main ls function, separated to prevent code duplication.
-ls_path=`which ls`
-my_ls() {
- "$ls_path" -C -F "$@" 2>&1 | less
+#
+# See `setup.sh` for details. LS_ENV, LS_PATH, LS_COLOR are replaced with the
+# correct values when this file is generated.
+ls() {
+ LS_ENV LS_PATH LS_COLOR -C -F "$@" 2>&1 | less
}
-# Make sure there is no alias named ls as it causes problems with the
-# following ls function on (at least) bash 4.0.35.
-unalias ls 2> /dev/null
-# GNU ls with colors.
-if [ x$ls_color = xgnu ]; then
- ls() {
- my_ls --color "$@"
- }
-# Normal ls with colors.
-elif [ x$ls_color = xcli ]; then
- ls() {
- CLICOLOR_FORCE=1 my_ls -G "$@"
- }
-# Simple ls with no colors.
-else
- ls() {
- my_ls "$@"
- }
-fi
-unset ls_color
+
# Helper function to list all files.
la() {
ls -a "$@"