Giter Site home page Giter Site logo

athame's Introduction

Athame

Athame patches your shell to add full Vim support by routing your keystrokes through an actual Vim process. Athame can currently be used to patch readline (used by bash, gdb, python, etc) and/or zsh (which doesn't use readline).

Demo

Don't most shells already come with a vi-mode?

Yes, and if you're fine with basic vi imitations designed by a bunch of Emacs users, feel free to use them. ...but for the true Vim fanatics who sacrifice goats to the modal gods, Athame gives you the full power of Vim.

Requirements

  • Athame works best on GNU/Linux.
  • Athame also works on Windows (with WSL), and usually works on OSX. (I don't have a Mac, so I can't always test changes on one)
  • Athame needs at least one of the following:
    • Vim 8.0+ with +job support
    • Vim 7.4+ with +clientserver support
      • Vim 7.4.928+ is strongly recommended.
      • The clientserver version requires X and will fall back to a normal shell if X isn't running.
    • Neovim 0.2.2+
      • Neovim support is currently experimental.
      • The setup scripts will look for vim by default. You can append --vimbin=$(which nvim) to have them use nvim.

Setting up Athame Readline

Option 1: (Arch Linux only) Use the AUR

Use readline-athame-git from the AUR.

  • If you are missing the readline gpg key, you can get it with gpg --recv-keys BB5869F064EA74AB

Option 2: (The safest method) Install a local copy of Readline/Bash

git clone --recursive http://github.com/ardagnir/athame
cd athame
mkdir -p ~/local
./readline_athame_setup.sh --prefix=$HOME/local/
./bash_readline_setup.sh --prefix=$HOME/local/ --use_readline=$HOME/local/
cp athamerc ~/.athamerc

You can now run ~/local/bin/bash to run bash with Athame.

Option 3: Install Athame as your default Readline

For Ubuntu/Debian:

git clone --recursive http://github.com/ardagnir/athame
cd athame
./readline_athame_setup.sh --libdir=/lib/x86_64-linux-gnu --use_sudo

Otherwise:

git clone --recursive http://github.com/ardagnir/athame
cd athame
./readline_athame_setup.sh --use_sudo

You may need to rebuild bash if your installed version doesn't use your system readline (this is usually the case in Ubuntu and OSX):

./bash_readline_setup.sh --use_sudo

Additional Notes

  • You can add the --nobuild flag to the setup script if you want to configure/build/install yourself.
  • You can change what Vim binary is used by passing --vimbin=/path/to/vim to the setup script.

Setting up Athame Zsh

Option 1: (Arch Linux only) Use the AUR

Use zsh-athame-git from the AUR.

  • If you are missing the zsh gpg key, you can get it with gpg --recv-keys A71D9A9D4BDB27B3
  • Add "unset zle_bracketed_paste" to the end of your ~/.zshrc

Option 2: (The safest method) Install a local copy of Zsh

Windows Note: zsh tests don't work in Windows because zsh gets stuck in the background. Add --notest to the setup script line if installing on Windows.

git clone --recursive http://github.com/ardagnir/athame
cd athame
mkdir -p ~/local
./zsh_athame_setup.sh --prefix=$HOME/local/
cp athamerc ~/.athamerc

Add "unset zle_bracketed_paste" to the end of your ~/.zshrc

You can now run ~/local/bin/zsh to run zsh with Athame.

Option 3: Install Athame as your default Zsh

Windows Note: zsh tests don't work in Windows because zsh gets stuck in the background. Add --notest to the setup script line if installing on Windows.

git clone --recursive http://github.com/ardagnir/athame
cd athame
./zsh_athame_setup.sh --use_sudo

Add "unset zle_bracketed_paste" to the end of your ~/.zshrc

Additional Notes

  • You can add the --nobuild flag to the setup script if you want to configure/build/install yourself.
  • You can change what Vim binary is used by passing --vimbin=/path/to/vim to the setup script.

Configuration

Athame can be configured through the following environment variables. They can be set on the fly or you can add them to your ~/.bashrc or ~/.zshrc. Make sure you use export if you add them to your ~/.zshrc.

  • ATHAME_ENABLED: Set to 0 to disable Athame.
  • ATHAME_SHOW_MODE: Set to 0 to hide mode display at the bottom of the screen. To display it yourself, read the ATHAME_VIM_MODE variable.
  • ATHAME_SHOW_COMMAND: Set to 0 to hide :, /, and ? commands at the bottom of the screen. To display them yourself, read the ATHAME_VIM_COMMAND variable.
  • ATHAME_SHOW_ERROR: Set to 0 to hide athame errors. If you want to display these yourself, read the ATHAME_ERROR variable.
  • ATHAME_VIM_PERSIST: Normally Athame spawns a new short-lived Vim instance for each readline/zle usage (in practice, a separate Vim instance each line). If you set this to 1, you will get 1 Vim instance per shell instead, so your iabbrevs, etc, are preserved from line to line. The tradeoff is that it will keep Vim open until the shell closes, whether or not it is using readline. For example: if you open your terminal and type bash 10 times, with the default ATHAME_VIM_PERSIST of 0 you will have one instance of Vim running, because only the inner shell is using readline, but with ATHAME_VIM_PERSIST set to 1, you will have 10.
  • ATHAME_USE_JOBS: If non-zero, Athame will use jobs for async behavior. Otherwise, it will use clientserver.

FAQ

How do I use this?

It's just like Vim. Imagine your history is stored inside a Vim buffer (because it is!) with a blank line at the bottom. Your cursor starts on that blank line each time readline is called. Unless you're in command mode, some special chars (such as carriage return) are handled by readline/zsh.

Some example commands (there's no specific code for these, it's just Vim):

  • j: go back a line in history
  • k: go forward a line in history
  • ?: search history (and current line) backwards (better if you have :set incsearch enabled)
  • /: search history (and current line) forwards (better if you have :set incsearch enabled)
  • cc: clear current line and go to insert mode

The default athamerc modifies up/down arrows in insert mode to jump to the end of the line, like in a normal shell, but you can change this.

You can also enable history searching arrows in the athamerc. (If you enable this and you use arrows, it searches for text that begins with what you've typed. It's like Vim's command mode.)

? and / are reversed from bash's vi-mode. Why?

Bash's vi-mode has ? go down and / go up. In actual Vim (and thus, Athame) they go the other way.

Why does Athame start in insert/normal mode?

The default athamerc includes "startinsert" to make Athame start in insert mode. If you remove that line, it will start in normal mode.

Why is my Athame slow?

Athame should be very fast, but it will slow down if your Vim setup is slow or if you have invalid vimscript in either your athamerc or vimrc. Try using a clean vimrc or athamerc and see if it speeds up. If not, file an issue.

If Athame is only slow in command mode (:?/), you should be able to fix it by updating Vim to version 8.1+.

I installed Athame for Readline, but it isn't doing anything!

Are you using the system readline? Type:

ldd $(which bash)

This should include libreadline. If it doesn't, you need to build bash to use the system readline. You can do this by running:

./bash_readline_setup.sh

Which chars are sent to vim and which to readline/zsh?

Control-C usually sends a SIGNINT signal that is handled by zsh, readline, or the program that calls readline. For other keys:

  • In readline, chars marked as rl_delete (usually Control-D), rl_newline (usually return), rl_complete (usually tab), and rl_clear_screen (usually Control-L) are sent to readline. All other keys are sent to vim. This means that if you use readline's built-in vi-mode, Control-L and Control-D probably won't be sent to the shell.
  • In zsh, Athame is hardcoded to send tab, Control-D, carriage return, new line, and Control-L to zsh. All other keys are sent to vim. This behavior will likely change in the future.

I got the error "Couldn't load vim path"

Is Vim at the correct path? You can change the path Athame looks at with the --vimbin flag.

How do I disable/uninstall Athame?

To temporarily disable Athame, export ATHAME_ENABLED=0

To compile readline/zsh without the Athame patches, run the setup script with a --noathame flag.

To get rid of Athame completly, you should probably just replace it with the non-patched version of readline/zsh from your distro.

Or, if you're cool with not having a shell, you can uninstall it by cding into the readline or zsh directory and typing sudo make uninstall.

Depending on your approach, you may want to manually remove /usr/lib/athame* and /etc/athamerc as well.

Why do the Up/Down arrows make the cursor jump to the end of the line?

This is done through vimscript in the athamerc to make Athame more like a normal shell. Feel free to comment it out.

How do I disable/change the way Athame shows Vim's mode?

By default Athame shows the Vim mode at the bottom of the screen. This can be disabled using export ATHAME_SHOW_MODE=0

Athame stores the current mode in the ATHAME_VIM_MODE environment variable. You can use this to display the Vim mode yourself. See #21 for an example using powerline.

Similarly, Vim commands are displayed at the bottom of the screen by default. These can be disabled using export ATHAME_SHOW_COMMAND=0 and accessed using ATHAME_VIM_COMMAND

Why don't arrow keys work when I add Athame to my convoluted Zsh setup?

Because arrow keys are evil! Just kidding. :P

Ohmyzsh and some other zsh setups put your terminal into application mode to help their keymaps. Athame doesn't like this, and besides, you're using Vim as your keymap. You can override this by adding the following to the end of your ~/.zshrc:

function zle-line-init(){
  echoti rmkx
}
zle -N zle-line-init

Why isn't there an Athame package for my favorite distro?

...because you haven't made one yet. The Athame setup script comes with a --nobuild flag so that you can build it however you want or your package can just apply the Athame patches itself.

This is awesome! Can I help?

The best way to help is to look at the issue section and submit patches to fix bugs.

If you have a shell that I'm missing, you can also try making a patch to communicate between it and Athame (see athame_readline.h and athame_zsh.h for the functions you need to implement).

What about donations?

I'm not accepting donations, but you should consider donating to the EFF so that we don't end up living in a scary dystopian future where everyone is forced to use emacs.

Bugs

  • See issues
  • If you see a bug without an issue, please create one.

License

GPL v3

athame's People

Contributors

ardagnir avatar doodzik avatar mclaughlinconnor avatar tankorsmash avatar vswarte 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

athame's Issues

Not working, possibly because of multi arch readline libs

I installed athame and tested it using ipython but it doesn't seem to work. I used pmap to verify that the ipython process indeed uses the system readline libs. I think the problem might be that I see two distinct readline libraries and one more symbolic links:

  • /usr/lib/libreadline.so*
  • /lib/x86_64-linux-gnu/libreadline.so.*
  • /usr/lib/x86_64-linux-gnu/libreadline.so -> /lib/x86_64-linux-gnu/libreadline.so.6

Following the installation script, it seems that only the first one was patched (by the modification time of the file).

What's the best way to solve this?

Thanks!

invalid

I've used

  • ciw
  • diw
  • d/c[count]w

But it seems like other built-in objects (e.g. daB) or custom objects (e.g. the ones from plug-ins) do not work.

Cuts off first character

When I send something from tmux config, to just created window, it cuts off first character...

What solves that problem (temporary fix that does not break it for people not using athame) is adding to the beggining of the line....

tty login

While i love being able to use vim-fu to jump around the terminal, this is sadly quite annoying.

I use startx to open my x enviroment, but post-login in the tty, it is messed up. Theres an issue with vimbed indicated in red at the bottom, and the first letter i type is the only letter any of my keys will produce. When i manage to startx by finding it in my history of previously run commands everything runs fine again.

I noticed that my zsh plugins DO work in the tty (double pressing ESC gives me a sudo infront of my text), and this does not work in urxvt with athame installed. I tried putting

"function zle-line-init(){
echoti rmkx
}
zle -N zle-line-init
"
into my .zshrc, to see if that did anything, but it said something about rmkx not being found in the tty.

tl;dr
tty is broken with athame and zsh

Cannot get to run in Ubuntu 14.10 using zsh for install

I have followed the README directly and am unable to get things up and running. I'm really excited to try it out but have hit a wall attempting to figure out how to get it to start. I have tried checking /bin and /usr/bin but get nothing related in there, and wasn't sure where to go next.

input constantly deleted

Trying to get this running on debian and I'm seeing some odd behavior. When I'm in insert mode, anything I type is deleted after a small delay. So I type some characters, they disappear. Type some more, disappears again. I put a blank .athamerc and .bashrc in my home directory to no avail.

One other data point, I did have to do an ldconfig to add /usr/lib to my linker path to get bash to link properly after installing. I didn't see that in your docs anywhere so maybe I've misconfigured it somehow? I have vim 7.4 patches 1-873 and bash 4.3.42. Thanks!

Zsh multibyte support

Athame allows multibyte characters in Zsh prompts but not in the actual zsh text. I still don't understand exactly how Zsh handles multibyte stuff.

Does nothing

I followed the instructions in the README (everything seemed to work) but AFAICT Athame isn't working. I opened a new terminal window (IE new zsh) and still had emacs bindings. I then opened an interactive bash subshell, still no athame.

https://gist.github.com/lxsli/dba7c882c16a37651a9a

edit: running ldconfig hasn't helped

Can't remove athame

I'd like to remove athame (sorry). I've already removed the zsh version, and now I'm trying to remove the readline version as psql uses readline and so is still using the athame readline.

I tried removing all the libreadline files in /usr/lib, as well downloading and building from source the gnu readline. but i always end up with athame in psql. Is there something I'm missing? even when I run the readline_athame_setup.sh with --noathame it still uses athame. Any ideas how I can fix this? I've tried to remove everything related to athame, but whenever i use psql it still uses it, and now gets a athame vimbed error (presumable because that's not running anymore)

[Error] Athame Failure: XDG_RUNTIME_DIR environment variable not set

Vim version: 8.1 (Huge version without gui)
(Has Job support enabled)
Distro: Debian 9
Installation Method: Safe option.

As the title of the issue mention, i noticed the following error when running the compiled bash in $HOME/local:
Athame Failure: XDG_RUNTIME_DIR environment variable not set
I also noticed similar error in the testing phase for Vim (Bash test were successful it seems, only the tests for Vim failed)
But since i wanted to test if it was actually working, i discarded the test, and tried it.

Ctrl-c not working correctly in python

Without athame, the behaviour of these keys is as following:

  • Tab: inserts a tab
  • Ctrl-c: cancels the current line edit and KeyboardInterrupt is printed

With athame in insert mode:

  • Tab: in the beginning of the line it inserts a tab correctly, but seem to think that a new line is edited- the -- INSERT -- is gone until I type anything. When I start typing anything after the tab it goes into insert mode again but starts from the beginning of the line, ignoring the tab (like cc was used in vim).
  • Ctrl-c: if this is the first thing I do on a new line, before the -- INSERT -- indicator appears, it works as expected. However after the indicator appears it seems to ignore the Ctrl-c untill I press return, at which point I get the KeyboardInterrupt message.

Using IPython 4.0.1.

Thanks!

ZSH Powerline Theme functionallity

It would be awesome if the mode of athame would work with the ZSH powerline theme.
Currently it doesn't change depending on mode at all, i believe. And it is just the "Arrow" way of showing things. (User, Host, Git-status, time etc). If it would work like in Vim, where it changes color (and INSERT/NORMAL upfront the bar), it would be awesome!

I might try to look into this myself if i manage to find the time as i am pretty swarmed, not sure i'l be able to figure it out though.

https://github.com/powerline/powerline

tl;dr Athame meets ZSH meets Powerline == Awesomeness!

Better neovim embedding

First of all, this is an awesome project :).

When spawning terminals within neovim, it should (at least in theory) be possible for athame to use that neovim process. This would be useful for shared registers and a few other things. I am potentially interested in implementing this feature, but I don't have a great idea of how doable this is. As far as I can tell, this could be done by adding another option to start_vim which sources vimbed and ~/.athemrc in the existing instance and opens the appropriate file. athemrc would also need to be changed such that the bindings are buffer specific. Thought?

Other bindings don't work

My other bindings do not work at all when using athame (like fzf or lf). I did not find anything about this in the FAQ, I'm assuming I configured it wrong (installed through AUR) or it does not support other commands with athame mode.

Neovim?

I see that you have contributed to neovim. Have you considered using Neovim for this purpose rather than stock vim?

Athame Install error

Hi,

I try to install your app with debian 9. I'm beginner in Unix environnement but i think have followed all the steps to install the program but when i wrote in command " ./readline_athame_setup.sh --libdir=/lib/x86_64-linux-gnu --use_sudo" i've this message:

No vim binary provided. Trying /usr/bin/vim
/usr/bin/vim probably has job support. Using /usr/bin/vim as vim binary.
./readline_athame_setup.sh: line 119: curl : command not found
./readline_athame_setup.sh: line 119: curl : command not found
./readline_athame_setup.sh: line 119: curl : command not found
Patching with standard readline patch 1
./readline_athame_setup.sh: ligne 142: ../readline_patches/readline70-$(printf "%03d" $patch): No file or folder of this type
Patching with standard readline patch 2
./readline_athame_setup.sh: line 142: ../readline_patches/readline70-$(printf "%03d" $patch): No file or folder of this type
Patching with standard readline patch 3
./readline_athame_setup.sh: line 142: ../readline_patches/readline70-$(printf "%03d" $patch): No file or folder of this type
Patching with Athame patch
patching file display.c
patching file Makefile.in
patching file readline.c
patching file shlib/Makefile.in
patching file readline.h
patching file callback.c
Copying Athame files
CONFIG_FILES=Makefile CONFIG_HEADERS= /bin/sh ./config.status
config.status: creating Makefile
awk: symbol lookup error: /usr/local/lib/libreadline.so.7: undefined symbol: UP
config.status: error: could not create Makefile
Makefile:188 : the recipe for the target « Makefile » failed
make: *** [Makefile] Error 127

Does anyone have a idea please?

Issues with multi line editing in IPython

After pressing the return key in a multi line statement, instead of continuing the editing on the next line, the insert mode indication at the bottom disappears and then when I start typing again the cursor position is set to the beginning of the line.
For example, after typing the following and pressing return:

for i in range(3):

I would expect the cursor position to be indented and to stay in insert mode.

I'm using IPython 4.0.1.

Carriage return stays inside Vim

It seems that most of the time when I hit enter, I just move to the next line in the Vim buffer. Some times it seems to be passed on and the command gets executed but most of the time not.

In normal mode, it seems to work better if I wait a couple of seconds after the previous key stroke before hitting enter. In insert mode, it sometimes works when cursor is not at the end of the line but not always.

All the times I managed to get the carriage return through where in python, not even once in bash. (I launched both from zsh which doesn't use readline)

Slow carriage return and tab in INSERT mode, but ok in NORMAL mode

Hi,
when I am in INSERT mode, even with .vimrc deleted, I encounter very problem where, when I press enter, I have to wait a few seconds.

With NORMAL mode, it just works instantly.

What details do you need?

Same problem accurs within both python interpreter and zsh.

ZSH "list options"

When i tab through suggestions, it is bugging. It only highlights the current suggestion, and all the other suggestions are hidden. When moving on to the next, it lights up, and the old selection is listed for a short moment and then disappears aswell. They are still in the positions they would be in if they were visible, they are just hidden.

Each new line (after an enter) also shortly blinks after a moment.

I have ATHAME_SHOW_MODE=0, if that makes a difference.

I hope these constant issue posts are a help and not an annoyance.

cannot build master at OSX 10.13.3

This is the output:

checking build system type... x86_64-apple-darwin17.4.0
checking host system type... x86_64-apple-darwin17.4.0

Beginning configuration for readline-7.0 for x86_64-apple-darwin17.4.0

checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... rm: conftest.dSYM: is a directory
rm: conftest.dSYM: is a directory
yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether gcc needs -traditional... no
checking for a BSD-compatible install... /usr/bin/install -c
checking for ar... ar
checking for ranlib... ranlib
checking for an ANSI C-conforming const... yes
checking for function prototypes... yes
checking whether char is unsigned... no
checking for working volatile... yes
checking return type of signal handlers... void
checking for size_t... yes
checking for ssize_t... yes
checking for ANSI C header files... (cached) yes
checking whether stat file-mode macros are broken... no
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for fcntl... yes
checking for kill... yes
checking for lstat... yes
checking for readlink... yes
checking for memmove... yes
checking for pselect... yes
checking for putenv... yes
checking for select... yes
checking for setenv... yes
checking for setlocale... yes
checking for strcasecmp... yes
checking for strpbrk... yes
checking for tcgetattr... yes
checking for vsnprintf... yes
checking for isascii... yes
checking for isxdigit... yes
checking for getpwent... yes
checking for getpwnam... yes
checking for getpwuid... yes
checking for uid_t in sys/types.h... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking for working strcoll... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for unistd.h... (cached) yes
checking for stdlib.h... (cached) yes
checking varargs.h usability... no
checking varargs.h presence... no
checking for varargs.h... no
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking stdbool.h usability... yes
checking stdbool.h presence... yes
checking for stdbool.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking for memory.h... (cached) yes
checking termcap.h usability... yes
checking termcap.h presence... yes
checking for termcap.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking termio.h usability... no
checking termio.h presence... no
checking for termio.h... no
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/pte.h usability... no
checking sys/pte.h presence... no
checking for sys/pte.h... no
checking sys/stream.h usability... no
checking sys/stream.h presence... no
checking for sys/stream.h... no
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking for sys/ptem.h... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for type of signal functions... posix
checking if signal handlers must be reinstalled when invoked... no
checking for presence of POSIX-style sigsetjmp/siglongjmp... present
checking for lstat... yes
checking whether or not strcoll and strcmp differ... no
checking whether the ctype macros accept non-ascii characters... yes
checking whether getpw functions are declared in pwd.h... yes
checking whether termios.h defines TIOCGWINSZ... yes
checking for sig_atomic_t in signal.h... yes
checking whether signal handlers are of type void... yes
checking for TIOCSTAT in sys/ioctl.h... yes
checking for FIONREAD in sys/ioctl.h... yes
checking for speed_t in sys/types.h... no
checking for struct winsize in sys/ioctl.h and termios.h... sys/ioctl.h
checking for struct dirent.d_ino... yes
checking for struct dirent.d_fileno... yes
checking libaudit.h usability... no
checking libaudit.h presence... no
checking for libaudit.h... no
checking whether AUDIT_USER_TTY is declared... no
checking for tgetent... no
checking for tgetent in -ltermcap... yes
checking which library has the termcap functions... using libtermcap
checking wctype.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking mbstr.h usability... no
checking mbstr.h presence... no
checking for mbstr.h... no
checking for mbrlen... yes
checking for mbscasecmp... no
checking for mbscmp... no
checking for mbsnrtowcs... yes
checking for mbsrtowcs... yes
checking for mbschr... no
checking for wcrtomb... yes
checking for wcscoll... yes
checking for wcsdup... yes
checking for wcwidth... yes
checking for wctype... yes
checking for wcswidth... yes
checking whether mbrtowc and mbstate_t are properly declared... yes
checking for iswlower... yes
checking for iswupper... yes
checking for towlower... yes
checking for towupper... yes
checking for iswctype... yes
checking for nl_langinfo and CODESET... yes
checking for wchar_t in wchar.h... yes
checking for wctype_t in wctype.h... yes
checking for wint_t in wctype.h... yes
checking for wcwidth broken with unicode combining characters... no
checking configuration for building shared libraries... supported
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating examples/Makefile
config.status: creating shlib/Makefile
config.status: creating readline.pc
config.status: creating config.h
config.status: executing default commands
rm -f readline.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 readline.c
rm -f vi_mode.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 vi_mode.c
rm -f funmap.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 funmap.c
rm -f keymaps.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 keymaps.c
rm -f parens.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 parens.c
rm -f search.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 search.c
rm -f rltty.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 rltty.c
rm -f complete.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 complete.c
complete.c:1155:23: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
             ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
complete.c:1155:23: note: place parentheses around the assignment to silence this warning
      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
                      ^
             (                                                             )
complete.c:1155:23: note: use '==' to turn this assignment into an equality comparison
      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
                      ^
                      ==
complete.c:2232:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  while (string = (*entry_function) (text, matches))
         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
complete.c:2232:17: note: place parentheses around the assignment to silence this warning
  while (string = (*entry_function) (text, matches))
                ^
         (                                         )
complete.c:2232:17: note: use '==' to turn this assignment into an equality comparison
  while (string = (*entry_function) (text, matches))
                ^
                ==
complete.c:2306:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  while (entry = getpwent ())
         ~~~~~~^~~~~~~~~~~~~
complete.c:2306:16: note: place parentheses around the assignment to silence this warning
  while (entry = getpwent ())
               ^
         (                  )
complete.c:2306:16: note: use '==' to turn this assignment into an equality comparison
  while (entry = getpwent ())
               ^
               ==
3 warnings generated.
rm -f bind.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 bind.c
bind.c:479:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  for (i = l = 0; c = seq[i]; i++)
                  ~~^~~~~~~~
bind.c:479:21: note: place parentheses around the assignment to silence this warning
  for (i = l = 0; c = seq[i]; i++)
                    ^
                  (         )
bind.c:479:21: note: use '==' to turn this assignment into an equality comparison
  for (i = l = 0; c = seq[i]; i++)
                    ^
                    ==
bind.c:1258:31: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  for (i = start,passc = 0; c = string[i]; i++)
                            ~~^~~~~~~~~~~
bind.c:1258:31: note: place parentheses around the assignment to silence this warning
  for (i = start,passc = 0; c = string[i]; i++)
                              ^
                            (            )
bind.c:1258:31: note: use '==' to turn this assignment into an equality comparison
  for (i = start,passc = 0; c = string[i]; i++)
                              ^
                              ==
bind.c:2369:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  for (i = 0; name = names[i]; i++)
              ~~~~~^~~~~~~~~~
bind.c:2369:20: note: place parentheses around the assignment to silence this warning
  for (i = 0; name = names[i]; i++)
                   ^
              (              )
bind.c:2369:20: note: use '==' to turn this assignment into an equality comparison
  for (i = 0; name = names[i]; i++)
                   ^
                   ==
3 warnings generated.
rm -f isearch.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 isearch.c
rm -f display.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 display.c
rm -f signals.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 signals.c
rm -f util.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 util.c
rm -f kill.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 kill.c
rm -f undo.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 undo.c
rm -f macro.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 macro.c
rm -f input.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 input.c
input.c:455:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      if (c = _rl_next_macro_key ())
          ~~^~~~~~~~~~~~~~~~~~~~~~~
input.c:455:13: note: place parentheses around the assignment to silence this warning
      if (c = _rl_next_macro_key ())
            ^
          (                        )
input.c:455:13: note: use '==' to turn this assignment into an equality comparison
      if (c = _rl_next_macro_key ())
            ^
            ==
1 warning generated.
rm -f callback.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 callback.c
rm -f terminal.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 terminal.c
rm -f text.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 text.c
rm -f nls.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 nls.c
rm -f misc.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 misc.c
misc.c:458:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      if (ul = (UNDO_LIST *)entry->data)
          ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
misc.c:458:14: note: place parentheses around the assignment to silence this warning
      if (ul = (UNDO_LIST *)entry->data)
             ^
          (                            )
misc.c:458:14: note: use '==' to turn this assignment into an equality comparison
      if (ul = (UNDO_LIST *)entry->data)
             ^
             ==
misc.c:505:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      if (ul = (UNDO_LIST *)hent->data)
          ~~~^~~~~~~~~~~~~~~~~~~~~~~~~
misc.c:505:14: note: place parentheses around the assignment to silence this warning
      if (ul = (UNDO_LIST *)hent->data)
             ^
          (                           )
misc.c:505:14: note: use '==' to turn this assignment into an equality comparison
      if (ul = (UNDO_LIST *)hent->data)
             ^
             ==
2 warnings generated.
rm -f history.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 history.c
rm -f histexpand.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 histexpand.c
histexpand.c:212:27: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  for (local_index = i; c = string[i]; i++)
                        ~~^~~~~~~~~~~
histexpand.c:212:27: note: place parentheses around the assignment to silence this warning
  for (local_index = i; c = string[i]; i++)
                          ^
                        (            )
histexpand.c:212:27: note: use '==' to turn this assignment into an equality comparison
  for (local_index = i; c = string[i]; i++)
                          ^
                          ==
1 warning generated.
rm -f histfile.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 histfile.c
rm -f histsearch.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 histsearch.c
rm -f shell.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 shell.c
rm -f mbutil.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 mbutil.c
rm -f tilde.o
gcc -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -DREADLINE_LIBRARY -c ./tilde.c
./tilde.c:199:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  if (result = strchr (string, '~'))
      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
./tilde.c:199:14: note: place parentheses around the assignment to silence this warning
  if (result = strchr (string, '~'))
             ^
      (                            )
./tilde.c:199:14: note: use '==' to turn this assignment into an equality comparison
  if (result = strchr (string, '~'))
             ^
             ==
1 warning generated.
rm -f colors.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 colors.c
rm -f parse-colors.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 parse-colors.c
rm -f xmalloc.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 xmalloc.c
rm -f xfree.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 xfree.c
rm -f compat.o
gcc -c -DHAVE_CONFIG_H   -I. -I.  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 compat.c
rm -f libreadline.a
ar cr libreadline.a readline.o vi_mode.o funmap.o keymaps.o parens.o search.o rltty.o complete.o bind.o isearch.o display.o signals.o util.o kill.o undo.o macro.o input.o callback.o terminal.o text.o nls.o misc.o history.o histexpand.o histfile.o histsearch.o shell.o mbutil.o tilde.o colors.o parse-colors.o xmalloc.o xfree.o compat.o
test -n "ranlib" && ranlib libreadline.a
rm -f libhistory.a
ar cr libhistory.a history.o histexpand.o histfile.o histsearch.o shell.o mbutil.o xmalloc.o xfree.o
test -n "ranlib" && ranlib libhistory.a
test -d shlib || mkdir shlib
( cd shlib ; /Library/Developer/CommandLineTools/usr/bin/make  all )
rm -f readline.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o readline.o ../readline.c
mv readline.o readline.so
rm -f vi_mode.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o vi_mode.o ../vi_mode.c
mv vi_mode.o vi_mode.so
rm -f funmap.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o funmap.o ../funmap.c
mv funmap.o funmap.so
rm -f keymaps.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o keymaps.o ../keymaps.c
mv keymaps.o keymaps.so
rm -f parens.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o parens.o ../parens.c
mv parens.o parens.so
rm -f search.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o search.o ../search.c
mv search.o search.so
rm -f rltty.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o rltty.o ../rltty.c
mv rltty.o rltty.so
rm -f complete.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o complete.o ../complete.c
../complete.c:1155:23: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
             ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../complete.c:1155:23: note: place parentheses around the assignment to silence this warning
      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
                      ^
             (                                                             )
../complete.c:1155:23: note: use '==' to turn this assignment into an equality comparison
      while (rl_point = MB_PREVCHAR (rl_line_buffer, rl_point, MB_FIND_ANY))
                      ^
                      ==
../complete.c:2232:17: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  while (string = (*entry_function) (text, matches))
         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../complete.c:2232:17: note: place parentheses around the assignment to silence this warning
  while (string = (*entry_function) (text, matches))
                ^
         (                                         )
../complete.c:2232:17: note: use '==' to turn this assignment into an equality comparison
  while (string = (*entry_function) (text, matches))
                ^
                ==
../complete.c:2306:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  while (entry = getpwent ())
         ~~~~~~^~~~~~~~~~~~~
../complete.c:2306:16: note: place parentheses around the assignment to silence this warning
  while (entry = getpwent ())
               ^
         (                  )
../complete.c:2306:16: note: use '==' to turn this assignment into an equality comparison
  while (entry = getpwent ())
               ^
               ==
3 warnings generated.
mv complete.o complete.so
rm -f bind.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o bind.o ../bind.c
../bind.c:479:21: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  for (i = l = 0; c = seq[i]; i++)
                  ~~^~~~~~~~
../bind.c:479:21: note: place parentheses around the assignment to silence this warning
  for (i = l = 0; c = seq[i]; i++)
                    ^
                  (         )
../bind.c:479:21: note: use '==' to turn this assignment into an equality comparison
  for (i = l = 0; c = seq[i]; i++)
                    ^
                    ==
../bind.c:1258:31: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  for (i = start,passc = 0; c = string[i]; i++)
                            ~~^~~~~~~~~~~
../bind.c:1258:31: note: place parentheses around the assignment to silence this warning
  for (i = start,passc = 0; c = string[i]; i++)
                              ^
                            (            )
../bind.c:1258:31: note: use '==' to turn this assignment into an equality comparison
  for (i = start,passc = 0; c = string[i]; i++)
                              ^
                              ==
../bind.c:2369:20: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  for (i = 0; name = names[i]; i++)
              ~~~~~^~~~~~~~~~
../bind.c:2369:20: note: place parentheses around the assignment to silence this warning
  for (i = 0; name = names[i]; i++)
                   ^
              (              )
../bind.c:2369:20: note: use '==' to turn this assignment into an equality comparison
  for (i = 0; name = names[i]; i++)
                   ^
                   ==
3 warnings generated.
mv bind.o bind.so
rm -f isearch.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o isearch.o ../isearch.c
mv isearch.o isearch.so
rm -f display.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o display.o ../display.c
mv display.o display.so
rm -f signals.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o signals.o ../signals.c
mv signals.o signals.so
rm -f util.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o util.o ../util.c
mv util.o util.so
rm -f kill.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o kill.o ../kill.c
mv kill.o kill.so
rm -f undo.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o undo.o ../undo.c
mv undo.o undo.so
rm -f macro.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o macro.o ../macro.c
mv macro.o macro.so
rm -f input.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o input.o ../input.c
../input.c:455:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      if (c = _rl_next_macro_key ())
          ~~^~~~~~~~~~~~~~~~~~~~~~~
../input.c:455:13: note: place parentheses around the assignment to silence this warning
      if (c = _rl_next_macro_key ())
            ^
          (                        )
../input.c:455:13: note: use '==' to turn this assignment into an equality comparison
      if (c = _rl_next_macro_key ())
            ^
            ==
1 warning generated.
mv input.o input.so
rm -f callback.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o callback.o ../callback.c
mv callback.o callback.so
rm -f terminal.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o terminal.o ../terminal.c
mv terminal.o terminal.so
rm -f text.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o text.o ../text.c
mv text.o text.so
rm -f nls.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o nls.o ../nls.c
mv nls.o nls.so
rm -f misc.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o misc.o ../misc.c
../misc.c:458:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      if (ul = (UNDO_LIST *)entry->data)
          ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../misc.c:458:14: note: place parentheses around the assignment to silence this warning
      if (ul = (UNDO_LIST *)entry->data)
             ^
          (                            )
../misc.c:458:14: note: use '==' to turn this assignment into an equality comparison
      if (ul = (UNDO_LIST *)entry->data)
             ^
             ==
../misc.c:505:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      if (ul = (UNDO_LIST *)hent->data)
          ~~~^~~~~~~~~~~~~~~~~~~~~~~~~
../misc.c:505:14: note: place parentheses around the assignment to silence this warning
      if (ul = (UNDO_LIST *)hent->data)
             ^
          (                           )
../misc.c:505:14: note: use '==' to turn this assignment into an equality comparison
      if (ul = (UNDO_LIST *)hent->data)
             ^
             ==
2 warnings generated.
mv misc.o misc.so
rm -f history.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o history.o ../history.c
mv history.o history.so
rm -f histexpand.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o histexpand.o ../histexpand.c
../histexpand.c:212:27: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  for (local_index = i; c = string[i]; i++)
                        ~~^~~~~~~~~~~
../histexpand.c:212:27: note: place parentheses around the assignment to silence this warning
  for (local_index = i; c = string[i]; i++)
                          ^
                        (            )
../histexpand.c:212:27: note: use '==' to turn this assignment into an equality comparison
  for (local_index = i; c = string[i]; i++)
                          ^
                          ==
1 warning generated.
mv histexpand.o histexpand.so
rm -f histfile.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o histfile.o ../histfile.c
mv histfile.o histfile.so
rm -f histsearch.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o histsearch.o ../histsearch.c
mv histsearch.o histsearch.so
rm -f shell.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o shell.o ../shell.c
mv shell.o shell.so
rm -f mbutil.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o mbutil.o ../mbutil.c
mv mbutil.o mbutil.so
rm -f tilde.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -DREADLINE_LIBRARY -c -o tilde.o ../tilde.c
../tilde.c:199:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  if (result = strchr (string, '~'))
      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
../tilde.c:199:14: note: place parentheses around the assignment to silence this warning
  if (result = strchr (string, '~'))
             ^
      (                            )
../tilde.c:199:14: note: use '==' to turn this assignment into an equality comparison
  if (result = strchr (string, '~'))
             ^
             ==
1 warning generated.
mv tilde.o tilde.so
rm -f colors.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o colors.o ../colors.c
mv colors.o colors.so
rm -f parse-colors.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o parse-colors.o ../parse-colors.c
mv parse-colors.o parse-colors.so
rm -f xmalloc.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o xmalloc.o ../xmalloc.c
mv xmalloc.o xmalloc.so
rm -f xfree.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o xfree.o ../xfree.c
mv xfree.o xfree.so
rm -f compat.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o compat.o ../compat.c
mv compat.o compat.so
rm -f athame.so
gcc -c -DHAVE_CONFIG_H   -I. -I.. -I..  -DRL_LIBRARY_VERSION='"7.0"' -DVIMBED_LOCATION='"/usr/lib/athame_readline"' -DATHAME_VIM_BIN='"/usr/local/bin/vim"' -DATHAME_USE_JOBS_DEFAULT='1' -std=c99 -fno-common -o athame.o ../athame.c
In file included from ../athame.c:43:
../athame_intermediary.h:106:46: warning: '&&' within '||' [-Wlogical-op-parentheses]
  return rl_done || rl_num_chars_to_read > 0 && rl_end >= rl_num_chars_to_read;
                 ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../athame_intermediary.h:106:46: note: place parentheses around the '&&' expression to silence this warning
  return rl_done || rl_num_chars_to_read > 0 && rl_end >= rl_num_chars_to_read;
                                             ^
                    (                                                         )
In file included from ../athame.c:44:
../athame_util.h:341:23: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
  while (history_line = ap_get_history_next()) {
         ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../athame_util.h:341:23: note: place parentheses around the assignment to silence this warning
  while (history_line = ap_get_history_next()) {
                      ^
         (                                   )
../athame_util.h:341:23: note: use '==' to turn this assignment into an equality comparison
  while (history_line = ap_get_history_next()) {
                      ^
                      ==
../athame_util.h:344:25: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
    while (history_line = strstr(history_line, "\n")) {
           ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../athame_util.h:344:25: note: place parentheses around the assignment to silence this warning
    while (history_line = strstr(history_line, "\n")) {
                        ^
           (                                        )
../athame_util.h:344:25: note: use '==' to turn this assignment into an equality comparison
    while (history_line = strstr(history_line, "\n")) {
                        ^
                        ==
../athame_util.h:1217:1: error: unknown type name 'sighandler_t'
sighandler_t old_sigint = 0;
^
../athame_util.h:1238:22: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
      if (sig_result = (int)ap_handle_signals()) {
          ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
../athame_util.h:1238:22: note: place parentheses around the assignment to silence this warning
      if (sig_result = (int)ap_handle_signals()) {
                     ^
          (                                    )
../athame_util.h:1238:22: note: use '==' to turn this assignment into an equality comparison
      if (sig_result = (int)ap_handle_signals()) {
                     ^
                     ==
4 warnings and 1 error generated.
make[1]: *** [athame.so] Error 1
make: *** [shared] Error 2

Custom vimrc?

I'm wondering if there's an easy way to specify what vimrc athame should use.

My current vimrc and athame do not play nice. On the other hand no vimrc and athame seem to get along just fine (e.g. throwing in a ATHAME_TEST_RC=1).

I'm willing to contribute a patch if this doesn't yet exist. I would probably do so as a file list in a shell variable. For example:

export ATHAME_VIM_RC_FILES=/home/user/config/vimrcForAthame1.vim;\ /home/user/config/vimrcForAthame2.vim

In addition, I would probably add the following to the invocation of the vim process:

vim --cmd "let g:athamerc=1" -S vimbed.vim -S athamerc.... <or whatever is currently done>

Thoughts?

backspace doesnt do anything

as the title says, instead the removing the character behind the cursor, pressing backspace moves the cursor left a character (as if i pressed it in normal mode)
this happens in every mode, including insert mode.

OS X: ./readline_athame_setup.sh fails Athame Vim Integration Test 2

I'm running OS X 10.11 (El Capitan). This is the end of ./readline_athame_setup.sh's output:

installing vi.gmo as /Users/bs/athame/test/build/usr/local/share/locale/vi/LC_MESSAGES/ba
sh.mo
installing zh_CN.gmo as /Users/bs/athame/test/build/usr/local/share/locale/zh_CN/LC_MESSA
GES/bash.mo
installing zh_TW.gmo as /Users/bs/athame/test/build/usr/local/share/locale/zh_TW/LC_MESSA
GES/bash.mo
if test "bash" = "gettext-tools"; then \
          /bin/sh /Users/bs/athame/bash-4.3_tmp/./support/mkinstalldirs /Users/bs/athame/
test/build/usr/local/share/gettext/po; \
          for file in Makefile.in.in remove-potcdate.sin quot.sed boldquot.sed [email protected]
ader [email protected] insert-header.sin Rules-quot   Makevars.template; do \
            /usr/local/bin/ginstall -c -m 644 ./$file \
                            /Users/bs/athame/test/build/usr/local/share/gettext/po/$file;
 \
          done; \
          for file in Makevars; do \
            rm -f /Users/bs/athame/test/build/usr/local/share/gettext/po/$file; \
          done; \
        else \
          : ; \
        fi
Testing Athame Shell...
Test 1:
Success!

Test 2:
Failed at high speed. Retrying at slower speed
Success!

Test 3:
Failed at high speed. Retrying at slower speed
Success!

Test 4:
Success!

Testing Athame Vim Integration...
Test 1:
Success!

Test 2:
Failed at high speed. Retrying at slower speed
Failed at slow speed.

Test Failed
Failed tests: 2

What now?
v: view failures
C: *DANGEROUS* continue anyway
x: exit
v
Script started on Thu Oct  6 01:23:06 2016
command: bash -c ../charread.sh .15 input_text | /Users/bs/athame/test/build/bin/bash -i
bash-4.3$ unset HISTFILE
bash-4.3$
bash-4.3$
bash-4.3$ iecho "test 2kj2h~b~A" > out2
bash: iecho: command not found
bash-4.3$ exit

Script done on Thu Oct  6 01:23:19 2016
1d0
< TesT 2

I've prayed to the modal gods with no luck. Any ideas?

Also, ./zsh_athame_setup.sh failed all four athame shell tests, but that's expected on OS X, correct?

Zsh support

After looking at the Zle code, it should be relatively easy to add zsh support:

  • Step 1: Pass readline-specific functions/variables to athame (like rl_redisplay) instead of hardcoding readline specific ones. (Relatively easy)
  • Step 2: Add the three athame function calls to zle/zle_main.c and add athame.c/h to zle. (Even easier)
  • Step 3: Everything should just work at this point. But it won't. Fix whatever doesn't work. (The hard part)

Readline keys in normal mode

Is thare any way for keys such as Ctrl-L, Ctrl-D in normal mode to be passed on to readline?
It can be used in insert mode, of course, I've tried nnoremap <C-l> iclear<CR> and nnoremap <C-l> i<C-l><CR>,but not working.

Multiline editing

Right now, multiline commands are effectively broken into separate lines by Athame. This is baked pretty deeply into how Athame works, but it would be nice to change because Vim would be especially useful for editing multiline commands.

Kakoune?

Although I don't entirely grasp how this works under the hood, it looks awesome! Is there any way I could use kakoune instead of vim? Would I have to modify code?

Why aren't the registers working?

Does this follow from the architecture trivially, or is it just not implemented?
If it's not against the design, do you think it would be hard to implement?

I mostly need the + register to be able to yank into X11 clipboard.

:redir @+ | echom "Q_Q" | redir END

does not copy either.

Zsh plugins

I use a couple of zsh plugins (with oh-my-zsh), most importantly the "sudo" plugin making a double tab on escape produce a sudo in front of the current line, or previous line if current line is empty.

These do not work with athame installed, i tried
"function zle-line-init(){
echoti rmkx
}
zle -N zle-line-init"

in my .zshrc, but it didn't fix the problem.

Any ideas?

Launch or test it's correctly installed

Hi,

I'm running with zsh and tmux with urxvt. I just install athame and everything seems fine except some mv:

mv /usr/lib/libreadline.a /usr/lib/libreadline.old
mv: could not evaluate « /usr/lib/libreadline.a »: No such file or directory
make: [install-static] Erreur 1 (ignored)
/usr/bin/install -c -m 644 libreadline.a /usr/lib/libreadline.a
test -n "ranlib" && ranlib /usr/lib/libreadline.a
mv /usr/lib/libhistory.a /usr/lib/libhistory.old
mv: could not evaluate « /usr/lib/libhistory.a »: No such file or directory
make: [install-static] Erreur 1 (ignored)
/usr/bin/install -c -m 644 libhistory.a /usr/lib/libhistory.a

Now what? How can I check that the modded libreadline has been installed correctly? How may I test this? I've started a new bash shell (without tmux) but there is no vi. Theoretically this should work with zsh too?

Thanks! This project is looking great, hope it'll get through beta soon :)

Zsh: Test 2 and 3, as well as Athame Shell Fallback test fail when using grml config

Hey athame devs!
I was very happy when I found out about athame this weekend, yet it turned out that in its current state it is not working for me. I am on Arch Linux and am using zsh + grml config as my shell. The grml config is the standard one from the official repositories:
extra/grml-zsh-config 0.12.6-1 [installed]

When running the zsh_athame_setup.sh script, everything compiles fine. Some of the tests fail however:
`Testing Athame Shell...
Test 1:
Success!

Test 2:
Failed at high speed. Retrying at slower speed
Failed at slow speed.

Test 3:
Failed at high speed. Retrying at slower speed
Failed at slow speed.

Test 4:
Success!

Test Failed
Failed tests: 2 3

What now?
v: view failures
C: DANGEROUS continue anyway
x: exit
C
Testing Athame Vim Integration...
Test 1:
Success!

Test 2:
Success!

Testing Athame Shell Fallback without X...
Test 1:
Success!

Test 2:`
The last test, Test 2 for Athame Shell Fallback without X, never completes and I have to kill the process.

After removing grml config from my system, all tests pass fine. readline+athame is also working fine.
Thanks for the great project. And let me know, if you need any more information.

Distribution for Arch Linux

Hello.

I want to create package for distribution Athame on Arch Linux using Arch User Repository (https://aur.archlinux.org/), Arch uses PKGBUILD (bash script) for building packages on client machine, and PKGBUILD provides special directive sources for files that must be downloaded and verified using signatures: https://wiki.archlinux.org/index.php/PKGBUILD#Sources

2 years ago I've tried to do it without bash script that provided in athame upstream (I guess it was not exists 2 years ago) here https://github.com/kovetskiy/athame-zsh-pkgbuild/blob/master/PKGBUILD
Now bash_readline_setup.sh contains lines with automatically downloading of bash and bash patches and now it's not compatible with Arch Linux build ecosystem, can you please add some flag line --do-not-download or may be create two separated scripts?

Also it will be great to see separated commands for building and installing athame, like make and make install (now bash_readline_setup automatically runs make install for readline).

Thank you!

Readline missing symbols

awk: symbol lookup error: /usr/lib/libreadline.so.6: undefined symbol: UP
Is returned at a bash prompt on Arch Linux (more or less the latest version). Not sure why that is yet... but I am exploring it

Full installation not working

Hi,

Just wanted to post that the full installation of athame as my default readline didn't work for me. I gathered this was because of a readline problem, but I couldn't manage to solve it. Here is the output of ldd $(which bash):

linux-vdso.so.1 (0x00007fffe9d90000)
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f926bf8c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f926bf87000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f926bdc6000)
/lib64/ld-linux-x86-64.so.2 (0x00007f926c114000)

And indeed I don't see libreadline. The ./readline_athame_setup.sh --use_sudo does work, but then running ./bash_readline_setup.sh --use_sudo gives me this error:

(...)
config.status: creating po/Makefile
config.status: executing default commands
make: *** empty string invalid as file name.  Stop.

Make failed: Are you sure you have readline 8 installed? readline_athame_setup.sh installs readline 8 patched with athame. You may want to run it first.
This may also fail if you have a versionless libreadline.so symlinked to libreadline.so.7

I tried installing myself readline 8, with the same output. However, the local install worked, and my workaround was to change my shell to the local one, but still, I'm curious as to what happened there!

If you have any hints or solutions for this, I'd be grateful to try it :)

Thanks in advance,

Florian

Dont install on my home (Debian Sid)

Hello,

I'm trying to test athame, but it did not work on my environment (Debian Sid)
See the log, how can I fix it?

Thank you !

Log:
$ rm -rf athame/ local/
$ git clone --recursive http://github.com/ardagnir/athame
Clonando en 'athame'...
warning: redirigiendo a https://github.com/ardagnir/athame/
remote: Counting objects: 1490, done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 1490 (delta 18), reused 12 (delta 6), pack-reused 1457
Recibiendo objetos: 100% (1490/1490), 2.84 MiB | 3.24 MiB/s, listo.
Resolviendo deltas: 100% (903/903), listo.
Submódulo 'vimbed' (http://github.com/ardagnir/vimbed) registrado para ruta 'vimbed'
Clonando en '/home/javi/athame/vimbed'...
warning: redirigiendo a https://github.com/ardagnir/vimbed/
remote: Counting objects: 237, done.
remote: Total 237 (delta 0), reused 0 (delta 0), pack-reused 237
Recibiendo objetos: 100% (237/237), 62.66 KiB | 408.00 KiB/s, listo.
Resolviendo deltas: 100% (94/94), listo.
Ruta de submódulo 'vimbed': check out realizado a '61f3ec7a7c4b27c2e554358db63cc45e3ed4854a'
~$ cd athame
~/athame$ mkdir -p ~/local
~/athame$ ./readline_athame_setup.sh --prefix=$HOME/local/ 2>&1 | tee install.log

install.log

zsh plugins do not refresh while typing

While typing, the plugins such as zsh-autosuggestions and zsh-syntax-highlighting do not get the memo that the line has changed. However, their hooks apply just fine when autocompleting with "tab," so I suppose it should be possible.

I look into athame for a place where to possibly fix it. However, it is currently beyond my knowledge. If you could point me in the right direction, I will attempt to fix it.

slow in command mode

vim version: 8.1.948
Operating system: Kali (linux 4.14.0)

Athame installed as a local copy, no configuration.
vim has an empty ~/vimrc and no other packages is loaded (checked with :script command).
yet it's a little laggy when typing in command mode any idea?

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.