Giter Site home page Giter Site logo

prezto's Introduction

Prezto — Instantly Awesome Zsh

Prezto is the configuration framework for Zsh; it enriches the command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes.

Installation

Manual

Prezto will work with any recent release of Zsh, but the minimum required version is 4.3.11.

  1. Launch Zsh:

    zsh
  2. Clone the repository:

    git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
    Optional: Installing in $XDG_CONFIG_HOME

    Optionally, if you already have $XDG_CONFIG_HOME configured (usually as $HOME/.config by default) and intend to install Prezto under $XDG_CONFIG_HOME/zsh instead, you can clone the repository there and configure $ZDOTDIR separately if not already configured.

    • Clone the repository:

      git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto"
    • Configure $XDG_CONFIG_HOME and $ZDOTDIR in $HOME/.zshenv:

      export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}"
      [[ -d $XDG_CONFIG_HOME/zsh ]] && export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
      source "$ZDOTDIR/.zshenv"
  3. Create a new Zsh configuration by copying/linking the Zsh configuration files provided:

    setopt EXTENDED_GLOB
    for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
      ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
    done

    Note: If you already have any of the given configuration files, ln in the above operation will cause an error. In simple cases, you can load Prezto by adding the line source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" to the bottom of your ${ZDOTDIR:-$HOME}/.zshrc and keep the rest of your Zsh configuration intact. For more complicated setups, we recommend that you back up your original configs and replace them with the provided Prezto runcoms.

  4. Set Zsh as your default shell:

    chsh -s /bin/zsh
  5. Open a new Zsh terminal window or tab.

Troubleshooting

If you are not able to find certain commands after switching to Prezto, modify the PATH variable in ${ZDOTDIR:-$HOME}/.zprofile then open a new Zsh terminal window or tab.

Updating

Run zprezto-update to automatically check if there is an update to Prezto. If there are no file conflicts, Prezto and its submodules will be automatically updated. If there are conflicts you will be instructed to go into the $ZPREZTODIR directory and resolve them yourself.

To pull the latest changes and update submodules manually:

cd $ZPREZTODIR
git pull
git submodule sync --recursive
git submodule update --init --recursive

Usage

Prezto has many features disabled by default. Read the source code and the accompanying README files to learn about what is available.

Modules

  1. Browse modules to see what is available.
  2. Load the modules you need in ${ZDOTDIR:-$HOME}/.zpreztorc and then open a new Zsh terminal window or tab.

Themes

  1. For a list of themes, type prompt -l.

  2. To preview a theme, type prompt -p name.

  3. Load the theme you like in ${ZDOTDIR:-$HOME}/.zpreztorc and then open a new Zsh terminal window or tab.

    sorin theme Note that the git module may be required for special symbols to appear, such as those on the right of the above image. Add 'git' to the pmodule list (under zstyle ':prezto:load' pmodule \ in your ${ZDOTDIR:-$HOME}/.zpreztorc) to enable this module.

External Modules

  1. By default modules will be loaded from /modules and /contrib.

  2. Additional module directories can be added to the :prezto:load:pmodule-dirs setting in ${ZDOTDIR:-$HOME}/.zpreztorc.

    Note that module names need to be unique or they will cause an error when loading.

    zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib

Customization

The project is managed via Git. We highly recommend that you fork this project so that you can commit your changes and push them to your fork on GitHub to preserve them. If you do not know how to use Git, follow this tutorial and bookmark this reference.

Resources

The Zsh Reference Card and the zsh-lovers man page are indispensable.

License

This project is licensed under the MIT License.

prezto's People

Contributors

akarzim avatar belak avatar betawaffle avatar clauswitt avatar colinhebert avatar curiousstranger avatar diraol avatar geoffgarside avatar hakanensari avatar hotpxl avatar imajes avatar indrajitr avatar jeffwidman avatar jnrowe avatar johnpneumann avatar kremso avatar mattmc3 avatar mrtazz avatar oknowton avatar robbyrussell avatar romkatv avatar samcv avatar sorin-ionescu avatar steeef avatar sunaku avatar svnlto avatar swsnr avatar tjkirch avatar to1ne avatar trcjr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

prezto's Issues

plugin/git/functions/git-branch interferes with git-branch

On some systems it's possible to use the git-branch command instead of git branch (this applies to every git command).

In the git plugin, there is a function named git-branch which returns the current branch. This function can interfere with the expected git-branch executable.

Currently the git-plugin doesn't use this function. Unless there is a specific need for this function, it could be easily removed.
Even if this function can be useful, it would be easier to maintain it as an alias to git symbolic-ref HEAD 2>/dev/null named git-current-branch.

I think history-substring-search is broken

With history-substring-search enabled, url-quote-magic doesn't work, as demonstrated by pasting http://example.com/foo?bar=baz into it.

which url-quote-magic returns

url-quote-magic () {
        # undefined
        builtin autoload -XUz
}

I'm using zsh 4.3.17 (x86_64-unknown-linux-gnu) on Debian testing.

Autocomplete sometimes hangs

When I type paths, for example, /Users/paul/Dev and press <tab>, autocomplete adds ... (/Users/paul/Dev...) and hangs sometimes.

Supporting upstream oh-my-zsh plugin entry point

Is there a reason to not support upstream entry point for plugins?

As in "${0:h}/plugins/$plugin/$plugin.plugin.zsh", or maybe even "${0:h}/plugins/$plugin/$plugin.zsh".

It would make life easier in importing upstream or external plugins in your own fork, for instance I had to create a symlink to add zsh-syntax-highlighting and hence making the tree dirty, which isn't really fun, and I don't want to fork that just to create a symlink for the submodule.

By the way, great work, really.

Completion sometimes causes terminal to crash

This problem is specific to my Ubuntu 10.04.3 virtual machine (or it is so far anyways).

I've run into an issue where using tab to complete the path to an object I'm performing an operation on with git (such as git diff/git add/git rm), my whole terminal dies when it starts completing the last part of the path. So, for example:

~> cd Repositories/test_project/sub_dir                                 <- (works fine)
sub_dir> git diff example.txt                                                  <- (works fine)
~> git diff Repositories/test_project/sub_dir/example.txt          <- (crashes terminal when attempting completion of example.txt)

I'm not entirely sure what the cause would be, or I'd attempt to fix it before posting here, but until I can get some more time I'm just going to report it for now. Just for the record, I don't recall this happening on my macbook running 10.7, so this seems to be specific to my Ubuntu instance.

Move parts or all of the core into plugins

I'd like to suggest that the "utility" functions be moved into a plugin, so that it's not mandatory to have those functions in the namespace. I tend to either write my own set of utility functions or write proper scripts as needed. The built-in utilities are interesting to read for reference, but I don't think I'd ever actually remember to use them.

Do not use parentheses in function declarations

The Zsh man page says to declare functions with either the function keyword or the special syntax foo() {}, but not combine them.

I suspect that the special syntax was added to appease C programmers. However, you can't declare multiple functions with the same body with foo() bar() {} nor foo bar {}.

function foo {} is the best way to declare functions because wether you declare one or many with the same body (function foo bar {}), the syntax is consistent.

The following should do the trick.

psub '((function)?\s+)([\w-]+)\s*\(\s*\)\s*{' 'function $3 {' **/*~completions/*(.N)
trash **/*.(orig|rej)(N)

Use the same casing as bindkey

They key bindings are defined in mostly lowercase, while bindkey -L lists them in mostly uppercase. This is confusing when trying to debug.

A hook to prepend to PATH in environment.zsh

I have a need to prepend to the /usr/local/share/python to the $PATH as required to use the Hombrew'd Python (see this wiki entry). This will be needed by anyone using a Homebrew'd Python.

I figure there are two different solutions:
A) a hook could be added e.g. zstyle ':omz:path' prepend '/usr/local/share/python'
B) roll this into the Python module, but thought it might be too environment specific

As you can tell I've just started using this fork, so excuse the numerous issues and pull requests.

Document module authoring guidelines

Adding a few general guidelines should help to increase quality for future pull requests without taxing the core developers. I would like to add the following guideline to the wiki page on contributing:

Authors should check that their omodules still function properly when loaded alone, eg: zstyle ':omz:module' enable 'my_module'

Inexperience developers may assume that modules like the core meta-module would be present and unmodified in all systems, leading to modules that depend on one another. The above wording removes any ambiguity and is a useful sanity test.

git commands empty output

Hi,

Since yesterday I've noticed that some git commands like git diff, git stash list was not returning anything.
Searched for a while to identify that the 34a5743 commit related to #35 was causing this. (-X removal)

Any ideas?

New key binding: prepend-sudo

My life became significantly easier the day I added this to my zsh setup:

# Insert "sudo " at the beginning of the line
function prepend-sudo {
  if [[ $BUFFER != "sudo "* ]]; then
    BUFFER="sudo $BUFFER"; CURSOR+=5
  fi
}
zle -N prepend-sudo
[[ -n "$keyinfo[Control]" ]] && \
  bindkey "$keyinfo[Control]s" prepend-sudo

C-s is currently already assigned to history-incremental-pattern-search-forward, but I'm going to clobber it in my setup.

I'm submitting this in case you can think of a way to fit this in neatly without pushing something else out that someone might find useful.

tmux, launch_msg(): Socket is not connected

When I start automatically tmux I get this message.

After a small hunt, it seems that it comes from tmux new-session -d -s "$tmux_session" "$SHELL -l" in the tmux plugin, in particular the "$SHELL -l" part (it's not just the -l option, it's the entire argument).

I'm not sure that's important to force the shell like this, I removed it and it still works.

vi-backward-delete-char is just weird

The behaviour of vi-backward-delete-char (bound to backspace in Vi mode) is not to delete past the point where insert mode was last entered. This is really weird. Example:

$ echo helo

Press <ESC>, then hh to move to the "l", and then press l to add another. If you use backspace now, you can remove the "l" you just entered, but you can't go beyond that.

Vim doesn't do this, although it does seem to do it in vi-compatibility mode, so I guess the original Vi did in fact do this craziness. Regardless, I can't imagine that anyone would really want this behaviour.

In my setup, I've rebound ^? to backward-delete-char, which behaves more normally.

Unfortunately, $keyinfo[Backspace] returns C-h in Konsole (but ^? in the Linux framebuffer), so using keyinfo isn't currently reliable for setting this binding.

scrolling in "less" and "man"

As I port my old configuration to OMZ-Sorin, I'm having some trouble with less and more: my mouse scrollwheel doesn't work in either. It works OK in Vim, though. I'm guessing this is something in terminal.zsh, but I don't really know what to look for.

Slow loading

It seems that it's slow on compinit / compaudit. Also this (slow loading) occurs only sometimes.

Have you or your distribution added massive completions?

No, i'm using sorin-omz and hadn't touched completions.


num  calls                time                       self            name
-----------------------------------------------------------------------------------
 1)    2        3366.81  1683.40   94.68%   3366.81  1683.40   94.68%  compaudit
 2)    1        3480.64  3480.64   97.88%    113.84   113.84    3.20%  compinit
-----------------------------------------------------------------------------------

 2)    1        3480.64  3480.64   97.88%    113.84   113.84    3.20%  compinit
       1/2      3366.81  3366.81   94.68%      0.83     0.83             compaudit [1]

-----------------------------------------------------------------------------------

       1/2      3366.81  3366.81   94.68%      0.83     0.83             compinit [2]
       1/2      3365.98  3365.98   94.66%   3365.98  3365.98             compaudit [1]
 1)    2        3366.81  1683.40   94.68%   3366.81  1683.40   94.68%  compaudit
       1/2      3365.98  3365.98   94.66%   3365.98  3365.98             compaudit [1]

Option to list directory contents after "cd"

I like to see a directory's contents when I "cd":

function cd () {
  builtin cd "$*" && ls  # List directory contents after cd
}
alias cd='nocorrect cd'

Is this something that might be useful as an option in zshrc, so others could make use of it? I'm sure I can't be the only one that would find this useful.

Remove the clean git-info style

Remove

zstyle ':omz:plugin:git:prompt' clean 'clean'
zstyle ':omz:plugin:git:prompt' dirty 'dirty:%D'

in favour of

zstyle ':omz:plugin:git:prompt' dirty '%(D.clean.dirty:%D)'

This will free up %C to be used for a higher purpose.

Check for CentOS ls

Hi Everyone,

Running ls (GNU coreutils) 5.97 on centos 5.4

ls does not have the option '--group directories-first'

Whenever I type 'ls' 'ls -al' etc, I get:

ls: unrecognized option --group-directories-first' Tryls --help' for more information.

A version check on ls is probably called for.

Thanks!

Control, Escape, and Meta in $keyinfo do not need to be checked

Having to check if a $keyinfo entry is not empty makes keyboard.zsh very hard to read. While $keyinfo's $terminfo entries must be checked Control, Escape, and Meta do not, and they are only checked for consistency. Consider removing these checks for readability.

Vi command mode indicator should work universally

In the emacs key map, the user can enter the vi command mode key map with C-X C-V. Why? I have no idea.

There are two options. Option one is to disable the key map. When the prompt no longer works as it should, it violates the principle of least surprise. Emacs users may not recognise that they have entered in vi command mode key map and not know to press i to return to emacs key map.

The main key map also has a binding to enter vi command mode. However, we are only concerned with emacs and vi.

Option two is to move the vi command mode indicator functions outside of the *vi if statement` and have them working universally.

Thoughts?

Time to open a wiki?

With OMZ 2.0 a ton of new things have been added, it would be awesome to be able to document some parts of it with a wiki.

For example, I'll be glad to add some information on the git-plugin and how it works/should be used when you want to create your theme.

This way you don't have to read the source code to understand what to need to do.

And it could help to solve some other issues such as #25

Remove the tmux plugin

Tmux will cause kernel panics on Mac OS X in both Terminal and iTerm.

Interval Since Last Panic Report: 739334 sec
Panics Since Last Report: 1
Anonymous UUID: F2556F53-B2DE-4804-AC23-2ACD87FFBEAE

Mon Mar 26 09:13:58 2012
panic(cpu 0 caller 0x33c798): "Negative open count?"@/SourceCache/xnu/xnu-1699.24.23/bsd/miscfs/specfs/spec_vnops.c:1368
Backtrace (CPU 0), Frame : Return Address (4 potential args on stack)
0x1533ce8 : 0x22032e (0x6ad91c 0x1533d08 0x229f00 0x0) 
0x1533d18 : 0x33c798 (0x6c9804 0x2000 0x1533d48 0x33f00d) 
0x1533d48 : 0x340381 (0x1533da8 0x1533d70 0x1533d70 0x1533d70) 
0x1533d88 : 0x32b6dc (0x1533da8 0x0 0x1533da8 0x5455190) 
0x1533dc8 : 0x30b07c (0x5455158 0x30 0x638d74c 0x5455158) 
0x1533e18 : 0x30adaf (0x5455190 0x5455158 0x14 0x6bf0ab) 
0x1533e58 : 0x30c2e4 (0x0 0x1 0x1533e98 0x5455158) 
0x1533e78 : 0x31dfc2 (0x5455158 0x1 0x1533f00 0x0) 
0x1533e98 : 0x327379 (0x1533ea8 0x689a404 0x821580 0x5455158) 
0x1533ec8 : 0x563388 (0x5455158 0x1 0x1533f00 0x225e5a) 
0x1533f18 : 0x23c038 (0x68718c8 0x1 0x68718c8 0x7c64000) 
0x1533f38 : 0x23c52c (0x7c6429c 0x0 0x1 0x7c64000) 
0x1533f58 : 0x23c5d1 (0x7c642b8 0x7c64000 0x7c6429c 0x7c64000) 
0x1533f78 : 0x21d970 (0x1 0x5842994 0x638d690 0x0) 
0x1533fa8 : 0x2cd0f2 (0xffffffff 0x1 0x82ea98 0x1533fe0) 
0x1533fc8 : 0x2e3e04 (0x0 0x0 0x10 0x5842990) 

BSD process name corresponding to current thread: tmux

Mac OS version:
11D50b

Kernel Panic

More information:

  1. tmux causing kernel panics on Mac OS X 10.7
  2. System crash when trying to exit/detach tmux session started by iTerm2

I cannot in good conscience promote the use of Tmux. Perhaps Tmux works well on Linux, but on Mac OS X, it is rubbish. I will not have something in OMZ that crashes systems, any system.

The Prompt is missing Git information

Hi,

First of all, thanks sorin for the huge work you are doing on omz, appreciated :)

Got one repo that doesn't show information on prompt.
(of course the most complex one I work on 10h/day)
Strangely, it happens with sorin theme, not steeef one.
Looked a bit into zsh vcs_info man and themes code, without finding a clue.

Any idea of what could cause this or how i could diagnose/fix this?

Issue with ssh-agent

It's not working here.

It gives the following error: Could not open a connection to your authentication agent.

I'm using upstream ssh-agent right now, and it works.

"prompt -l" lists more themes than OMZ/themes/ contains

As the title says, doing prompt -l lists way more themes than are available inside .oh-my-zsh/themes/.

When I run this command I get the following output:

linduxed minimal nicoulaj sorin steeef adam1 adam2 bart bigfade clint elite2 elite fade fire off oliver pws redhat suse walters zefram

The theme in the front (linduxed) is the only one that apart from the original ones (minimal, nicoulaj, sorin, steeef) that actually has a directory in themes/.

Bind both lower and upper case keys where necessary

While for control, it is not necessary escape and meta bindings should have both lower and upper case keys bound.

Change every instance of:

[[ -n "$keyinfo[Escape]" ]] && \
  bindkey -M emacs "$keyinfo[Escape]b" emacs-backward-word

To:

[[ -n "$keyinfo[Escape]" ]] && \
  for key in "$keyinfo[Escape]"{B,b}; \
    bindkey -M emacs "$key" emacs-backward-word

Issues with DEL and BackSpace (^? or ^H)

Before everybody forget about this issue (mostly discussed on the commit related to it):

sorin-ionescu/oh-my-zsh@9c611ce

Here is the original issue fixed by the said commit (#45)

Some documentation on the subject:


For Mac Users:

If you're on Mac OS, with iTerm2 or Terminal.app, by default your terminal type will be xterm-256color.
In Terminfo, the setting for kbs is ^H*, this mean that with this terminal, BackSpace is expected to send ^H.

For some reason, iTerm2 and Terminal.app don't send the correct code when you type backspace, ie ^? instead of ^H.
You can check that by typing ^V followed by backspace.

To fix this, you have to ask to iTerm2 or Terminal.app to send ^H when you hit backspace.

Beware, iTerm2 users, if you do a ^Backspace, you will send ^? (even if you've set "Delete key sends ^H)!

Notes:

  • infocmp xterm-256color | grep kbs

Themes, Dependencies, and $FPATH

The idea behind placing a theme and dependencies self-contained under its own directory in /themes/theme_name came from seeing broken themes in OMZ v1.0 due to missing scripts. Usually, the missing dependency was a battery charge script written in Python, probably copied from a blog post, and modified for different outputs. For an example, see #8.

It seemed a good idea at the time; however, promptinit requires that themes be placed in the functions path $fpath, and placing non Zsh scripts in said path is not an optimal solution. They show up in the autoload completion, for example.

In my ongoing effort to create a fully modular OMZ, see #23, I came to the conclusion that theme setup files should be placed under a prompt module, for example, /modules/prompt/functions/prompt_sorin_setup.

Additionally, there is no need for 10 different battery scripts that get the same information but have different output formatting. We can have one script, written in Zsh, and style its output with zstyle in a hardware module. Themes that wish to show hardware information in the prompt can omodload hardware to use it.

I have written a battery function as a proof of concept that could be in such a hardware module.

omodload spectrum
zmodload zsh/mathfunc

function battery-charge {
  local bar_length
  local color
  local empty_char
  local fill_char
  local hide_at
  local high_charge_color
  local low_charge_color
  local medium_charge_color

  zstyle -s 'omz:module:hardware:battery' fill-char 'fill_char' ||
    fill_char=''
  zstyle -s 'omz:module:hardware:battery' empty-char 'empty_char' ||
    empty_char=''
  zstyle -s 'omz:module:hardware:battery' high-charge-color 'high_charge_color' ||
    high_charge_color="$FG[green]"
  zstyle -s 'omz:module:hardware:battery' medium-charge-color 'medium_charge_color' || 
    medium_charge_color="$FG[yellow]"
  zstyle -s 'omz:module:hardware:battery' low-charge-color 'low_charge_color' ||
    low_charge_color="$FG[red]"
  zstyle -s 'omz:module:hardware:battery' bar-length 'bar_length' ||
    bar_length=10
  zstyle -s 'omz:module:hardware:battery' hide-at 'hide_at' ||
    hide_at=101

  case "$OSTYPE" in
    (darwin*)
      charge=$(
        pmset -g batt |
        awk '/InternalBattery-0/ { print $2 }' |
        awk -F % '{ print $1 }'
      )
    ;; 
    (linux*)
      charge=$(
        acpi -b |
        awk '/Battery 0:/ { print $4 }' |
        awk -F % '{ print $1 }'
      )
    ;;
    (freebsd*)
      charge=$(acpiconf -i 0)
    ;;
    (*)
      print "$0: operating system not supported: $OSTYPE" >&2
    ;;
  esac

  if (( charge < hide_at )); then
    filled=$(( ceil(charge / 100.0 * bar_length) ))
    empty=$(( floor(bar_length - filled) ))
    meter="${$(printf "%${filled}s" "")// /${fill_char}}"
    meter+="${$(printf "%${empty}s" "")// /${empty_char}}"

    if (( charge >= 60.0 )); then
      color="$high_charge_color"
    elif (( charge >= 40.0 )); then
      color="$medium_charge_color"
    else
      color="$low_charge_color"
    fi

    print "${color}${meter}${FG[none]}"
  fi
}

battery-charge "$@"

Remove the HEAD Git completion

On first run, the Git plugin downloads the Git completion from Zsh HEAD and caches it. See plugins/git/completion.zsh. This overrides the Zsh installed completion, which is useful whenever the HEAD completion has fixed bugs or new features, but at any time, the HEAD completion may introduce bugs or no longer work with older Zsh versions.

Perhaps it is best to remove completion.zsh and let users have the newest Git completion whenever they upgrade Zsh.

Was push-line-or-edit considered for first-class binding citizenship?

I'm just wondering if push-line-or-edit was actively rejected when selecting default bindings, or if it was simply overlooked. This is one of the few bindings I actually use pretty regularly, although not regularly enough to care much about what key it's assigned to, so long as it's a Control-key sequence. In my new setup, I'm opting for C-l, clobbering the existing clear-screen binding, since "L" makes me think "line", and clear-screen isn't something I need frequently enough to need a binding for (and I can just type clear.)

Any thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.