%global _empty_manifest_terminate_build 0
Name: python-babi
Version: 1.5.4
Release: 1
Summary: a text editor
License: MIT
URL: https://github.com/asottile/babi
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/00/4e/d4897dbd7552c78f97f079dfa057ae794307b9403b43d28de38c54dfa0b0/babi-1.5.4.tar.gz
BuildArch: noarch
Requires: python3-babi-grammars
Requires: python3-identify
Requires: python3-onigurumacffi
Requires: python3-importlib-metadata
Requires: python3-windows-curses
%description
a text editor, eventually...
### installation
```bash
pip install babi
```
babi works best in a virtualenv
### why is it called babi?
I used to use the text editor `nano`, frequently I typo this. on a qwerty
keyboard, when the right hand is shifted left by one, `nano` becomes `babi`.
### babi vs. nano
here is a youtube video where I discuss the motivation for creating and using
`babi` instead of `nano`:
[![youtube video about babi](https://img.youtube.com/vi/WyR1hAGmR3g/mqdefault.jpg)](https://youtu.be/WyR1hAGmR3g)
### quitting babi
currently you can quit `babi` by using ^X (or via esc +
:q).
### key combinations
these are all of the current key bindings in babi
- ^S: save
- ^O: save as
- ^X: quit
- ^P: open file
- arrow keys: movement
- ^A / home: move to beginning of line
- ^E / end: move to end of line
- ^Y / pageup: move up one page
- ^V / pagedown: move down one page
- ^-left / ^-right: jump by word
- ^-home / ^-end: jump to beginning / end of file
- M-Up / M-Down: jump to previous / next paragraph
- ^_: jump to line number
- selection: shift + ...: extend the current selection
- arrow keys
- home / end
- pageup / pagedown
- ^-left / ^-right
- ^-end / ^-home
- tab / shift-tab: indent or dedent current line (or
selection)
- ^K / ^U: cut and uncut the current line (or selection)
- M-u / M-U or M-e: undo / redo
- ^W: search
- ^\\: search and replace
- ^C: show the current position in the file
- ^-up / ^-down: scroll screen by a single line
- M-left / M-right: go to previous / next file
- ^Z: background
- ^T: run linter
- by default, runs `pre-commit run --files `
- outside of a git repo will run `flake8 ` for python files
- ^-S-Up, ^-S-Down: navigate to previous / next error
- M-t focus the linting panel
- ^C, ^X: clear and close the linting panel
- Esc, M-t: unfocus the linting panel
- arrow keys: movement inside the linting panel
- esc: open the command mode
- :q: quit
- :w: write the file
- :wq: write the file and quit
- :qall: quit every open file
- :comment: comment out the current line / selection
- :reload: reload the file contents
- :sort: sort the file (or selection)
- :tabsize X: set the tabsize
in prompts (search, search replace, command):
- ^C: cancel
- ^K: cut to end
- ^R: reverse search
### setting up syntax highlighting
syntax highlighting should work out of the box!
if you want a custom theme find a visual studio code theme, convert it to
json (if it is not already json) and put it at `~/.config/babi/theme.json`.
a helper script is provided to make this easier: `./bin/download-theme NAME URL`
### keyboard shortcuts on macos
to get the most out of babi's built in keyboard shortcuts, a few settings must
be changed on macos with Terminal.app:
- in **System Preferences**: **Keyboard** > **Shortcuts** >
**Mission Control**: disable or rebind "Move left a space" and
"Move right a space" (the defaults `⌃ →` and `⌃ ←` conflict)
- in **Terminal.app**: **Terminal** > **Preferences** > **Profiles** >
**Keyboard**:
- check **Use Option as Meta key**
- ensure the following keys are enabled:
- `⌃ →`: `\033[1;5C`
- `⌃ ←`: `\033[1;5D`
- `⇧ ↑`: `\033[1;2A`
- `⇧ ↓`: `\033[1;2B`
- `⇧ →`: `\033[1;2C`
- `⇧ ←`: `\033[1;2D`
## demos
most things work! here's a few screenshots
### file view
this opens the file, displays it, and can be edited and can save! unknown keys
are displayed as errors in the status bar. babi will scroll if the cursor
goes off screen either from resize events or from movement. babi can edit
multiple files. babi has a command mode (so you can quit it like vim
:q!). babi also supports syntax highlighting
![](https://i.fluffy.cc/5WFZBJ4mWs7wtThD9strQnGlJqw4Z9KS.png)
![](https://i.fluffy.cc/qrNhgCK34qKQ6tw4GHLSGs4984Qqnqh7.png)
![](https://i.fluffy.cc/DKlkjnZ4tgfnxH7cxjnLcB7GkBVdW35v.png)
![](https://i.fluffy.cc/VqHWHfWNW73sppZlHv0C4lw63TVczZfZ.png)
![](https://i.fluffy.cc/p8lv61TCql1MJfpBDqbNPWPf27lmGWFN.png)
![](https://i.fluffy.cc/ZH5sswB4FSbpW8FfcXL1KZWdJnjxRkbW.png)
![](https://i.fluffy.cc/Rw8nZKFC3R36mNrV01fL2gk4rfwWn7wX.png)
![](https://i.fluffy.cc/FSD92ZVN4xcMFPv1V7gc0Xzk8TCQTgdg.png)
%package -n python3-babi
Summary: a text editor
Provides: python-babi
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-babi
a text editor, eventually...
### installation
```bash
pip install babi
```
babi works best in a virtualenv
### why is it called babi?
I used to use the text editor `nano`, frequently I typo this. on a qwerty
keyboard, when the right hand is shifted left by one, `nano` becomes `babi`.
### babi vs. nano
here is a youtube video where I discuss the motivation for creating and using
`babi` instead of `nano`:
[![youtube video about babi](https://img.youtube.com/vi/WyR1hAGmR3g/mqdefault.jpg)](https://youtu.be/WyR1hAGmR3g)
### quitting babi
currently you can quit `babi` by using ^X (or via esc +
:q).
### key combinations
these are all of the current key bindings in babi
- ^S: save
- ^O: save as
- ^X: quit
- ^P: open file
- arrow keys: movement
- ^A / home: move to beginning of line
- ^E / end: move to end of line
- ^Y / pageup: move up one page
- ^V / pagedown: move down one page
- ^-left / ^-right: jump by word
- ^-home / ^-end: jump to beginning / end of file
- M-Up / M-Down: jump to previous / next paragraph
- ^_: jump to line number
- selection: shift + ...: extend the current selection
- arrow keys
- home / end
- pageup / pagedown
- ^-left / ^-right
- ^-end / ^-home
- tab / shift-tab: indent or dedent current line (or
selection)
- ^K / ^U: cut and uncut the current line (or selection)
- M-u / M-U or M-e: undo / redo
- ^W: search
- ^\\: search and replace
- ^C: show the current position in the file
- ^-up / ^-down: scroll screen by a single line
- M-left / M-right: go to previous / next file
- ^Z: background
- ^T: run linter
- by default, runs `pre-commit run --files `
- outside of a git repo will run `flake8 ` for python files
- ^-S-Up, ^-S-Down: navigate to previous / next error
- M-t focus the linting panel
- ^C, ^X: clear and close the linting panel
- Esc, M-t: unfocus the linting panel
- arrow keys: movement inside the linting panel
- esc: open the command mode
- :q: quit
- :w: write the file
- :wq: write the file and quit
- :qall: quit every open file
- :comment: comment out the current line / selection
- :reload: reload the file contents
- :sort: sort the file (or selection)
- :tabsize X: set the tabsize
in prompts (search, search replace, command):
- ^C: cancel
- ^K: cut to end
- ^R: reverse search
### setting up syntax highlighting
syntax highlighting should work out of the box!
if you want a custom theme find a visual studio code theme, convert it to
json (if it is not already json) and put it at `~/.config/babi/theme.json`.
a helper script is provided to make this easier: `./bin/download-theme NAME URL`
### keyboard shortcuts on macos
to get the most out of babi's built in keyboard shortcuts, a few settings must
be changed on macos with Terminal.app:
- in **System Preferences**: **Keyboard** > **Shortcuts** >
**Mission Control**: disable or rebind "Move left a space" and
"Move right a space" (the defaults `⌃ →` and `⌃ ←` conflict)
- in **Terminal.app**: **Terminal** > **Preferences** > **Profiles** >
**Keyboard**:
- check **Use Option as Meta key**
- ensure the following keys are enabled:
- `⌃ →`: `\033[1;5C`
- `⌃ ←`: `\033[1;5D`
- `⇧ ↑`: `\033[1;2A`
- `⇧ ↓`: `\033[1;2B`
- `⇧ →`: `\033[1;2C`
- `⇧ ←`: `\033[1;2D`
## demos
most things work! here's a few screenshots
### file view
this opens the file, displays it, and can be edited and can save! unknown keys
are displayed as errors in the status bar. babi will scroll if the cursor
goes off screen either from resize events or from movement. babi can edit
multiple files. babi has a command mode (so you can quit it like vim
:q!). babi also supports syntax highlighting
![](https://i.fluffy.cc/5WFZBJ4mWs7wtThD9strQnGlJqw4Z9KS.png)
![](https://i.fluffy.cc/qrNhgCK34qKQ6tw4GHLSGs4984Qqnqh7.png)
![](https://i.fluffy.cc/DKlkjnZ4tgfnxH7cxjnLcB7GkBVdW35v.png)
![](https://i.fluffy.cc/VqHWHfWNW73sppZlHv0C4lw63TVczZfZ.png)
![](https://i.fluffy.cc/p8lv61TCql1MJfpBDqbNPWPf27lmGWFN.png)
![](https://i.fluffy.cc/ZH5sswB4FSbpW8FfcXL1KZWdJnjxRkbW.png)
![](https://i.fluffy.cc/Rw8nZKFC3R36mNrV01fL2gk4rfwWn7wX.png)
![](https://i.fluffy.cc/FSD92ZVN4xcMFPv1V7gc0Xzk8TCQTgdg.png)
%package help
Summary: Development documents and examples for babi
Provides: python3-babi-doc
%description help
a text editor, eventually...
### installation
```bash
pip install babi
```
babi works best in a virtualenv
### why is it called babi?
I used to use the text editor `nano`, frequently I typo this. on a qwerty
keyboard, when the right hand is shifted left by one, `nano` becomes `babi`.
### babi vs. nano
here is a youtube video where I discuss the motivation for creating and using
`babi` instead of `nano`:
[![youtube video about babi](https://img.youtube.com/vi/WyR1hAGmR3g/mqdefault.jpg)](https://youtu.be/WyR1hAGmR3g)
### quitting babi
currently you can quit `babi` by using ^X (or via esc +
:q).
### key combinations
these are all of the current key bindings in babi
- ^S: save
- ^O: save as
- ^X: quit
- ^P: open file
- arrow keys: movement
- ^A / home: move to beginning of line
- ^E / end: move to end of line
- ^Y / pageup: move up one page
- ^V / pagedown: move down one page
- ^-left / ^-right: jump by word
- ^-home / ^-end: jump to beginning / end of file
- M-Up / M-Down: jump to previous / next paragraph
- ^_: jump to line number
- selection: shift + ...: extend the current selection
- arrow keys
- home / end
- pageup / pagedown
- ^-left / ^-right
- ^-end / ^-home
- tab / shift-tab: indent or dedent current line (or
selection)
- ^K / ^U: cut and uncut the current line (or selection)
- M-u / M-U or M-e: undo / redo
- ^W: search
- ^\\: search and replace
- ^C: show the current position in the file
- ^-up / ^-down: scroll screen by a single line
- M-left / M-right: go to previous / next file
- ^Z: background
- ^T: run linter
- by default, runs `pre-commit run --files `
- outside of a git repo will run `flake8 ` for python files
- ^-S-Up, ^-S-Down: navigate to previous / next error
- M-t focus the linting panel
- ^C, ^X: clear and close the linting panel
- Esc, M-t: unfocus the linting panel
- arrow keys: movement inside the linting panel
- esc: open the command mode
- :q: quit
- :w: write the file
- :wq: write the file and quit
- :qall: quit every open file
- :comment: comment out the current line / selection
- :reload: reload the file contents
- :sort: sort the file (or selection)
- :tabsize X: set the tabsize
in prompts (search, search replace, command):
- ^C: cancel
- ^K: cut to end
- ^R: reverse search
### setting up syntax highlighting
syntax highlighting should work out of the box!
if you want a custom theme find a visual studio code theme, convert it to
json (if it is not already json) and put it at `~/.config/babi/theme.json`.
a helper script is provided to make this easier: `./bin/download-theme NAME URL`
### keyboard shortcuts on macos
to get the most out of babi's built in keyboard shortcuts, a few settings must
be changed on macos with Terminal.app:
- in **System Preferences**: **Keyboard** > **Shortcuts** >
**Mission Control**: disable or rebind "Move left a space" and
"Move right a space" (the defaults `⌃ →` and `⌃ ←` conflict)
- in **Terminal.app**: **Terminal** > **Preferences** > **Profiles** >
**Keyboard**:
- check **Use Option as Meta key**
- ensure the following keys are enabled:
- `⌃ →`: `\033[1;5C`
- `⌃ ←`: `\033[1;5D`
- `⇧ ↑`: `\033[1;2A`
- `⇧ ↓`: `\033[1;2B`
- `⇧ →`: `\033[1;2C`
- `⇧ ←`: `\033[1;2D`
## demos
most things work! here's a few screenshots
### file view
this opens the file, displays it, and can be edited and can save! unknown keys
are displayed as errors in the status bar. babi will scroll if the cursor
goes off screen either from resize events or from movement. babi can edit
multiple files. babi has a command mode (so you can quit it like vim
:q!). babi also supports syntax highlighting
![](https://i.fluffy.cc/5WFZBJ4mWs7wtThD9strQnGlJqw4Z9KS.png)
![](https://i.fluffy.cc/qrNhgCK34qKQ6tw4GHLSGs4984Qqnqh7.png)
![](https://i.fluffy.cc/DKlkjnZ4tgfnxH7cxjnLcB7GkBVdW35v.png)
![](https://i.fluffy.cc/VqHWHfWNW73sppZlHv0C4lw63TVczZfZ.png)
![](https://i.fluffy.cc/p8lv61TCql1MJfpBDqbNPWPf27lmGWFN.png)
![](https://i.fluffy.cc/ZH5sswB4FSbpW8FfcXL1KZWdJnjxRkbW.png)
![](https://i.fluffy.cc/Rw8nZKFC3R36mNrV01fL2gk4rfwWn7wX.png)
![](https://i.fluffy.cc/FSD92ZVN4xcMFPv1V7gc0Xzk8TCQTgdg.png)
%prep
%autosetup -n babi-1.5.4
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-babi -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Tue May 30 2023 Python_Bot - 1.5.4-1
- Package Spec generated