Commit graph

11 commits

Author SHA1 Message Date
Marty Oehme 285e74f1a7
zsh: Change key to edit in vim to ctrl-e
Previously the key was space (when in vi command mode), but that can too
easily be accidentally hit.

Using ctrl-e (when in vi command mode) makes mnemonic sense ('edit'),
and is hard to hit accidentally. It also mirrors the c-x c-e mapping
that bash (and zsh?) use when in emacs mode rather than vim.
2020-10-22 09:40:35 +02:00
Marty Oehme 454073b408
zsh: Add bash-like alt-dot hotkey
Allows pressing <alt-.> when in insertion mode in zsh to add the first
(then second, third, ...) argument from the last line to the end of the
current line.

Especially useful for things like:

```
mkdir -p my/folder/deeply nested
cd <alt-.>
```

to instantly move to the folder!
2020-10-21 17:15:48 +02:00
Marty Oehme 5dde9db2e4
zsh: Update fzf-tab
Make use of colorful action groups and query input option.

By default, will group the different completion actions (if they have
been set up for the respective zsh completion) as different color sets.

When entering an input and nothing fits (or something else than
intended), it is now possible to simply hit alt+enter instead of just
enter to add whatever you typed into the zle instead of whatever fzf
provided you with (or nothing at all, if it didn't).
2020-10-08 10:28:56 +02:00
Marty Oehme fc121e7fd0
[zsh] Expand fzf-tab functionality
Will now contain additional functionality for ps, kill, and cd (preview
etc). Will also color things which have LS_COLORS set (done
automatically through lscolors-git file).
2020-06-20 00:17:45 +02:00
Marty Oehme 6ac0b683a3
[home] Remove module
Removed home module, since it harbors three necessary files for other
modules: the basic configuration files for bash, and the environment
setup for zsh to work with xdg specifications.

While a descriptive module, the splitting enables further modularization
and is more coherent towards their specific uses (bash and zsh setup).
2020-06-05 22:18:13 +02:00
Marty Oehme 3e2d17aa5f
[zsh] Enable command line editing in vim
Needs vim-mode enabled for zsh (which it is in this zshrc). When in
normal mode press <space> to move the current command into vim and edit
it.
2020-05-05 22:27:17 +02:00
Marty Oehme 3dac8e5034
Source fzf-tab plugin, installed from custom repo 2020-02-16 14:23:05 +01:00
Marty Oehme a29ce0aabf
Improve zsh vi-mode handling
Moved mode indicator to more immediately visible prompt location.
Allowed deletions and adding spaces regardless of mode.
Allow moving backwards through history and searching through terminal
input history.
2020-02-10 21:07:00 +01:00
Marty Oehme 40b6d2220c
Remove zsh plugin manager
Plugins are managed directly through pacman packages now. Since I am
only using six zsh plugins and they are staying relatively constant and
not changing much, pacman seems a much more sane way to manage them
without cluttering up my zsh initialization routine. All zgen management
can go and just needs 6 `source` lines in order to load the plugin
entrypoints.
2020-02-08 16:28:36 +01:00
Marty Oehme fbc1c44652 Add zsh completion path, completions plugin
Added `$XDG_CONFIG_HOME/zsh/completions` to fpath for zsh to source
completions from. Any stow modules creating scripts and functions which
should be auto-completable can add their own completion scripts to this
directory for zsh to automatically pick them up.

Add zsh-users/zsh-completions plugin to provide completions for a wide
array of applications (e.g. glances, nvm).
2020-02-02 23:32:37 +01:00
Marty Oehme 6380affb6f Add basic XDG compliant sh architecture
The only file left in $HOME is .zshenv, which sets up zsh to source everything from XDG_CONFIG_HOME/zsh.
Shell files are split into sh and zsh directories, for global assignments (which should be posix compliant, work on any posix shell) like environemnt variables, xdg vars, and global aliases. zsh contains zsh specific customization (prompt customization, plugin loading, zsh completions).

Zsh initialization will pull from sh directory first, loading the respective mirror to its startup file (`.zprofile` loads `sh/profile` and `profile.d/*`, `.zshenv` loads `sh/env` and `sh/env.d/*` and `zsh/env.d/*`, `.zshrc` loads `sh/alias`, `sh/alias.d/*` and `zsh/alias.d/*`)

Once all is done, it will have loaded both global variables, aliases and settings, and zsh-only specifications. Other stow modules, if they want to add shell functionality, can include their aliases and functions in one of the above directories to automatically be picked up by zsh.
2020-02-02 15:08:40 +00:00