From d64e4fcab7e62b383dc373a25b2cd7d6da099478 Mon Sep 17 00:00:00 2001 From: Leonid Volnitsky Date: Sat, 11 Jul 2009 14:35:25 +0300 Subject: fixed: broken with retab parse_git_status(), rename: trunkated_* --> elipses_* --- index.txt | 35 ++++++++++------------------------- 1 file changed, 10 insertions(+), 25 deletions(-) (limited to 'index.txt') diff --git a/index.txt b/index.txt index 8038dbb..8e0998b 100644 --- a/index.txt +++ b/index.txt @@ -51,7 +51,8 @@ Labels are visual cues to help figure out what terminal is running what command. It is generalization of xterm-title but differ from xterm-title that it can be displayed in other places (on Screen(1) windows titles for example). Also label can display currently executed command (when bash prompt obviously -is not displayed). +is not displayed). Because labels have less space then prompt, instead of path +only last dir in path is shown. On screenshot below labels are in red ovals. image:screenshot-labels.png["labels screenshot", width="300", link="screenshot-labels.png"] @@ -63,26 +64,6 @@ following line in `~/.screenrc`: caption always "%{= kw}%-w%{= bw}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c" --------- -////////////////// -We don't need to do any thing for something like `cd` or `ssh` (if you have -git-prompt on remote host). -For external command we need set label before it is executed. -It would be simple if `bash` set command name to some variable before execution, -but it does not do this. So we have to use wrappers. This is not very elegant -and will work only for commands with defined wrapper. -I use wrapper only for `vim` and `man` in my `~/.bashrc` - -------------------------- -vi() { set_shell_title "vi $@"; /usr/bin/vim -p "$@"; }; export -f vi -man() { set_shell_title "man $@"; /usr/bin/man "$@"; }; export -f man ----------------------------- - -Note that vim sets xterm title , but we still use wrapper so that -`screen` will have labels too. -Function `set_shell_title` defined in `git-prompt.sh`. -/////////////////// - - == Install Download link:git-prompt.sh[] or get it with GIT: @@ -127,11 +108,11 @@ to any of above locations and customize as needed. * cd-ing into something like linux kernel git working directory for the 1st time (with cold cache) might take up to 10 seconds (that is how long `git status` executes). -* Because you will be always reminded about not checked-in files, - it will force you to keep working directory clean, better maintain `.gitignore` and commit more often. +* Because you will be always reminded about dirty repo (not checked-in files), + you will better maintain `.gitignore` and commit more often. * This prompt is most useful if your screen have enough width. If this is not the case, you might want to disable file list display (`max_file_list_length=0`). -* When prompt is longer then screen-width it wraps to second line. +* When prompt is longer then screen-width it wraps to second line. This is always undesirable. Because of bug in `gnome-terminal` (or `readline` ?) some color escape codes can be visible on second line. I've reported gnome-terminal bug. Again, you can disable file list display or limit length (`max_file_list_length`). * By default some terminals display ascii color with maximum color saturation @@ -160,10 +141,14 @@ Most of not optional dependencies are probably already installed on your compute == Todo * VCS exclude dir list +* option for hash/pound marker when `$USER=="root"` * new mail (howto at: httpx://kikhome.net/?p=11[] ) -* ctrl-Z subshell indicator +* Subshells number indicator. Don't know how to do this. There is bash + `"\j"`, but let say I want `">>"` after path instead of `">"` when I have 2 jobs (including current) + running. Running `+++`jobs | ... `+++` is extra bash fork, hate to do this. * VIM module needs to be moved out of GIT module * How detect current merge? (current method through .git/MERGE_HEAD not always works) +* git lock-ed state include::../volnitsky.com/project/howto-submit-patch.txt[] -- cgit v1.2.3