rkitover / vimpager

Use Vim as PAGER
http://www.vim.org/scripts/script.php?script_id=1723
Other
769 stars 72 forks source link

vimcat needs extra key press in neovim terminal #246

Closed mdumitru closed 4 years ago

mdumitru commented 4 years ago

When using vimcat from inside a neovim terminal, it freezes until a key (any key) is pressed; after the keypress, it works. From a normal terminal (not inside neovim), vimcat works as intended. vimpager works normally, even in neovim's terminal.

Running vimcat -x reaches a loop and messes up the terminal:

$ vimcat -x file
+ tmp_dir=/tmp
+ mkdir_options=-m 700
+ uname -s
+ tmp_dir=/tmp/vimcat_8784
+ mkdir -m 700 /tmp/vimcat_8784
+ trap quit 1 PIPE HUP INT QUIT ILL TRAP KILL BUS TERM
+ tmp_file_in=/tmp/vimcat_8784/vimcat_in.txt
+ out_fifo=/tmp/vimcat_8784/vimcat_out.fifo
+ mkfifo /tmp/vimcat_8784/vimcat_out.fifo
+ [ 2 -gt 0 ]
+ shift
+ [ 1 -gt 0 ]
+ break
+ [ -z  ]
+ [ ! -t 1 ]
+ [ -z  ]
+ [ -f /home/mihai/.vimcatrc ]
+ vimcatrc=
+ [ 1 -eq 0 ]
+ [ -n  -a 1 -gt 1 ]
+ chunks_dir=/tmp/vimcat_8784/chunks
+ mkdir /tmp/vimcat_8784/chunks
+ i=1
+ [ 1 -ge 2 ]
+ pipeline=
+ pipeline_start=file
+ [ 0 -eq 1 ]
+ exit_code=0
+ [ file != - ]
+ [ ! -r file ]
+ [ ! -s file ]
+ [ -z  -o  = - ]
+ dest_file=/tmp/vimcat_8784/vimcat_out.fifo
+ tail_pid=8789
+ start_highlight_job
+ set -- -NE -i NONE -n+  --cmd set runtimepath^=/usr/share/vimpager --cmd call vimcat#Init({ 'rc': '' }): --cmd
 visual -c+  call vimcat#Run("/tmp/vimcat_8784/vimcat_out.fifo", 0, "/tmp/vimcat_8784/chunks", "file")
[ ! -z +  ][
 -n  ]
+ [ 0 -eq 0 ]
+ cat_pid=8790
+ vim_pid=8791
+ + start_pipeline
cat /tmp/vimcat_8784/vimcat_out.fifo+
[+  -necho  8790 ]

+ pipeline=write_chunks
+ + wait 8790
vim -NE -i NONE -n --cmd set runtimepath^=/usr/share/vimpager --cmd call vimcat#Init({ 'rc': '' }) --cmd visual -c call vimcat#Run("/tmp/vimcat_8784/vimcat_out.fifo", 0, "/tmp/vimcat_8784/chunks", "file")
+ cat -- file
+ + echo 8795
eval write_chunks
+ write_chunks
+ cd /tmp/vimcat_8784/chunks
+ rm -f -- *
+ cat /tmp/vimcat_8784/pipeline_pid
+ split -b 4096 -
+ pipeline_pid=8795
+ [ ! -f /tmp/vimcat_8784/vim_done ]
+ do_sleep 50
+ _ms=50
+ vim -NEsnR -i NONE -u NONE +sleep 50 m +q
+ touch PIPELINE_DONE
+ [ ! -f /tmp/vimcat_8784/vim_done ]
+ do_sleep 50
+ _ms=50
+ vim -NEsnR -i NONE -u NONE +sleep 50 m +q
+ [ ! -f /tmp/vimcat_8784/vim_done ]
                                    + do_sleep 50
                                                 + _ms=50
                                                         + vim -NEsnR -i NONE -u NONE +sleep 50 m +q
                                                                                                    + [ ! -f /tmp/vimcat_8784/vim_done ]
                                                                                                                                        + do_sleep 50
                                                                                                                                                     + _ms=50
                                                                                                                                                             + vim -NEsnR -i NONE -u NONE +slee
p 50 m +q
         + [ ! -f /tmp/vimcat_8784/vim_done ]
                                             + do_sleep 50
                                                          + _ms=50
                                                                  + vim -NEsnR -i NONE -u NONE +sleep 50 m +q
                                                                                                             + [ ! -f /tmp/vimcat_8784/vim_done ]
                                                                                                                                                 + do_sleep 50
                                                                                                                                                              + _ms=50
                                                                                                                                                                      + vim -NEsnR -i NONE -u N
...

(the last line is repeated until the process is stopped)

$ nvim --version
NVIM v0.4.0-610-g773bdd41e
Build type: RelWithDebInfo
LuaJIT 2.0.5
Compilation: /usr/bin/gcc-5 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -DMIN_LOG_LEVEL=3 -Og -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconve
rsion -Wmissing-prototypes -Wvla -fstack-protector-strong -fdiagnostics-color=auto -Wno-array-bounds -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS
_VAR_FROM -I/home/travis/build/neovim/bot-ci/build/neovim/build/config -I/home/travis/build/neovim/bot-ci/build/neovim/src -I/home/travis/build/neovim/bot-ci/build/neovim/.deps/usr/include -I
/usr/include -I/home/travis/build/neovim/bot-ci/build/neovim/build/src/nvim/auto -I/home/travis/build/neovim/bot-ci/build/neovim/build/include
Compiled by travis@travis-job-a0203151-f438-49cb-bac1-2553f5308ecf

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/share/nvim"

Run :checkhealth for more info
$ vimcat --version                                                                                                                                          
vimcat 2.06-362-g4069ee5 (configured, shell=/bin/ash)
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.3 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.3 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic